Although many bitcoiners see Bitcoin XT as nothing more than a BIP 101 enabled software client, the implications of Mike Hearn’s creation go much deeper than that. While the alternative implementation of the Bitcoin protocol has not been able to gain wide acceptance among the Bitcoin mining community, the fact that this new Bitcoin client exists could potentially shake-up the payment network’s governance model. In fact, this may have been part of Bitcoin Foundation Chief Scientist Gavin Andresen’s reasoning for joining the project in the first place.
Bitcoin Core Sets the Bitcoin Protocol
Although anyone can technically write their own software implementation of the Bitcoin protocol, the reality is that most full nodes on the network use Bitcoin Core. This means that changes to the underlying protocol can also be made by changing the Bitcoin Core software client. At the recent Bitcoin Pacifica 2015 event, Gavin Andresen shared his thoughts on Bitcoin Core’s current role in setting policy throughout the entire Bitcoin network during the Bitcoin Governance Panel:
“Up to now, the Bitcoin protocol and the Bitcoin Core reference implementation had been one and the same, and that’s not quite true. We do have a couple other implementations that implement the protocol. Toshi at Coinbase, BTCD from Conformal Systems and libbitcoin I think also is another full re-augmentation of the Bitcoin protocol. Bitcoin Core is by far the dominant version of the software that everybody’s running and really, Bitcoin Core sets the consensus rules. I don’t think it should be that way and I don’t think it will be that way in the future.”
Andresen has let it be known that he is a fan of having multiple implementations of the Bitcoin protocol, which has the potential to create a layer of separation between software clients and the underlying Bitcoin protocol.
Separating Software Projects from the Bitcoin Protocol
The concept of separating software projects from the protocol is something that Andresen expanded on during the panel discussion, and he noted the current development issues with Bitcoin Core when pointing out the need for alternative software clients:
“It’s important when we think about governance, we think about the software projects separately from the protocol. I think the governance of the protocol will be very different from the governance of the software project and I think successful software projects that I’ve been involved with at least always have a leader. There’s somebody who makes a final decision, says stop arguing, this is what we’re going to ship, this is when we’re going to ship it. I think the Bitcoin Core software project does have a leader right now. Wladimir [J. van der Laan] is the lead maintainer. I think it’s been suffering a little bit from lack of priority setting and it just feels like in the last year or so, it’s been a little bit, I don’t want to say lost — but a little bit unfocused.”
The idea of a benevolent dictator for Bitcoin Core and other software clients has been a somewhat controversial issue lately, but it’s important to remember that a benevolent dictator of Bitcoin Core, Bitcoin XT, or any other implementation of the protocol is not also a de facto dictator of the entire network. The benevolent dictator only has power over a specific software client, and users can move to a different client if they believe the dictator is abusing his power.
Internet Protocols as Role Models
When it comes to how the Bitcoin governance model should be changed, Andresen believes that the processes for making changes to more mature Internet protocols should be studied and better understood by the Bitcoin development community. He explained this point of view during the panel discussion:
“On the protocol side of things, I always look towards the Internet protocols that we’re all using every day. Those are the most successful kind of open standards, process based protocols. Every time you use email, you’re using SMTP which is an open — I have no idea which RFC it is from the IETF. On a protocol level, those are the role models I look towards, which standards organizations have done this right? Which processes seem to work and how can we evolve the Bitcoin process, which so far has been submit a pull request to Bitcoin Core and get it accepted, to something more mature where it’s more standards based, more like the processes we see [in] open Internet standards.”
Andresen noted that the Bitcoin Foundation previously took on many of these sorts of responsibilities, but their role in this area has diminished as a result of their financial and reputational issues over the past year or two. The longtime Bitcoin Core developer is hopeful that an entity like the MIT Digital Currency Initiative may be able to help figure out a better model in the future.