A couple months back Dr. Adam Back and I debated Gavin Andresen’s proposed Bitcoin fork, BitcoinXT, on the Cypherpunks mailing list. Now he’s apparently making the same dramatic claims to the media and then some, claiming that BitcoinXT is an attempted “coup,” and that there will be “chaos” comparable to a “Eurozone exit.” Dr. Back is a smart guy. I’m sure he’s much smarter than I am on Bitcoin. But Andresen is at least as much of an authority on Bitcoin as Dr. Back is, and if he’s OK with a fork, it’s clearly not obvious that it’ll be the end of the Bitcoin world.

What’s a fork?

First, I should explain what a fork is with respect to Bitcoin or any other blockchain. You may have heard of forks in the context of open source software projects. For example, OpenBSD is a fork of NetBSD, which is in turn a fork of 386BSD. A fork happens when a group of developers decides to go in a different direction from the “main” project. Usually, the smaller or less core group will start a new project with a different name and base it on the same source code, then make their own modifications, possibly incorporating later changes from the main project, while the main project may in turn incorporate some of their code. Developers “vote” by deciding which project to work on, while users “vote” by choosing which project to use. One project may die, or both projects may continue indefinitely. In many ways, this is the ultimate in democracy: voting with your feet, but with a much lower cost than picking up and physically moving.

If someone did that with the Bitcoin code and started their own block chain, it would just be another competing cryptocurrency, an “altcoin.” In fact, many of Bitcoin’s competitors did exactly this. Nobody, as far as I know, objects to this practice. What’s different about BitcoinXT is that XT will run on Bitcoin’s blockchain, turning on backwards-incompatible features once it detects that 75% of mining capacity is running an XT-compatible version. Once that happens, we’ll have two blockchains with the same parent block, a blockchain fork. People running Bitcoin software that is not compatible with BitcoinXT will not see transactions on the XT blockchain and vice versa.

Doesn’t this mean people can double-spend by spending on both chains?

Kind of. At the point where the fork happens, anyone who has coins on the original Bitcoin blockchain will have coins on the XT blockchain. For the sake of clarity, I’ll call coins on the original blockchain “Bitcoins,” and on the new block chain “BitcoinXTs.” If you start with 100 Bitcoins, you will now have 100 Bitcoins and 100 BitcoinXTs. It would be perfectly valid and ethical to spend your 100 Bitcoins and your 100 BitcoinXTs on different things. But there is only so much cryptocurrency demand in the world, and it’s the demand that determines the value of the coins. Since it’s likely the markets will have already priced in expectation of the fork, the sum of the values of BitcoinXT and Bitcoin should be relatively close to the value that Bitcoin had prior to the fork, modulo any of Dr. Back’s predicted chaos. So it’s not like you’d be getting any buying power out of thin air.

What scientific process?

But the mechanics of the fork aren’t really what Dr. Back is objecting to. His main concern seems to be that Hearn and Andresen didn’t follow the “scientific process”:

In a way it’s less the details of the proposal and more the attempt to bypass the scientific review process and impose one design by lobbying, blogging, and populist campaign. I mean, what kind of message does it send. Should everyone else write a web page and go lobby companies? It’s not a constructive way forward and magnifies the risk of the fork failing. If it fails in an uncontrolled way it could be as much fun as a euro exit.

As far as I know, few if any of the people currently operating the Bitcoin network have agreed to any kind of “scientific review process.” Instead, “lobbying, blogging, and populist campaigning” are exactly how I’d expect someone to go about getting the protocol changed. Yes, there was a process underway, but if people don’t like the process, that’s what forking is for. It’s no different than throwing some issue up for referendum when Parliament can’t reach an agreement. In fact, it is throwing the issue up for referendum.

75% is quite a supermajority. There are few cases in democracies where a change requires a 75% vote. The only one I can think of off the top of my head is the ratification of constitutional amendments in the United States. In the case of BitcoinXT, it’s mining power and not people, but that’s how Bitcoin has always operated; if 75% of mining power is mining on some version of the blockchain, that version is “the” blockchain, whether Dr. Back likes it or not. 75% is high enough to be well above what would be required to create a “rogue” fork just by running incompatible software, while not being so high as to be impossible to achieve.

And lest anyone succumb to the “euro exit” rhetoric, Bitcoin’s market cap is around 3.4 billion USD. That’s 1.4% of Greece’s GDP. And Bitcoin is widely understood to be a risky instrument. Few if any salaries or mortgages are priced in BTC. In all probability only a few hundred thousand people even own any Bitcoin. So Bitcoin’s being wiped out would be more like Lyft going under than a real currency crisis.

