I’ve enjoyed reading the conspiracy theories about our relationship with Bitmain.

That relationship was initiated by me reaching out to them. I had very good conversations with them about the issues at hand and we found we had a mutual interest in developing a viable alternative to the various Bitcoin C++ clients. At BitPay, for years we’ve wrestled with the question of whether to continue using Bitcoin C++ or develop an alternative that can better serve our needs.

Fragile Code

The code base that Satoshi left us was in very bad shape. One of the first things I did with Bitcoin prior to forming BitPay was to reorganize the entire code base. This was my way of studying the code. Jeff Garzik rejected my work, but he had good reasons.

Bitcoin C++ has improved quite a bit since then, but large C++ code bases tend to eventually collapse under their own weight. We need alternatives, but in the past we’ve decided we didn’t have the staff needed to sustain an alternative implementation and make it successful.

Enter Purse and BCoin

That has all changed. Purse.io has built an alternative client on nodejs called bcoin that they’ve been running in production for many months. This is the opportunity we’ve been searching for and it fits our technology stack. What I saw in a potential project with Bitmain was a way that we could get a commitment to funding (non equity) on a sufficient scale that I was confident we could help ensure bcoin’s success. So, I guess we are conspiring with Bitmain … to make Bitcoin better.

Defensive Consensus

Running multiple client implementations on the network is something I’ve previously thought wasn’t a good idea. That view was based on the notion that it was desirable for everyone to run the exact same code to stay in consensus. However, that’s actually not practical. Today we see a wide variety of different versions of different clients used by full nodes and miners on the network. We’ve been putting a lot of thought into the practicalities of running an alternative client on the network and making it a first class citizen. It’s called defensive consensus.

Working with Miners, Not Against

I will also mention that we’ve been bothered by the attitude that some have taken toward the mining community. BitPay’s success depends largely on miners providing a well-functioning network. We appreciate miners and we think they deserve to be treated better. If miners have an issue, we at BitPay want to help identify the problem and find a solution. We viewed this relationship with Bitmain in part as a way to address this issue head on.

So, there’s the conspiracy.