Hi Everyone. Good evening, or good morning, as the case may be.
We’re here at a conference which focuses on Bitcoin’s scaling. And several talks suggested different technical solutions to Bitcoin’s scaling, which is great. I’ve also had some contributions on the technical front, for example my suggestion from one year ago, for elastic block caps. And we may not all agree which technical approach is the best. This is fine. We’ll talk, we’ll discuss, we’ll investigate, and hopefully end up with the best solution.
But that’s not what I’m here to talk about today. I want to bring the discussion two steps up on the scale of abstraction. The 1st level is the object level – the actual protocols and technical means. The 2nd level is the meta-level, or governance model – what happens when we don’t all agree on the object level, how to make the choice of which protocol to use. The 3rd level is the meta-meta level. It is about the overall dynamics of the choice of governance model, and about where does the power to make decisions ultimately come from.
I’m going to present some views, which at one time I assumed were the unspoken shared beliefs of all Bitcoin enthusiasts. When the debate on Bitcoin’s scaling started to heat up in recent years, I’ve quickly came to realize that not everyone holds the same views. And now I regret that I hadn’t spent more time in the past writing explicitly about these matters. Maybe if it was more widely discussed earlier in Bitcoin’s history, it could have given us more tools to handle the current debate.
The fundamental question underlying this talk is, "What controls Bitcoin?". Historically, we’ve had physical currencies, which are controlled by the laws of nature; and we’ve had centralized currencies, which are controlled by their issuer. But Bitcoin is the first time we’ve had a decentralized digital currency. And this gives a lot of trouble to people trying to figure out what Bitcoin is ultimately governed by.
Inside the Bitcoin community, people often say that Bitcoin is controlled by math, by a protocol, by code, by an algorithm. They say Bitcoin is incorruptible – you can’t bribe math. If you hold a gun to math’s head, it won’t flinch. It won’t surrender. It won’t do whatever you want.
This is in some way true, but it is also very incomplete. Because Bitcoin wasn’t created by some abstract mathematical entity. It wasn’t created by an artificial intelligence. Well, unless Satoshi is an AI, which would actually explain a lot. But he’s probably not. And also, Bitcoin wasn’t created for the benefit of machines. Bitcoin was created by people, for people. And it is up to us, the people, to decide what we want out of Bitcoin, and how we want it to behave.
The protocol, and the code, and the math, are all just tools that we use to coordinate among ourselves what we want Bitcoin to look like, and to actually implement and enforce our design. But since they’re just tools, they can be replaced. If we, the users of Bitcoin, agree that some new protocol is better than the old one, we can simply choose to switch to using the new protocol.
To demonstrate this point, I’d like to discuss one of the most sacred of sacred cows in the Bitcoin protocol – the limit of inflation. The inflation limit of Bitcoin is something that must never be changed; but some people go as far as saying that it is technically impossible to change. That is false; Bitcoin users can easily agree to switch to a new protocol with a different inflation limit, or no limit at all. This is technically no different than any other change, such as a change in block size limit. The only difference is that changing the inflation limit will destroy the confidence in Bitcoin as a store of value, and thus no sane person will ever support such a change. But it is up to us, the people, to understand and decide that this is forbidden. The math and the code have no say in this – it is above their pay grade.
So we understand that the protocol is controlled by us. The next question is, who is “us”? If everyone involved in Bitcoin agrees what needs to be done, there’s no problem – we simply make the changes that everyone agrees on. Easy. But what if not everyone can come to an agreement? How will the decision be made? Who has a say in this?
Another common misconception is that the power to decide the protocol is at the hands of miners. After all, the rules say that the block branch which has the most work put into it is the correct one. So allegedly, a majority of miners can dictate the rules that they see fit. But this forgets a key part of the rule – the correct branch is the longest one among all valid branches. It doesn’t say anything about accepting a long branch that follows a protocol different from what we consider valid.
Consider the following scenario: 60% of the mining power decides to switch to some new, incompatible protocol. Everyone else sticks with the original one – Users, Merchants, Exchanges, Wallet services, and the remaining 40% of the miners. Every block mined by the 60% will be rejected by every node that hasn’t switched. If they try to sell bitcoins they have mined, they will not be able to do so because no buyer will recognize what they’re selling as valid bitcoins. Meanwhile, the blocks mined by the 40% will form a separate blockchain, with bitcoins that are recognized as valuable. Soon, the 60% will realize that they’re mining a worthless currency, and will switch to mining the original protocol so that they can generate revenue again.
So it is not just miners that have a say on what the protocol will be. A majority of miners is definitely not enough to decide the protocol. Miners have to conform to the wishes of the people who give the currency value. You can’t ignore the people willing to pay $650 per coin, because you want them to actually want to buy your coins. You can’t ignore the people who will not sell their own coins for less than $650, because on a protocol they dislike they can sell their coins and crash their price. You can’t ignore merchants willing to offer goods and services for bitcoins. And you can’t ignore wallet developers, wallet services and exchanges that act as proxies for the wishes of all these people.
Ultimately, the Bitcoin protocol will be determined by the economic majority – the sum wishes of everyone involved in the system, weighted by how significant each one is in giving the system its value.
But this analysis still doesn’t clarify what is the mechanism by which the economic majority expresses its wishes. If you think about it, you’ll see that the only way my description can make sense, is if there is a possibility for the Bitcoin network to split into two, in such a way that every actor can decide which version they prefer. So I’ll spend some time talking about how exactly such a split would look like.
A split begins just like a unanimous change. A version of the Bitcoin code is written that says: Starting from block X, the rules are this and that. I’m assuming that the new protocol and the old are completely incompatible, so that a transaction which is valid in one is invalid in the other.
The difference is that with a unanimous change, everyone starts running this new code, and essentially, the new protocol becomes the one true Bitcoin. With a contentious change, some people run the new code, but some still run the old code. At first we will not notice any difference, but when we get to block X, we will suddenly have two different networks. Each network will have its own currency, its own nodes, its own miners. They will be completely separate, much like Bitcoin and Litecoin are separate.
The only connection the two networks will have is a shared history – they both agree on which address owns which coins as of block X. Basically, someone who had a bitcoin before the split, will now have a bitcoin A and a bitcoin B, and he can use each independently. And every user, trader and merchant can choose to use one of the coins, the other, or both. Much like they can currently choose which of the alts they would like to use, invest in, or accept as payment.
Such a split can be short-term, medium-term, or long term.
In a short-term split, one of the networks soon realizes that it has virtually no support at all. Everyone is using the other currency. Due to the network effect, even those who prefer the protocol of Bitcoin A will be unable to use it. After a few days or a few weeks, even the supporters of Bitcoin A will abandon it, and reluctantly start using Bitcoin B. Bitcoin A will die, and Bitcoin B – the network which has an economic majority - will emerge as the one true Bitcoin.
In a medium-term split, both networks have significant support and they coexist for a while. But after several months or years, it becomes apparent that the protocol of Bitcoin A is problematic. It doesn’t function as well as the network of Bitcoin B, and over time, people switch from one to the other. Here, too, Bitcoin B will ultimately emerge as the one true Bitcoin.
In a long-term split, neither of the networks is clearly superior. Each has its own advantages and disadvantages, and each has its supporters and preferred use cases. This will result in two different currencies, that will coexist indefinitely, which were both spawned from the same original coin.
We must realize that anyone can initiate a split at any time, for any reason, or for no reason at all. This is a result of Bitcoin being based on Open Source code and an open ledger. Anyone who wishes Bitcoin to follow a different protocol can take the code, alter it, and start running a new network, hoping others will join. Of course, doing this on every whim is impractical; the new network would have very few users, and will quickly die out due to network effects. The resulting split would be extremely short-term. But everyone has an inviolable right to try. Nobody has to conform to the tyranny of the majority. Bitcoin is not a democracy. It is something much greater – a plurality. A system where everyone can choose their own path, as long as they can find companions.
All of this was known years ago. There is however one important difference between how I viewed this 5 years ago, and how I view this now. I used to think this was all a theoretical possibility. That the right to split existed only to make sure nobody has to exercise it. That the possibility of a split exists in the background, as a threat, to make sure everyone cooperates and decides on a reasonable protocol. Much like the mutually assured destruction doctrine, which dictates that countries should keep a nuclear arsenal only to ensure they will never have to use it.
I thought that a split is harmful and a thing to be avoided, and that there will not be a need to actually perform a split to see which way the economic majority goes. That people – and companies -will simply be able to share their views, and this way, the result of any split could be estimated in advance – so there will be no need to split, we can just unanimously choose the protocol which the economic majority prefers.
But what I realized a year ago is that this is probably not sustainable forever. At some point – and we might be approaching this point – there will be disagreements so severe that they cannot be reconciled with discussion and compromise. Every party will demand that either everyone follows their vision, or that it will split off on its own.
This became apparent when the plans for Bitcoin-XT were released, and the block size debate stopped being about the block size, and became about Bitcoin’s governance. The difference between Bitcoin Core and Bitcoin XT wasn’t that one had 1MB blocks and the other had 20MB blocks. It was that Bitcoin Core was governed by a team of developers trying to reach consensus, and Bitcoin XT was governed by a dictator.
Now, it’s not immediately obvious that a dictator for Bitcoin is bad. Remember, the ultimate power is not at the hand of the dictator, but at the hands of the people who can choose which version of Bitcoin to use. But that’s still not a very satisfying governance model – for a decentralized system, I’d like the day-to-day decision making to be a bit more decentralized than a dictator. We don’t want to start a split whenever we disagree with 1 person.
Bitcoin XT is now dead, and Bitcoin Classic is the new Bitcoin XT. Instead of a dictator model, it is based on a voting model – or popularity contests, as I like to call them. This also isn’t very satisfying, since decision power is given to people who may not have the expertise to make the correct decisions. Many people would disagree with me on this, which is exactly my point – if you thought reaching agreement on technical aspects of the protocol is hard, reaching agreement on the governance model is even harder.
So here we are, with people from two different philosophies that cannot be reconciled. To be honest, I’m not entirely sure where we stand on this matter right now, and how wide the support of Bitcoin Classic or Bitcoin Unlimited is. But if we haven’t reached the point of no return yet, we will probably reach it sometime, in a future round of this debate or a different debate.
Many people assume that in such a case, we have a winner-takes-all elections. Everyone chooses a side, tries as hard as he can to convince everyone to switch to his side, and one side will eventually win. This is a problem for two reasons; one, a lot of energy is wasted on fruitless arguments and flame wars. Two, in the end, we will come up with a decision that will leave a large portion of Bitcoin users unsatisfied, resentful even.
The alternative, of course, is to split the network in two. This way, people can stop trying to convince others to switch to their side – they can focus on making sure their side works as well as possible. This option is shunned in most discussions, because it is considered to be too disruptive and harmful. That is what I used to think as well.
But I’m here to advocate the position that if it comes to that, it’s really not such a bad option after all.
Now, there will definitely be bad aspects. It will be confusing, it will weaken the network effects, it will look bad. But if you look at it from the perspective of different users of the system, you’ll see that a split right now will not impact them more than they can handle. An investor more or less keeps the value of her investment after a split, and then simply have two currency options to invest in. A merchant that just wants to accept Bitcoin doesn’t need to make any choice – he teams up with a payment processor as he always has, and the processor decides which version of Bitcoin to accept. A Bitcoin enthusiast that goes and pays with Bitcoin, will have to figure out which version to use and when – but it’s ok, he can handle it. He’s an enthusiast.
If the split turns out to be long-term, at some point people will have had enough of two currencies with identical, or very similar, names. Then one of the coins will simply have to undergo rebranding, finalizing the split into unrelated currencies.
On the positive side, embracing forks is what allows the cryptocurrency ecosystem to be truly competitive. Whenever we disagree about the best protocol to use – no problem, we just pit the two versions against each other, and may the best currency win.
This also gives rise to the concept of Bitcoin as a living organism. Instead of a rigid set of rules, it is an organic creature; it can sire offspring, it can mutate; the weak die out, the fit survive, and Bitcoin as a whole becomes stronger as a result.
You could say that a split will hurt the perception of Bitcoin. It can be deemed too confusing and unorthodox, and a sign of weakness that the community cannot reach an agreement. But I view this the same way that I view exaggerated reports about Bitcoin’s demise. The first time the newspapers said Bitcoin was dead, sure, there may have been a concern that Bitcoin’s reputation was irreversibly harmed. But by now there have been over a hundred reports that Bitcoin is dead. In my opinion every such report makes Bitcoin stronger, not weaker; because it demonstrates how much Bitcoin can go through and still carry on. Likewise, the first time Bitcoin splits it might lead to some bad press; but after everyone gets used to the whole “Bitcoin evolution” thing, they will realize that each split is not a bad thing.
Now, there is one big problem with everything I’ve said so far: I’ve assumed that when there are two camps each running their own protocol version, the network will simply split in two. But there are technical reasons why it’s not that simple.
First, if the two protocols maintain the same transaction structure, then the same piece of data that encodes a valid transaction on one network, also encodes a valid transaction on the other network. When a user tries to send bitcoins of network A, the transaction could accidently be picked up by network B, and the user will send coins he did not intend.
The solution is to have some sort of transaction versioning system that makes sure the transactions are incompatible between the two networks. At least one of the networks has to cooperate with the idea for this to work.
The other problem is with mining and the hash function. It can be shown that when there are two significant, separate networks, both using mining based on the same hardware, and all miners try to maximize their profits, the hashrate will go back and forth between the network, and the difficulty of each will wildly oscillate. This creates serious stability issues. One possible fix is to make sure that at least one of the networks switches to a different hash function.
These two issues demonstrate that, while a split is possible, we need to be prepared for it on the technical level. We need to acknowledge that we’re going for a split and set up accordingly. If we have an “accidental” split, with two camps that each think their way is the only one to go, the results can be disastrous.
I want to clarify that what I said is not descriptive, it is normative. It explains what should happen, not necessarily what will happen. If people do not accept my vision; if they continue with the “only one Bitcoin” mentality; if they try to discredit and attack versions of Bitcoin that are not their favorite; then a split might not be possible. I think that we will be worse off if we live in a world where Bitcoin cannot be split, and this is precisely why I try to advocate the merits of splitting.
Now I’d like to talk about a connection this all has with some recent events. We’ve all heard about the recent hack in theDAO. And we’ve heard the talks about hard forks and rollbacks. Some people support a rollback, some don’t. Here, too, there might be disagreements so great, that they will lead to a split of Ethereum into two separate networks – one which believes in rollbacks, and one which does not.
There’s a lot more I have to say about this, but I’ve left some out because I didn’t want the talk to get too long. I’ll point out two blog posts I’ve written about the subject – “How I learned to stop worrying and love the fork” and “I disapprove of Bitcoin splitting, but I’ll defend to the death its right to do it”. The talk is largely based on these two posts, and they cover some details I haven’t discussed now.
And, of course, if there’s anything important I’ve left out, or if anything wasn’t clear, I’ll be happy to answer some questions now.