As developers for Bitcoin called for a temporary halt to Bitcoin transactions on 3/11/2013, many members of the community began holding their breath.
Many of these individuals had only just entered into the realm of decentralized, online currencies. Could it be that they were watching the end of the BTC experiment before their very eyes?
Others acted in contribution to a sharp sell-off resulting in the currency briefly falling 23 percent to $37 before regaining much of its value thereafter.
Still others implored everyone, except for miners, to just wait this out “a few hours.” The compromise took place at the network’s core, in the shared transaction register called the blockchain. Nobody wants such uncertainty in a payment system. So, here is basically what happened: It is central to the Bitcoin protocol that all new blocks have been accepted by the entire Bitcoin network. Sometimes, if a client announces a block that half the network accepts and the other half rejects, the result might be a fork in the network.
With different nodes disagreeing about what transactions took place on the valid block, and which took place on the invalid, the system was thrown into seeming chaos.
This transpired on Monday evening, 3/11/2013, as a block produced contended that the latest version of the Bitcoin software, version 0.8, recognized as valid, but that nodes still running version 0.7 or earlier rejected.
“After some emergency discussion on #bitcoin-dev, it seems best to try to get the majority mining power back on the ‘old’ chain, that is, the one which 0.7 accepts,” wrote Bitcoin developer Pieter Wuille in an e-mail. “That is the only chain every client out there will accept. If you’re a miner, please revert to 0.7 until we at least understand exactly what causes this.”
Merchants were asked to stop accepting transactions until problems were solved. Mt Gox, the leading Bitcoin exchange, announced that it would suspend Bitcoin transactions.
Coins “mined” and transactions that took place in the few hours ahead of the fork and during it were not safe, while all other transactions were. Except for the transactions and mined coins during the period of uncertainty, no other Bitcoin were in danger of being lost.
Of course, confidence had been tested. Bitcoin’s high of $48 earlier on Monday evening resulted in a 23% drop to less than $37 by 10PM Central time.
So, before Bitcoin would launch to $266, its’ core was put to the test. The decentralized nature of the cryptocurrency means nobody can order everyone to abandon the 0.8 branch of the blockchain for the 0.7 branch. The branch will be chosen by a vote of the network’s computing power.
Developers will have to convince most miners or nodes to voluntarily downgrade their software. The warning was sound at Bitcoin Talk, as a Hero Member wrote:
there is an emergency right now: the block chain has split between 0.7+earlier and 0.8 nodes. I’ll explain the reasons in a minute, but this is what you need to know now:
After a discussion on #bitcoin-dev, it seems trying to get everyone on the old chain again is the least risky solution.
If you’re a miner, please do not mine on 0.8 code. Stop, or switch back to 0.7. BTCGuild is switching to 0.7, so the old chain will get a majority hash rate soon.
If you’re a merchant: please stop processing transactions until the chains converge.
If you’re on 0.7 or older, the client will likely tell you that you need to upgrade. Do not follow this advise – the warning should go away as soon as the old chain catches up.
If you are not a merchant or a miner, don’t worry.
The original post lacked info for “regular users”. Here it is:(1) If you are a “regular user” (not a miner), the best thing is to do nothing and wait a couple hours.
(2) If you are a “regular user”, upgrading, downgrading, whining, FUD, etc, will make no difference. Only miners have an incentive to do anything. Otherwise, it doesn’t matter which version you are running.
(3) Regardless of who you are, your transactions are not dead, your coins are not lost. They will just temporarily be held up. If you sent a transaction within the last few hours, it may take a few more hours before it’s sorted out.
If you insist on processing transactions right now it’s probably best to wait 30+ confirmations. It’s just due diligence though … an attacker would still need a tremendous amount of mining power, quick thinking, and a victim willing to part with a lot of BTC.
By tomorrow this will be in the past and everything will appear to be normal again. If you slept through this, you’d never know that anything happened (except for the price drop).
Let me reiterate, your coins are not at risk, your transactions are not lost. It’ll just take some time for the network to “iron itself out.” Everything will be okay.
As time passed, it became clear that 0.7 and older nodes had a limit on the “size of the modification it can make atomically to the database. With the larger blocks of the past days, it seems to have triggered the limit. The result is that 0.7 (by default, it can be tweaked manually) will not accept “too large” blocks.
However. 0.8 (which uses a different database system) has no such limit, and happily accepts the block. As the majority of the hash power was on 0.8, the longest chain ended up using this block, which is not accepted by older nodes. Another Hero Member calmed a Junior Member:
Yes, they’re safe. (You should make sure to keep the old wallet just in case, but since your transactions were done yesterday and presumably many people will re-run all lost transactions, it shouldn’t matter.)
1) If you run a mining pool or are mining solo, and have upgraded to 0.8, downgrade to 0.7.
2) If you are a normal user, do not perform any important Bitcoin transactions until you get the all clear.
3) If you are a pool miner and you know your pool has not downgraded, stop mining.
4) If you performed any transactions recently, be warned that you cannot rely on them.
Five hours after the original announcement of the emergency had been posted to Reddit, a new thread had been created called “back on the main chain” which celebrated that the Bitcoin network had seemingly been restored to the proper chain of blocks.
The first comment on this thread reads: “I’d like to thank each and every miner out there who acted in their own rational self-interest to preserve the integrity of bitcoins. It’s as if the system actually works!”
To be sure, the Bitcoin network was compromised by this “hard fork.” A potential problem, for instance, was double-spending.
There could have developed a much more urgent issue, but the developers and miners responded quickly to fix the problem. The decentralized network of people worked to quickly fix itself, in other words.
As one Reddit commenter observed: “Look at how long it takes for governments and banks to fix major issues.”
The hard fork got 10+ confirmations deep before the problem was discovered, the possible consequences considered, solutions discussed and solution implemented. This took 25 minutes.
This compromise was a crisis of sorts, but the network of individuals prevented the Bitcoin network from being split.
End-users were hardly affected. Some possible limitations to the current iteration of Bitcoin might be the max block size limit. At this time, there can only be enough space in each block for about 7 transactions per second, according to some developers. Thus, the risk of forking.
Other Bitcoin enthusiasts maintain that the speed with which the hard fork was rectified is astounding and a true win for Bitcoin.
Patrick Murck anticipates that if leading mining pools teamed up to fork the block chain, “Many lawyers would jump on the opportunity for antitrust lawsuits… From my perspective this would clearly be an offence worth litigating.”