Today is D-day for bitcoin miner upgrades

Road-Sign
15 May 2013

Today — Wednesday, May 15 — is the deadline for bitcoin miners and merchants to upgrade their bitcoin client or be left out of sync with the rest of the network.

The need for the upgrade stems from a “hard fork” that occurred in the bitcoin blockchain on March 11. That’s when a miner running the then-newest version of the bitcoin client — version 0.8.0 — created a large block that was “incompatible with earlier versions.” As a result, two divergent blockchains were created, posing a threat to the integrity of the bitcoin network.

A new version — 0.8.1 — has since been released that resolves the problem that led to the unusually large block. Bitcoin client users were given two months from the time of the fork to upgrade to the new version.

Gavin Andresen, lead developer for bitcoin and chief scientist of the Bitcoin Foundation, described the hard fork situation on the Bitcoin Wiki:

“A block that had a larger number of total transaction inputs than previously seen was mined and broadcasted. Bitcoin 0.8 nodes were able to handle this, but some pre-0.8 Bitcoin nodes rejected it, causing an unexpected hard fork of the chain. The pre-0.8 incompatible chain at that point had around 60% of the hash power ensuring the split did not automatically resolve.

“In order to restore a canonical chain as soon as possible, BTCGuild and Slush downgraded their Bitcoin 0.8 nodes to 0.7 so their pools would also reject the larger block. This placed majority hashpower on the chain without the larger block. During this time there was at least one large double spend. However, it was done by someone experimenting to see if it was possible and was not intended to be malicious.”

Andresen added that “the split was detected very quickly,” with key participants on the network moving fast to resolve the fork.

After learning of the fork, Marek Palatinus of the Slush mining pool and Michael Marsee of the BTC Guild mining pool both downgraded their bitcoin nodes to the pre-0.8 version “despite the fact that this caused them to sacrifice significant amounts of money and they were the ones running the bug-free version,” according to Andresen.

Writing afterward on the Bitcoin Stack Exchange question-and-answer site, bitcoin fan Manish Jethani expressed concern about similar incidents occurring again in the future.

“The next time there’s a fork like this, it may not be so straightforward,” Jethani wrote. “The miners may not all agree on the proper resolution for the issue.”

A user named Charles Hoskinson responded that the most recent fork was “special in that the 0.8 clients could never agree with the 0.7 clients due an issue processing a larger than normal transaction volume, but 0.7 clients still had 60% or so of the total hash power. In essence the network had two different legitimate bitcoins floating about.”

Hoskinson added, “BTCGuild and Slush got to decide as they collectively control over 51% of the network’s hash power. And also some people had to accept that the blocks in the orphan fork had to be lost for the good of Bitcoin. It isn’t necessarily fair. It isn’t fun. But Gavin and others handled it both quickly and transparently.”