A hard fork in Bitcoin is nothing new, and is generally not a problem. But the launch of BitcoinXT and the controversy surrounding the block size increase has given the phrase “hard fork” a sinister tone, with some claiming it portends the end of Bitcoin as we know it. Should we be worried?
First, some background. A hard fork is a change to the current Bitcoin Core protocol, the “program” that defines how Bitcoin is run by the mining nodes. The change is such that nodes running the previous protocol will reject new blocks created on the new protocol as invalid. So, some nodes will not add a block onto the chain, while other nodes will. Chaotic, confusing, and risky, as it’s possible that bitcoins spent in a new block could then be spent again on an old block (since the nodes running the previous code would not detect the spending on the new code, which they deem invalid).
Hard forks happen when a bug has been found: the programmers fix it, and inform the nodes that they need to switch to the new version. The old version is vulnerable to the bug, so a change to the new version is imperative. “New” blocks will not be valid on the “old” chain. Hard forks can also happen when a policy change needs to be made. When a hard fork happens, everyone switches as soon as possible to avoid the chaos described above.
So, no problem. However, a hard fork can come with controversy attached, as with the block size increase, which is an important component of the protocol. The current block size is 1MB. While bitcoin transactions are currently taking up less than half that, the use is growing. Some developers strongly believe that a block size increase is urgently needed, so urgently that they are urging a hard fork which will increase the limit by a factor of 8. Others think that a block size increase is a bad idea, that we should let the block sizes fill up and allow economics to regulate supply and demand. Bitcoin transaction fees would rise, as only the “profitable” ones will be allocated the scarce space. Others have no problem with a block size increase, but argue that a factor of 8 is either too much or too little.
Most developers seem to recognize that an increase is necessary, but that consensus is vital. There seems to be a consensus that we need a consensus (sorry, couldn’t resist). Why is consensus so important? Because without it, we could end up having two or more Bitcoin protocols. Coins could be spent and mined on one of two or more chains. This could lead to not only confusion and a collapse of the bitcoin price, but also to double-spending and fraud. If I spend my bitcoins on one chain, and it’s verified, I could also spend the same bitcoins on another chain, which will not have the information from the first chain.
The resulting lack of trust, combined with the fall in price, could well kill Bitcoin’s future.
For the first time since Bitcoin’s launch, a split Bitcoin community looks possible. It’s not because of a looming hard fork. Whatever size increase is agreed upon, a hard fork is necessary. The hard fork itself is not the problem. The main worry is the acceptable definition of “consensus”.
In August, Mike Hearn and core developer Gavin Andresen launched BitcoinXT, which will implement an increase to 8MB on the 6th of January 2016, if 75% of the nodes agree. The problem here is the threshold of 75%. Until now, the threshold necessary for implementation of the new Bitcoin protocol has been 95%, since everyone can agree that that is more or less unanimous. Yet if even if 75% agree, 25% choosing to stick with the current Bitcoin Core is still enough to maintain its own chain and thus cause a split. Two “current” bitcoin chains would not be good.
But don’t miners have to add blocks to the longest chain? Wouldn’t “old-school” miners have to add to the longer, newer chain? And wouldn’t that sort things out automatically? No, “old-school” miners have the obligation to add blocks onto the longest valid chain. And for them, the new chains are not valid. So they would continue adding blocks to the old chain. And 25% of miners doing so is enough to make that chain a viable alternative to the newer one.
This is a huge issue, which goes much deeper than the actual technicality of the amount of transactions that can fit in any one block. This issue speaks to the governance of Bitcoin. Bitcoin theoretically doesn’t have any governance, it is a decentralized network run by the network’s many operators. A team of core developers maintains and updates the code, relying on consensus to push forward. Decisions have been made with the well-being of Bitcoin in mind. Up until now, pretty much everyone has been able to agree on what that requires.
The move by BitcoinXT’s promoters is motivated by the conviction that if their plan is not adopted, then Bitcoin will fail. Hence the need for an urgent hard fork, with a lower consensus threshold.
But it might happen. So far BitcoinXT has only received explicit support of 10% of the mining community. However, the underlying premise of BitcoinXT seems to be popular, with most of the “big players” in the sector behind it (Xapo, Circle, BitPay, Blockchain.info, Bitnet and others). That means that mining support could well increase significantly over the next few months. If that happens, more miners will sign on, “just in case”, which will gather momentum towards the 75% threshold. And if that is passed, two weeks later, the new block size limit of 8MB is in place, and Bitcoin has a hard fork.
It is very likely that consensus will be reached, simply because everyone has so much to lose if trust in Bitcoin fails. Yet the debate does highlight the difficulties in running a growing yet decentralized network. Personally, I believe that Bitcoin will remain Bitcoin, that some of the dissenting core developers will splinter off into altcoins or sidechain development, and that tempers will cool down. Until the next fundamental disagreement arises. But hopefully by then, Bitcoin’s use will have spread to the extent that its structure and market penetration are different from today. That in itself will give rise to a new decision-making organization, probably still decentralized, but with a clearer consensus-generating communication and with more to lose if it fails.