Marathon Digital reportedly mined an invalid Bitcoin transaction at block height 809478. The publicly traded miner disordered a transaction — spending first, then receiving bitcoin — leading it to lose its 6.25 BTC (~$150,000) Coinbase reward for the erroneous block.
Full nodes logged an error message indicating that the block included missing or already-spent bitcoin. In other words, Marathon Digital mined a block of transactions that included a transaction prohibited by Bitcoin’s consensus rules.
In other words, it was classic, prohibited reordering of coin outputs: spending coins first, then receiving them. Not allowed.
Bitcoin doesn’t permit the creation of expenditures ex nihilo, even if they’re accounted for in the very next block. All bitcoin since genesis have been spent from valid transaction outputs or miners’ coinbase rewards.
After Marathon attempted to gain node validation of its block, tens of thousands of nodes rejected it. Moreover, it was unable to gain validation for any block built on top of its invalid chaintip, forcing it to abandon its lost hashing work and start again, mining new blocks.
Marathon acknowledged the invalid block, which it noticed after the fact, blaming the error on a small bug in some experimental code it was testing. It agreed that the block was invalid and acknowledged the resilience of the Bitcoin network. A spokesperson denied that the experiment was meant to alter Bitcoin Core operations.
Marathon Digital broadcast an invalid block
Casa co-founder James Lopp confirmed that the block, which was briefly observable to at least nine Bitcoin nodes and was broadcast widely, was invalid. However, as node operators continued to reject the invalid block and delete it from their mempools, Marathon’s block has fully expired and will never join Bitcoin’s ledger.
Lopp also agreed that Marathon’s error probably was not deliberate. Bitcoin developer 0xB10C theorized that the company had probably been experimenting with a custom block template on a testnet and inadvertently pushed it onto mainnet.
Marathon isn’t the first mining operation to mine an invalid block and broadcast it to the Bitcoin node network. In April 2021, for example, somebody reported an invalid block while trying to sync up a new Bitcoin Core installation. In most cases, faulty code or a buggy upgrade cause invalid blocks, and Bitcoin nodes can correct the issue by rejecting them.