Forking a Network
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.