Big blocks mean big miners?

The main reason BitcoinXT is controversial in the first place is also its main reason for existing: bigger blocks. BitcoinXT increases Bitcoin’s block size limit from 1MB to 8MB. The current limit translates to about 7 transactions per second, network-wide. This isn’t necessarily a fatal problem (shameless self-promotion), but Andresen points out why this is not necessarily a desirable situation:

I strongly feel that we shouldn’t aim for Bitcoin topping out as a “high power money” system that can process only 7 transactions per second.

I agree with Stephen Pair– THAT would be a highly centralized system.

Oh, sure, mining might be decentralized.  But who cares if you either have to be a gazillionaire to participate directly on the network as an ordinary transaction-creating customer, or have to have your transactions processed via some centralized, trusted, off-the-chain transaction processing service?

The block size debate has been going on since at least 2013, so Back’s claim that Andresen and Hearn gave up after a few weeks of progress is not entirely accurate. BitcoinXT also includes a bunch of changes that make life easier for the “smallest” participants: those on mobile devices. Nevertheless, a number of miners have no interest in going to a larger block size, especially those in China, where bandwidth is harder to come by. But limiting the number of Bitcoin transactions network-wide just to make it easier for people to mine on lower bandwidth links seems like a bad tradeoff to me.

Another criticism is that a “non-consensus hard fork” sets a bad precedent. It’s essentially miners taking over governance of Bitcoin. But since such a thing is possible in the first place, the miners are already in charge. And miners’ interests aren’t completely out of line with speculators (those holding Bitcoin to make money) and users (merchants and consumers who want to use Bitcoin to buy products and services). Miners might hold Bitcoin, in which case they are speculators too, or they may spend it, which makes them users. Ultimately, the market decides what miners earn, because a higher Bitcoin price means more people will start mining, which will increase the difficulty. Nothing the miners can do can really change that without ultimately hurting them.

Filibuster

In a move that makes Bitcoin seem even more like a real democracy, someone has released NotBitcoinXT, which will “trick” BitcoinXT into thinking miners are running BitcoinXT when they really aren’t, thus causing it to switch to the new blocksize before reaching 75%. This will cause the amount of mining power on the new blockchain to be smaller than expected, but it won’t necessarily lead to failure of the new chain. But it could mean that BitcoinXT will end up “just” being an altcoin when they thought they were going to supplant Bitcoin as the king of all cryptocurrencies.

The real risk is ossification.

To be successful, any piece of software, or in fact any tool, needs to be able to be adapted to how people actually use it. This has proven to be a difficult problem with Bitcoin, because what constitutes “Bitcoin” is ultimately decided by the software that miners run. If they don’t bother to update their software, Bitcoin doesn’t change. Or if they tweak the software in risky ways such as by trying to mine on a new block before validating that it’s actually been incorporated by other miners, there’s a risk of inadvertently causing a fork, as happened on July 4th of this year. Neither that fork nor the March 2013 fork spelled doom for Bitcoin, though both ended up being resolved quickly with one of the chains left orphaned. But in each of those forks, double spending was a risk. Because BitcoinXT is an intentional fork and new blocks cannot be accepted by incompatible software nor new blocks on the old chain be accepted by the new software, double spending will not be possible.

The current process for changing Bitcoin is actually pretty centralized. Sure, there’s a process to it, but there is only one group of developers and no real competition. If non-consensus hard forks are allowed, groups of developers can compete, which could be good for everyone.

There will never be a better time to fork.

Assuming Bitcoin is on its way to taking over the world, there will never be a better time than now to fork it; the stakes will only get higher. And if it’s not, perhaps a fork is just what it needs to reinvigorate it. In fact, Bitcoin’s easy survival of its trials so far, including two inadvertent forks, has only increased people’s confidence in its resilience. The worst case scenario would be for Bitcoin never to come under any stress until there are hundreds of billions of dollars and tens of millions of people’s savings at risk, then to have it crumble the first time it ran into a crisis. This is Nassim Taleb’s concept of antifragility: “[S]ystems that increase in capability, resilience, or robustness as a result of mistakes, faults, attacks, or failures.” Nearly all biological systems have some antifragile behaviors, as do organizations and economies. The Bitcoin software and network themselves probably do not, but once you consider them in their full context, as systems made fundamentally from people, Bitcoin is most certainly antifragile. Which means the best thing for it is to have it meet ever increasing but survivable challenges so that we can have confidence that it will survive crises that we can neither predict nor control.