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.