The Bitcoin XT Fork

There has been a long standing debate in the past year over the need (or not) to increase the bitcoin block size. The debate has raged most intensely inside the small group of developers who have commit access to the bitcoin core. They are called the “core developers.” These software engineers control the basic architecture of bitcoin. This is how most open source software projects are managed and bitcoin is an open source software project at its core.

I won’t get into the technical arguments for and against the need (or not) to increase the block size. If you want to read up on it, I suggest you read Gavin Andresen’s blog, Mike Hearn’s blog post announcing the Bitcoin XT fork, and Rusty Russell’s blog post on the topic.

What is more interesting to me is that this XT fork showcases a number of interesting things about open source software and how it is governed. It also gets into the issues around trusting an open source system and the people who build it.

A group of open source core developers are a democratic system. They decide what gets “committed” to the code base and what does not. That generally works well but at times it does not. The debate around increasing the block size is an example of where that form of democracy is failing (or succeeding depending on where you sit in the block size debate).

So the developers who most fear a breakdown of bitcoin without a block size increase have taken it upon themselves to “fork” the bitcoin core and produce a new version called “Bitcoin XT.” Bitcoin XT is described here.

That’s where this gets interesting. Bitcoin is a democracy in more ways than its core developer group. The miners who operate the transactional infrastructure of bitcoin are also a democracy. They decide what software they want to run to mine bitcoin. And in doing so, they determine what technology will become the standard. The folks who have produced the Bitcoin XT fork are hoping that the miners will adopt their software. This is from the Bitcoin XT website and explains how this works:

By mining with Bitcoin XT you will produce blocks with a new version number. This indicates to the rest of the network that you support larger blocks. When 75% of the blocks are new-version blocks, a decision has been reached to start building larger blocks that will be rejected by Bitcoin Core nodes. At that point a waiting period of two weeks begins to allow news of the new consensus to spread and allow anyone who hasn’t upgraded yet to do so. During this time, existing Bitcoin Core nodes will be printing a message notifying the operators about the availability of an upgraded version.

If the hard fork occurs and you are still mining with Bitcoin Core, your node will reject the first new block that is larger than one megabyte in size. At that point there is a risk your newly mined coins will not be accepted at major exchanges or merchants.

So now that Bitcoin XT is out in the wild, the “market” will decide which version of bitcoin it wants to exist. And that market is driven by the miners. Of course, miners are not necessarily a representative sample of the entire bitcoin ecosystem. They have particular needs, desires, and are at times ruthless and mercenary. But they are the ones who operate the bitcoin transactional infrastructure and they will ultimately decide if the Bitcoin XT fork works or not.

It will be fascinating to watch this play out. If you are used to big corporations or governmental institutions making decisions behind closed doors about how your financial systems work, then you might enjoy watching a new model of innovation and technology evolution unfold. I believe we will see more and more things like this in the coming years.

For what it is worth, I support a larger block size and think it will be good for bitcoin. A list of supporters and detractors is here.