La nota mining pool di Bitmain, Antpool, ha perso ben 12.5 bitcoin (circa 150’000$) a causa di un banale errore. Stando alla ricerca condotta da BitMEX Research, gruppo di ricerca dell’exchange BitMEX, il pasticcio sarebbe avvenuto ieri alle 14.35 UTC.
Bitcoin had an invalid block at height 584,802, as spotted by @juscamarena
All 8 nodes at https://t.co/WKQ8hPDGON identified the block as invalid:
Bitcoin Core 0.18.0
Bitcoin Core 0.17.1
Bitcoin Core 0.16.2
Bitcoin Core 0.10.3
bcoin
Bitcoin Knots 0.14.2
btcd
Libbitcoin pic.twitter.com/p5WKJ5rO0t— BitMEX Research (@BitMEXResearch) July 10, 2019
Quando i miner aggiungono un blocco alla blockchain di bitcoin vengono normalmente ricompensati con 12.5 BTC. Questo quantitativo verrà dimezzato tra circa 300 giorni in seguito all’halving.
Per ottenere la ricompensa i miner devono aggiungere al blocco una generation transaction (anche nota come coinbase transaction). Si tratta di una transazione generata dal miner che aggiunge il blocco alla blockchain. Essa permette di richiedere la ricompensa e consente di aggiungere anche 100 byte di dati arbitrari. La ricompensa richiesta dai miner deve essere equivalente all’ammontare imposto dal protocollo, ad oggi 12.5 BTC.
I nodi di Bitcoin rifiutano automaticamente i blocchi che contengono un valore di reward errato ed è esattamente ciò che è avvenuto ieri.
Antpool, generation transaction errata: 12.5 bitcoin persi
Tutto il lavoro e le risorse sprecate dalla pool per trovare il blocco sono state completamente buttate. Pare che invece dei canonici 12.5 BTC chi ha minato il blocco abbia erroneamente richiesto 13.26 BTC (circa 155’000$).
Tale valore non è casuale ma si ottiene sommando la generation transaction (12.5 BTC) e tutte le fee associate. Il valore inserito non era corretto e di conseguenza i nodi hanno rifiutato il blocco.
Pare che l’errore sia dovuto al fatto che il blocco in questione sia stato trovato solo pochi secondi dopo il blocco precedente. Probabilmente c’è un bug nel software che genera il template del blocco. Essoe non è riuscito a ripulire in tempo le fees dal template del blocco precedente.