The Time Bitcoin (BTC) Accidentally Forked in March 2013, and Someone Sent a $10,000 Double Spend at That Exact Moment

October 23, 2019 / by Zachary Mashiach

In the middle of March 2013, Bitcoin (BTC) experienced its only accidental split, or fork, in history. A fork happens when there are two chains running simultaneously, which can lead to loss of miner revenue, loss of funds due to transactions being sent between different chains, and malicious double spends.

Indeed, a fork is one of the worst possible things that can happen to the Bitcoin (BTC) network and has the potential to ruin Bitcoin’s (BTC) reputation of being immutable and secure. But Bitcoin (BTC) survived the March 2013 fork and actually rallied to over $1,000 for the first time later that year. Here, we’ll explore the events surrounding the fork and how it was quickly corrected. 

The fork was essentially caused by Core version 0.8 being able to handle blocks with large amounts of inputs and outputs, while versions before 0.8 were not. 

Specifically, prior to version 0.8, users would have to manually configure Berkeley DB locks to process large but otherwise valid blocks. As a rule of thumb, during testing, Core was run under stressful conditions, and the maximum number of locks needed to properly work was doubled. This arbitrary lock limit became part of Bitcoin’s (BTC) code; however, version 0.8 used Level DB instead of Berkeley DB, and Level DB has no lock limits. 

A block with more than 1,700 transactions came along, and nodes and miners running version 0.8 were able to successfully process this block while nodes and miners with versions less than 0.8 rejected the block. 

It is speculated that gambling sites like Satoshi Dice, which generate numerous transactions, was the cause of this extraordinarily large block. 

This caused the blockchain to split, meaning miners and nodes with versions less than 0.8 were running a different blockchain than nodes and miners with version 0.8. The 0.8 blockchain had 60% of the hashing power, preventing an automatic resolution of the chain split since, if the pre-0.8 blockchain had a majority of the hashing power, 0.8 nodes would have reorganized to the pre-0.8 blockchain. 

Fortunately, the Bitcoin (BTC) developers quickly became aware of this problem and decided that miners and nodes on version 0.8 should switch to the older software to resolve the fork. Bitcoin (BTC) developer Peter Wuille posted this information on Bitcointalk, asking users not to use Bitcoin (BTC) until the situation resolved and asking miners on version 0.8 to switch to versions before 0.8. 

The leaders of two of the largest Bitcoin (BTC) mining pools at the time, Slush and BTCGuild, quickly downgraded to a version before 0.8, despite this action sacrificing a significant amount of Bitcoin (BTC) that they had mined. Simultaneously major exchanges and payment processors like BitPay suspended transactions to minimize damage. 

Only 5 hours after the fork alert was posted on Bitcointalk, the pre-0.8 blockchain surpassed the 0.8 blockchain, thanks to the quick action of miners such as Slush and BTCGuild downgrading to an older version of Bitcoin Core. As soon as the pre-0.8 blockchain passed the 0.8 blockchain, a reorganization occurred, and the pre-0.8 blockchain became the only blockchain. 

In order to prevent the same problem from happening again, the Bitcoin (BTC) developers released version 0.8.1 which rejects blocks that would probably cause more than 10,000 locks to be taken, limits the block size to 0.5 MB, and increase the maximum number of locks to 537,000. 

Although the Bitcoin (BTC) developers and community fixed this fork as quickly as possible, one user successfully double spent $10,000 of Bitcoin (BTC). The user first sent $10,000 to the BTC-e exchange via OKPay, and this was included in the version 0.8 blockchain. Several hours later the user reorganized the transaction and broadcasted it to the pre-0.8 blockchain and it was successfully confirmed. 

Indeed, this double spend transaction was one of 270 transactions that were included in the 0.8 blockchain but not included in the current blockchain following the reorganization. All of these transactions could have potentially been doublespent. Also, notably, all of these transactions were erased, showing how a blockchain fork disrupts economic activity and can lead to lost funds and confusion. 

The user who conducted the $10,000 doublespend eventually returned the funds to OKPay. That being said, there is some evidence that 6 other transactions were doublespent around the same time, although this is not confirmed. 

Ultimately, the March 2013 accidental blockchain fork proved that Bitcoin (BTC) could survive such a scenario as long as the developers and community act quickly. The entire fork lasted only about 6 hours and was resolved by the developers, who quickly alerted the community, as well as the biggest mining pools switching to the pre-0.8 blockchain to bring about a blockchain reorganization. Then the developers released Bitcoin Core 0.8.1 to prevent the lock limit issue from causing a fork again. 

Although the fork resulted in one of the only confirmed doublespends in Bitcoin (BTC) history — and possibly up to a total of 7 doublespends — the price of Bitcoin (BTC) actually rallied from around $40 at the time of the fork to over $1,000 later that year. This shows that if an accidental Bitcoin (BTC) fork were to happen again, it does not necessarily mean the market will crash. In fact, this incident shows that, with quick thinking, a fork could cause practically no negative impact on the market.