If Bitcoin is going to be used by a large audience, it's going to need new code. That simple fact has sparked what may be the largest crisis yet to hit the still-fledgling cryptocurrency community.
In the center of the maelstrom are two of Bitcoin's oldest and most respected developers: Gavin Andresen and Mike Hearn. Andresen was chosen to lead the project by Satoshi Nakamoto, Bitcoin's pseudonymous inventor, before he or she disappeared. Hearn claims to be the first core Bitcoin developer ever to use the cryptocurrency besides Nakamoto.
Now, some Bitcoin users are accusing them of leading a two-man crusade that could, according to their critics, tear Bitcoin apart.
In December of 2014, Andresen proposed that the size of "blocks," or packets of transaction information, in the Bitcoin network must increase to support more usage. He spent months writing blog post after blog post, trying to convince the rest of the community of this change's necessity.
Andresen found an ally in Hearn, who's long been considered the most forward-looking of the small cabal of original Bitcoin developers who directly followed Satoshi Nakamoto. Together, they developed a new version of the original Bitcoin client—Bitcoin Core—called Bitcoin XT. Bitcoin XT would increase the size of blocks. Andresen also proposed a change to the Bitcoin Core client in July, called BIP101, that would do the same.
"We're getting close to that limit in terms of transaction volume on the Bitcoin network."
All that's left now is for users to vote on what they would like to see happen. And at the moment, it's a total mess. Powerful Chinese mining pools staunchly disagree with Hearn and Adresen, while some Bitcoin businesses are enthusiastically on board. The noisy online crowd of miscellaneous miners and node-runners change their minds on a whim.
I called up Andresen and Hearn, who are currently residing in Massachusetts and Switzerland, respectively, to ask about the controversy and what they think will happen next.
MOTHERBOARD: What are the main issues in the current controversy?
Andresen: Where to start?
Back in the beginning, when Satoshi first invented Bitcoin, there were no limits on how many transactions the system could handle. After Bitcoin had been going for a year and it started getting popular, there was kind of a flurry of activity where Satoshi discovered that there were a bunch of what we call "denial of service attacks." He did a whole bunch of things, really quickly, to fix these various attacks and the bugs people started to find as soon as Bitcoin started becoming popular and people started actually looking at it.
One of these quick fixes imposed a limit to the number of transactions that the system can handle. And so he did this by putting an arbitrary 1MB limit on the size of blocks. At the time he said, "when the time is right, we can raise this limit to support more transactions."
Fast forward five years. We're getting close to that limit in terms of transaction volume on the Bitcoin network. I've been pushing for a while now, since at least last December, to raise the limit. To come to consensus on, "We're gonna hit this limit, let's raise it before we get there to limit any problems in the network." And also, it's just a good idea to support more transactions. That's what Bitcoin's meant to do. It's supposed to be a transaction-clearing network, and so it's kind of silly not to raise this arbitrary limit. Unfortunately, there hasn't been any consensus on how to raise it, how much to raise it, and not even on what process we should use for coming to consensus. And that's caused a big mess.
Hearn: Gavin missed something because he's being very modest, but I think it's important. Up until about April of last year, we did have a process of making decisions. And that process was: Gavin made decisions. Satoshi had created the project, and he started as the first leader. When he left, he sort of passed on the torch to Gavin.
The original intention was that everyone would move over from the old version of Bitcoin and Bitcoin XT would take over. Do you expect that will happen?
Andresen: Everybody will use the same blockchain, no matter what happens. This is a subtle distinction. We have the Bitcoin protocol. There is only one Bitcoin protocol. A lot of people have been stirring up, I think, fear, uncertainty, and doubt, saying that there will be two blockchains, that people are going to double-spend, and that there will be two coins. That's not going to happen. The incentives are just too strong to go along with the economic majority.
We'll go along with whatever the consensus is. There will only be one blockchain. It would be stupid to try and continue if the vote fails.
There was a recent case where an unsigned email from someone claiming to be Satoshi popped up in an email thread. How do you feel about the ghost of Satoshi guiding this whole thing in a strange way?
Andresen: I think it's perfectly fine to talk about Satoshi's ideas. That's what I try to do. I don't say, "Satoshi's a genius, therefore we should do everything he ever said." I will say, "Satoshi laid out these ideas first, and I agree with those ideas." I think that's the way to go.
Hearn: It's not really about argument by authority. I've been one of the people quoting Satoshi the most, and some of the guys on the Bitcoin Core side have said, "Oh, it's argument by authority!" But the actual purpose of doing this is to remind people what brought us together, the shared goal we all had when working on this software, which is laid out by the guy who created the project.
"The Bitcoin community can't go through this process every time it needs to have its protocol tweaked."
We can imagine: what would happen if Satoshi really did appear, and he signed the message so there's no doubt, and he said, "After all these years, I've realized that Bitcoin is a stupid idea, banking is the way to go, and I'm looking forward to using my Mastercard to pay for everything because it rocks?" Would everyone say, oh, we'll just go home and switch off our computers and give up? No, probably not. That would be weird. But people's ideas do change.
Andresen: If he had a really good reason for it…
Hearn: If he had a really good reason.
Andresen: Again, it's all about the idea, not the person.
A sizable group of Chinese mining pools have come out against your proposal. What's going on?
Hearn: It's a bit disappointing, the way these Chinese mining pools are acting right now.
BIP101 was initially 20MB blocks, and this was based on simulations, testing, various calculations, and hardware extrapolations. These were the reasons behind picking 20. And they said, "Oh, our internet connections are very slow in China and very expensive. We can't do 20. We can do eight." They had a meeting and said, okay, we're going to do eight. Apparently, eight in China, in some dialects, rhymes with the word "prosperity" or something, so this is a lucky number. So we said, okay, now we'll do eight. And then they turned around and said, "No, actually, what we want is a different proposal that isn't implemented in code." They've changed their mind.
Andresen: They want 8MB as a cap, and then no change. No increase over time.
Hearn: Right, they're saying, "We agreed to 8MB forever."
Andresen: Yeah, "But we never agreed that it should increase as technology gets better." Which is crazy to me.
Hearn: It seems like a no-brainer assumption that technology will continue to improve, and even that basic thing people can't seem to agree on, which is why an insistence on unanimity is ridiculous. You'll get people who don't share incredibly basic assumptions like: things might get better in the future.
Is there a best case scenario?
Hearn: Best case scenario is that after some messing around, Bitcoin Core decides to accept BIP101 and we'll go forward. Bitcoin XT would still exist. Bitcoin XT is about more than the block size. There's a lot of things about Bitcoin Core that have been frustrating people for a long time, and Bitcoin XT is an attempt to resolve some of those. But it would resolve the immediate crisis. I think that's the best-case scenario that we can hope for that's realistic.
Where is this all leading, anyway?
Hearn: It's hard to know. Right now, it's not looking that great. The Bitcoin community can't go through this process every time it needs to have its protocol tweaked.
There was a similar kind of debate about changing the rules of the blockchain in 2012, and that was a bit of a mess. It had people disagreeing, there was no consensus, and it was essentially put to a vote to the miners. The reason that didn't turn into a whole crisis is that, at the time, Gavin was in charge and he said, "Well, this thing will work. I've made a decision among the options, and we're going to release a new version that does that."
"Up until about April of last year, we did have a process of making decisions. And that process was: Gavin made decisions."
It seemed at the time to be a big drama—it's nothing compared to this—but it was also pretty traumatic. And the details of that debate are so arcane, even I can't remember what they really were. There's going to be more changes in the future. This isn't the last time that the Bitcoin protocol will need to change. We actually have a backlog of changes that need to be made to the protocol, and they should be technical no-brainers. But we thought that taking away an artificial cap on capacity was also a no-brainer.
Andresen: I think that's right. I mean, I'm not an expert on governance of open protocols, but there are people in the world who are experts on how you—I hate this word—how you get stakeholders to come together and come to an agreement and evolve protocols over time. I'm going to rely on people who have experience doing that to hopefully give some advice that will hopefully be listened to by all the players in the Bitcoin world, so that going forward, we don't have these messy debates that really arise from a crisis of governance. How do decisions get made? How do we just not debate endlessly? How do we come to a decision that everyone is equally happy and unhappy with?
This interview has been edited for length and clarity.
CORRECTION: An earlier version of this article stated that Mike Hearn claims to be the first person ever to use Bitcoin. This is incorrect. The first Bitcoin transaction was sent from Nakamoto to Hal Finney. Hearn's claim is that he was the first Bitcoin developer to use the cryptocurrency. This article has been updated. Motherboard sincerely regrets the error.