Get writings by email.
Get writings and updates by email.
Forking a Network
February 15, 2016
There has been debate lately about having a more diverse eco-system of Bitcoin implementations. The different implementations can technically be compatible with each other, but we're far away from a future like this.

Forking a stand-alone software, like a browser or OS, and implementing changes is quite different from pushing changes to a networking protocol.

Historically, we've seen that pushing updates to networking protocols is a slow and tedious process; IPv4 to IPv6 comes to mind. You can upgrade, but other nodes also need to understand the new protocol that you're using.

The Bitcoin network is not a typical computer network. It has built in economic incentives for people to switch to the largest network. An attempt to make nodes upgrade can result in either:

a) the network quickly converging on a single version or

b) splitting into two separate networks that use different currencies.

The second scenario, however unlikely, is fairly scary. I think there is a 80/20 chance of the two outcomes if there is a contentious fork.
There are a handful of people who're currently doing the heavy-lifting for Bitcoin development. And most open-source projects work like that.

Increasing diversity of Bitcoin implementations is important. But it's going to require a lot of work:

  • We'll need to attract experienced C/C++ engineers to Bitcoin development and give them a couple of years to catch up.
  • We'll need to cleanly separate consensus-breaking code from non-consensus breaking code and have formal methods to verify implementations against protocol specifications.
  • We'll need better understanding of hard forks and voting on protocol changes in the real world. This means better testbeds, more real-world experiments on smaller blockchains, fallback mechanisms etc.
  • We'll need a community that respects difference of opinion, studies the subject as a science, and adopts high-quality peer review practices.

Bitcoin is a baby and will eventually mature to support a diverse ecosystem of implementations. But that is not likely to happen for many years.
Comments? Tweet them @muneeb

Muneeb Ali
Co-founder Stacks, a Bitcoin layer for smart contracts. CEO Trust Machines, building Bitcoin apps. → Learn more