The Bitcoin community is quite literally at a fork in the road, riven by an acrimonious debate between two potential paths forward.
The division could result in two conflicting versions of the Bitcoin software running at the same time — a dangerous possibility.
Given these events, it is instructive to look back at the last time there was a major fork in the Bitcoin software, in early 2013.
That event — and the furious race to fix the problems — is described in Nathaniel Popper’s history of Bitcoin, “Digital Gold: Bitcoin and the Inside Story of the Misfits and Millionaires Trying to Reinvent Money.”
Gavin Andresen, the chief scientist of the Bitcoin Foundation, was in his den in Massachusetts after dinner on March 11, 2013 when he saw some online chatter about disagreement between the computers that were helping to run the Bitcoin network.
The computers were, in effect, putting together a list of all the recent Bitcoin transactions — what was referred to in Bitcoin lingo as a block.
Every 10 minutes or so, a block compiled by one computer was picked — almost at random — to become the official record of what had happened on the Bitcoin network since the last block was chosen.
The computer that generated the chosen block also received 25 new Bitcoins, which was why the process was known as mining.
When Gavin checked in, the computers on the network were divided on what block they were trying to mine — was it the 225,430th block since Bitcoin began back in 2009, or the 225,431st?
It sounded like an arcane technical disagreement, but Gavin quickly realised that this was what had long been known as the biggest potential danger to the Bitcoin network: a “hard fork,” a term coined to describe a situation where one group of computers on the network went off in one direction, agreeing about which computer had mined each block, while another group of computers on the network moved in another direction, agreeing on a different set of winners for each block.
This was disastrous because it meant that there was disagreement about who owned which Bitcoins.
On this evening in March, there had been a split only on the last few blocks — not the whole blockchain history — but if it wasn’t fixed, there would essentially be two conflicting Bitcoin networks, which would likely result in no one trusting either of them, or Bitcoin itself.
“this seems bad,” a user on the Bitcoin chat channel wrote a few minutes after the problem first appeared.
“‘seems’ is putting it lightly,” another shot back.
“We have a full fork,” one of the most respected developers, a Belgian programmer named Pieter Wuille, pronounced a few beats later on the chat channel. The price of Bitcoin dropped from $US49 back to $US45 in a half hour, erasing all the previous week’s gains.
Mark Karpeles, the owner of the Tokyo-based Bitcoin exchange, Mt. Gox, joined the discussion a half hour later and quickly stopped processing all transactions at Mt. Gox; a few minutes after that, Erik Voorhees said his gambling company, SatoshiDice, was doing the same as long as the fork persisted.
By the time Gavin entered the conversation, it was clear that the problem was not the result of any sort of malice. Instead, computers that had downloaded a recent update to the Bitcoin software, version 0.8, were accepting blocks — and awarding new Bitcoins to miners — that were not considered legitimate by the old software, version 0.7, and the computers still running it.
The solution to this was clear: everyone on the network had to agree to move en masse to one of the two versions and adopt the blockchain accepted by that software. But there were no rules for deciding which version to pick — and once a version was chosen, no one knew how long it would take for all the computers, or nodes to get on board.
After racing through the possibilities, Gavin concluded that the most fundamental rule of Bitcoin was the democratic principle that the blockchain with the most support was the official one. In this case, the version created by the new software, 0.8, had a lot more computing power behind it.
That was, in no small part, because the most sophisticated miners had been among the first to update their software — especially the so-called mining pools, which allowed lots of people to combine their computing resources with each person getting a proportional fraction of the total winnings.
Gavin thought that if these mining pools had the most power, everyone else needed to update to join them. In addition to having more power, the miners on the new software had newly generated coins with the software that they would be unlikely to want to give up.
But Gavin quickly faced resistance from almost everyone else involved in the conversation; most participants believed that only the large miners would be responsive enough to change their software, back to the old version, to get everyone into agreement. Somewhat surprisingly, the operators of the biggest mining pools quickly agreed that they would revert to the old software, version 0.7.
The operator of the prominent pool BTC Guild said that just switching his pool alone would get a majority of the computing power back on the earlier software. Doing this would mean losing the Bitcoins that had been mined since version 0.8 came out. But the losses would be much greater if the entire Bitcoin network lost the confidence of users.
“There is no way the 0.8 chain can continue in this situation,” the operator of BTC Guild, who went by the screen name Eleuthria, said.
The developers on the chat channel thanked him, recognising that he was sacrificing for the greater good. When he finally had moved his computers over to the new software, about an hour later, Eleuthria took stock of his own costs.
“It could’ve been worse if I hadn’t been able to start moving back to 0.7 quickly.” But, he wrote, “this fork cost me 150 — 200 BTC” — over $US5,000 at the time.
For the broader Bitcoin ecosystem, the price had fallen to $US37, some 20 per cent, within a few hours, and some online reports struck an ominous note.
“This is a dark day for Bitcoin. Implications for the exchange rate will likely be huge,” a site called The Bitcoin Trader announced.
The incident had indeed revealed the sort of unanticipated problems that frequently occur in decentralized networks, which rely on lots of different members, with all their vagaries, acting independently.
But almost as soon as Eleuthria had fully switched his servers over to version 0.7 the price began recovering, and within hours people were talking about how the event had actually demonstrated some of Bitcoin’s greatest strengths.
The network had not had to rely on some central authority to wake up to the problem and come up with a solution. Everyone online had been able to respond in real time, as was supposed to happen with open source software, and the users had settled on a response after a debate that tapped the knowledge of all of them — even when it meant going against the recommendation of the lead developer, Gavin.
Meanwhile, the incentives that Satoshi Nakamoto had built into the network had again worked as intended, encouraging people to look out for the common good over short-term personal gain.
From Digital Gold: Bitcoin and the Inside Story of the Misfits and Millionaires Trying to Reinvent Money
by Nathaniel Popper. Copyright © 2015 by Nathaniel Popper. Reprinted courtesy of Harper, an imprint of HarperCollins Publishers.