I disapprove of Bitcoin splitting, but I’ll defend to the death its right to do it

In a slideshow published by Brian Armstrong, CEO of Coinbase, he promotes the view that Bitcoin is currently undergoing a winner-takes-all elections, and that variety in Bitcoin protocols is akin to variety in web browsers.

I find this incorrect, misleading and destructive.

Unlike physical currencies, governed by the laws of nature, and centralized currencies, governed by the whims of their issuers, it’s not at all obvious what ultimately governs a decentralized digital currency such as Bitcoin. There’s the protocol and the code, of course, but those are mutable and thus adhere to a higher authority.

This authority is the agreement between people – as long as users agree to use a currency with a specific protocol, this currency exists and is usable and valuable. If users agree to collectively switch to a different protocol, so be it.

But a core part of Bitcoin’s vision is that users can also agree to disagree. If a group of users wants to use a specific protocol, they have the right to do so, regardless of what anyone else says. Nobody can force a user to adopt a specific protocol. Bitcoin is not, and never has been, a democracy, governed by majority vote. It is something much better, a plurality – the ability of everyone to choose their own path.

Of course, if the advocates of a specific protocol are too few, this will make their currency less usable. So if at all possible, users have an incentive to go with the flow, join the majority and enjoy the network effects. But if it’s not possible – if the disagreement is too severe – they have the sacred, inviolable right to split off; and it is important that everyone remembers they have this right, and not be fooled by anyone who wants them to think they must settle for the view which happens to be dominant at the time.

I used to think this was meant to be only a theoretical possibility, something that exists to keep everyone working together, and protect against rogue developers. But it’s no longer theoretical – I believe we have reached the point of no return, where we have 2 warring camps disagreeing on so many levels that a compromise will not be found. So we should split, let each faction live in peace, and make sure we do it as cleanly as possible. My views on this matter have not changed considerably since I wrote this post to the same effect half a year ago.

So much for the vision. As far as technical details go, there is indeed an instability inherent in having multiple major currencies based on the same PoW hash function. This can be alleviated by one of the sides switching to a different hash function – but in any case, it’s important to first understand the vision, then work out the technical details.

It has been suggested that in past instances of a hard fork, the network quickly collapsed on one of the sides. But this is of course ridiculous. There was never anything in the history of cryptocurrencies that even remotely resembled the situation we have now. There is no past experience to draw on. All we have is the realization that there are powerful forces on all sides of the debate which are not going to simply capitulate.

Some think that the network effects will be overwhelming, and everyone will abandon the minority chain in favor of the major one. But this view is easily contradicted by the existence of hundreds of alts – 50 of which have a market cap of over a $1M, which is nothing to sneeze at. Some are junk; some enjoy a decent following despite no real innovation, such as Litecoin; and some are hailed as the future of cryptocurrency, such as Ethereum. All of them are operational, and have a following, small as it is. They are not abandoned in favor of the bigger Bitcoin network, because each of them has advocates believing it offers something that Bitcoin does not. The situation is no different with a split in the Bitcoin network.

Finally, it’s important not to be confused between variety of protocols, and variety of software implementing a given protocol. I can use Thunderbird to send an email to someone using Outlook. I can browse a web page and see more or less the same thing whether I’m using Firefox, Chrome or IE. Analogously, I can use Bitcoin Core to send bitcoins to someone who uses Electrum – this is because both programs adhere to the same underlying Bitcoin protocol, and are thus compatible and interoperable. But the situation is very different if the sender and receiver obey different protocols – because what I am able to send is different from what the other party is able to receive.

The situation is much worse than with traditional software, because what I’m sending is not just information, but rather tokens of value. So any compatibility layer will be fundamentally financial in nature, not programmatical. Perhaps one day we will have the infrastructure for seamless conversion between different digital currencies. But until then, we should see the multiplicity in protocols for what it is – a hard split into incompatible currencies – and not muddy the discussion with naive, broken analogies to web browsers.

It would make me quite happy if a compromise is found that will allow all current Bitcoin proponents to be part of the same network. But if not, I like having the option to split, and will defend our right to do so. You should too.

20 thoughts on “I disapprove of Bitcoin splitting, but I’ll defend to the death its right to do it

  1. Tobias Brox

    I’m quite sure that (almost) nobody wants a split into two incompatible currencies. The sum of the value of the two currencies will most likely be far below the value of the current bitcoin. It will be extremelty chaotic times, most people will not understand the nature of the fork and will probably give up the whole project. Both coins will probably descend from being Bitcoin (the king of cryptocurrencies) to become just a part of the “altcoin junge”, most likely banking coins will take over. No, it’s not a good scenario – and that’s also the rationale behind the 75% threshold + 28 days for enabling the 2MB limit.

    I believe the most likely scenario is that there will be no “contentious fork”. Classic will never achieve more than 75%, or when they do, or when it seems overly likely that they will reach the threshold, Core will turn around and agree on a hard fork. In this scenario classic is no threat, but serves a very useful purpose of constantly reminding the core developers that they don’t have supreme ownership of the Bitcoin project. (The core people seem quite stubborn, but I don’t think they will allow themselves to become redundant – we should assume Blockstream has rational investors that neither want the Bitcoin project to crash nor Blockstream to become irrelevant actors on the Bitcoin development scene).

    The second most likely scenario is that the “core coins” will die relatively instantly. At least 28 days before the fork, 75% of the hash power will support the 2 MB limit – it is likely that most of the remaining miners will switch sides during those 28 days. Even in the very worst case, there will in average be 40 minutes between each block on the 1MB-branch, the (still shared) mempool will be clogged and it will be hard to get any transactions through. The 2MB-network will have 13 minutes between each block, and twice as much space in the blocks, so it won’t have any capacity limits. It will be very hard (if not impossible) to convert newly minted coins on the “core”-network to cash. There is no economic incentive to continue mining there, and this situation will last for at least a month, sufficient time for the remaining “hard-core-core-fans” to abandon ship.

    The third scenario … a real, lasting currency split … I find it extremely unlikely.

    1. menirosenfeld Post author

      Back in the XT days I would agree that your scenario #1 is the most likely. But Classic seems to have much more support than XT did back then, so it’s not at my top anymore.

      Your scenario #2 is what I would consider a nightmare scenario which must be avoided at all costs. It’s like the extinction of a rare species. This is why I believe Core should, as a defensive measure, switch to a different hash function if there is a danger of Classic prevailing. This will allow the two coins to coexist peacefully, each with its own hashing network.

      1. menirosenfeld Post author

        I’m not sure how to PM on WP, but I can be contacted by email – meni at bitcoin dot org dot il.

    2. Kat Unted

      > The second most likely scenario is that the “core coins” will die relatively instantly

      Bitcoin won’t die in the face of Classic’s attack. The price will probably drop considerably if they are able to trick enough miners into thinking it’s a good idea, but that’s not the same as “death”.

      > Core will turn around and agree on a hard fork. In this scenario classic is no threat

      If the Core developers adopt the ‘Classic’ consensus rules, that doesn’t stop Bitcoin from existing. It just means that the Core developers are now supporting the same altcoin as the Classic promoters. That seems unlikely to happen.

      > At least 28 days before the fork […] there will in average be 40 minutes between each block on the 1MB-branch

      I don’t think you understand how it works. The fork happens at the end of the 28 days. During the 28 days it’s business as usual, with 10 minute, 1 MB blocks.

      > I believe Core should, as a defensive measure, switch to a different hash function

      If anything, ‘Classic’ should switch to a different hash function. Or better still a new genesis block, just like all the other altcoins did. That way there would be a lot less confusion and lost coins.

      1. menirosenfeld Post author

        Of course Classic should switch to a different function, in the sense of – nobility obliges them to do so. They want to fork? No problem, but please change the hash function.

        But if they don’t do that (and they probably won’t), then Core should switch to a different function, in the sense of – it’s in their best interest to do so, otherwise chaos ensues.

      2. Tobias Brox

        So in your point of view, lifting the 1MB limit is equivalent with creating an altcoin, no matter what?

        I feel there are some fundamential misunderstandings here. This debate has two sides, personified through Adam Back vs Gavin Andresen. Despite all the conspiracy theories I strongly believe that both Adam and Gavin are acting in good faith and want only the best for Bitcoin. They both want Bitcoin to stay true to the original vision of Bitcoin – and I want you to put away the thought of Classic being an altcoin or Classic being a hostile takeover attempt.

        First of all, let me try to deal with your implicit claim that any abandonment of the 1MB limit contributes to ditching Bitcoin and creating an Altcoin. I dislike arguments like “look at what Satoshi wrote” – it’s an appeal to a godly authority, an authority that is unable or unwilling to clarify what he really meant. Anyway, it’s hard to argument for or against the argument “classic is not Bitcoin but an altcoin” (or controversially “core is not Bitcoin but an altcoin”) without looking into how Satoshi defined Bitcoin, and what he actually wrote about the proposal to increase the limit.

        First of all, I would like to point to the white paper. It says nothing about a 1 MB limit, but it’s strongly hinting that the chain with the most accumulated PoW is the Bitcoin. Meaning that if more than 75% of the miners will support Classic, the miners still sticking to a 1 MB limit after those 28 days will efficiently be mining an altcoin.

        I would also like to point you to the very start of the blocksize debate: Garzik proposed an immediate switch to ~7MB block size limit in October 2010 – ref https://bitcointalk.org/index.php?topic=1347 – the terms “hard fork” and “soft fork” was not introduced back then, but Theymos immediately identified it as a hard fork and Satoshi chimed in. Satoshi kicked the can, his exact wording: “We can phase in a change later if we get closer to needing it”. In https://bitcointalk.org/index.php?topic=1347.msg15366 he goes further, proposing to hardcode the new limit being applied at some future block height, allowing the network sufficient time to update. I suppose the number 115000 was chosen quite arbritrary, but block 115000 passed in March 2011.

        So, Satoshi said … “let’s upgrade the limit (to 7MB?) when we get closer to needing it (i.e. 2011?), by setting a hard flag block height and giving people some grace time (months?) “. Classic is nothing but an attempt to fulfill this.

        TLDR: Please stop bitching about Classic being an altcoin. Classic is Bitcoin.

  2. Tobias Brox

    I think the national leection is partly a good analogy; if 78% of the population wants a new president, then the nation won’t split in two after the election. It has been said that in a well-working organization one would have a heated argument before the decision is made (though, the “heated argument” should not include ad-hominem and mudslinging), but once the decision is made it’s best that everyone stops arguing, unites and supports the decision.

    But yes – in a national election, one doesn’t have much of a choice, with Bitcoin everyone do have a choice. I agree very much with you both that the “classic folks” have all their rights to promote a fork, as much as the “hard-core core-supporters” have their rights to ignore the “election results” and split out their own currency after the election. I strongly believe that they won’t, because there is no economical incentive to do so, while there is a strong economical incentive to follow the (super)majority.

    The “hard-core 1MB folks” may have “religious” reasons to stick to the 1MB-limit. Decentralization is indeed important (but can the currency really be “decentralized” if one commercial company has the de-facto power both to veto uncontroversial changes as well as to force through controversial changes to the protocol?). While almost everyone agrees that today, the network can handle 2MB blocks without problems, bigger blocks do tend to favor the Chinese miners. This will be pretty much a moot point with thin blocks implemented (this has already been implemented in XT).

    I would expect Peter Todd and luke-jr to stick to their principles disregardless of economical incentives – that means, deliver a client with modified PoW-algorithm as well as work around the 40-minutes-block-interval problem. However, I also believe Blockstream would be more pragmatical and would follow up on the 2 MB block – after all they wouldn’t chop off the branch they’re sitting on, they do have investors and customers to care about.

    The “big block camp” has done a lot of compromises – we’re down from 20 MB to 8 MB and now further down to 2 MB. Even in the “core environment” it’s hard to find people being obsessively opposed to 2 MB blocks. We’re mostly how and when we’ll increase the block sizze, not if we should do it or not. I think the disagreement is smaller than what it appears to be. To get back to the national election thing, it’s like a referendum on the speed limits on the highways – should they be 80 km/h or 120 km/h? Now, it would be pretty bad if people would disagree on weather to drive on the right or left side of the road. The speed limit may seem like a very big thing to quite many of the drivers, but in reality it’s not a big thing. There is some coordination work to get all the roadsigns replaced and to prepare the drivers for the change, but it’s not bad enough that one would seriously consider to build two separate systems of highways.

    All in all, I remain very optimistic that no matter what, we’ll end up with ONE de-facto bitcoin network after the fork.

    1. editchief

      > The “big block camp” has done a lot of compromises – we’re down from 20 MB to 8 MB and now further down to 2 MB.

      Those are not compromises. Those are admissions of being wrong: “oh crap, x MB rally is dangerous, Core was right. Better pick a lower limit.” See jtoomims own data if you don’t believe any other.

      So AFTER Core has already put out and started implementing the roadmap with 1.75 MB (much safer, quicker and including actual scaling solutions), classic comes up with a new attack because… just because. No reason whatsoever but to attack and save face for being wrong the whole time.

      Beside the fact that “compromises” are nonsense in this sort of technical discussion anyway. They’re called bikeshedding. Compromises are done in political discussions.

  3. Tobias Brox

    So apparently some people think that if we do increase the block size limit through a hard fork, we’ve ended up creating an alt-coin, no matter what; that’s not how I read the whitepaper and Satoshi has written that the limit should be lifted (in good time before we would start to bang our heads towards it).

    Other people think that Classic is an altcoin because it is an attempt on bypassing the current guardians of the core code. Suffice to say, if one person or a small group of persons have the supreme right to decide what should and shouldn’t go in as protocol changes (softforks are also protocol changes!) then Bitcoin is not decentralized anymore.

    Some folks describe the decentralization property as “no government or business entity should ever have any theoretical chance to take over the control of the Bitcoin network”. Now, consider that one business entity already do have de-facto control of the Core project, and consider that a majority of those with commit access to the Github repo (as well as Github itself) is residing in the nation that Snowden needs protection against …

  4. davidjoelschwartz

    It’s not about right, it’s about ability. If there’s a split, the side with less than 50% of the mining power can only continue to exist if the other side lets it. It is not difficult to design a blockchain such that it functions normally but also destroys another blockchain that has less hashing power than it does.

    1. menirosenfeld Post author

      1. My point is that we first should acknowledge that this right is important, then we should figure out how to give people the ability to exercise this right. Some of the preparations required are discussed at https://fieryspinningsword.com/2015/08/25/how-i-learned-to-stop-worrying-and-love-the-fork/.

      2. If there is a hostile attacker with more hashpower than the honest Bitcoin network, it can attack Bitcoin. This has always been the case.

      If the Bitcoin network splits, then as far as the minority side is concerned, *it* is the true Bitcoin network, and anyone who does something else (including what we call the majority side) is an outsider. If the outsider has more hashrate, it can attack the network, sure. But again, that has always been the case.

      3. The majority side doesn’t need to explicitly allow the other side to exist. It just needs to avoid explicitly attacking it. Offhand, I don’t see why the majority side would necessarily want to attack the minority. And if it does, the minority can defend by developing its own mining mechanism which is incompatible with the infrastructure the attacker already has.

      4. I didn’t say it would be easy. Just that it’s better than some alternatives.

      1. davidjoelschwartz

        You can say people have a “right” to a secure PoW chain regardless of what resources their adversaries have. But as a practical matter, there’s no way to make that happen. Secure PoW requires that the majority of mining power be friendly to your chain, not averse to it. A Bitcoin split of any significant would almost certainly find each chain considering the other one a threat and, honestly, the community would probably be best served by a winner take all situation rather than two competing “Bitcoin”s.

      2. menirosenfeld Post author

        The reason I’m advocating the merits of splitting, is precisely so that each side will understand that the sacredness of the option to split trumps any quibbles they may have with the other side. Each side of the divide shouldn’t see the other as a “threat”, but as a natural part of how Bitcoin evolves. For example, I believe Core is better than Classic, but this pales in comparison to my belief that if Core and Classic form two significant camps with no hope of compromise, they should split up. If Core happens to be the majority, I won’t attack Classic, I promise.

        My analysis isn’t descriptive – it’s normative. It’s about what should happen rather than what will happen. Of course, my hope is to convince enough people of what should happen, so that it actually will happen.

        And the whole point is that I disagree about that last part. The community would not be better served by a system in which a split is impossible. Bitcoin will be maimed and doomed to remain rigid and uninnovative, unless people understand the importance of splitting – and that they shouldn’t attack networks they disagree with.

      3. menirosenfeld Post author

        In any case, you seem to completely ignore the fact that there are hundreds of alts, some of which share hash functions, and they rarely get attacked (maybe an occasional attack by Eligius). A minority side of a Bitcoin split should be essentially the same.

      4. davidjoelschwartz

        The hundreds of alts rarely get attacked because they don’t purport to split Bitcoin. Their security for large value is questionable. And if they ever ceased to create enough value to justify significant mining, they die, as many of them have.

      5. DJC @digitsu

        I don’t think anyone is saying it is a given. But I’m not convinced it is a certainty as you depict it either. I think it is worth discussing. Let’s think more about some of the assumptions that support your conclusion
        1) that hashpower superiority on the old chain means some advantage in the new chain
        2) that miners in the old chain (if we assume a high degree of centralization) won’t welcome a minority of the miners stopping mining on the old chain, even though this means making a larger portion of the reward.

        And some assumptions that may support the opposite
        3) the cost to split is near zero (especially if the new hash algo is one that is ASIC resistant, and can be mined on normal machines)
        4) the initial value of the new token would be appropriately low, proportional to the miners who split.
        5) an ‘attack’ would essentially amount to one where both sides would be competing on equal ground without no one side with an inherent advantage.
        6) It isn’t clear who would be incentivized to attack the new chain, old miners would should be fine with mining at a higher proportional hash, assuming the split is done such that the txns are not confused between networks, and users wouldn’t mind and they have the same amount of old BTC as new BTC, and the monetary base of old BTC isn’t affected.

        Has this been tried before? Yes, we all know of CLAMS. But we can’t point to that example of why this sort of split cannot work, that particular split had no popular support, and no reason for being. If we hit a point in Bitcoins development when a certain portion of the users want to move in a certain direction while the others don’t, the most civilized way of handling this is with a mutual split. Mutual history (and coin distribution) up to the split, and after separate.

    2. DJC @digitsu

      To follow onto Meni’s point #3, when the mining algo is changed, then the “attackers” end up on the same footing an the “defenders”. And any attack would just serve to strengthen the security of the new chain. It then just becomes a question of who has the most money and resources to ‘attack’, and some point the incumbent miners will realize they are just injecting more security onto the minority chain, and leave.

      This is really a matter of incentives. Are the incumbents incentivized enough to exert resources to deliberately cause double spend attacks on the new chain, with new mining hardware? Why not just leave the new chain be and allow for orderly exchange between them?

      1. davidjoelschwartz

        What the heck are you talking about with this “injecting more security”? The more they attack the chain, the less secure it is.

        It is really this simple:

        1) If you have a powerful adversary that has more hashing power than your miners do, your chain is not secure.

        2) Merged mining allows people to mine for one chain while they *attack* another.

        3) If a chain were perceived as a threat to another chain, the threatened chain would have every incentive to attack the one that threatens it.

        For example, say there’s a split in the Bitcoin community. If the minority chain tried to also use the term “Bitcoin”, the majority chain would have every incentive to kill the minority chain. If we presume miners are selfish, there is no reason not to presume they would use their chain to attack the other chain.

        For example, suppose Bitcoin splits. The majority side can decide that the minority side will never have another confirmed transaction. It can do this by supporting merged mining and defining a valid block on its chain as one that also advances a chain on the minority side that has no transactions after the split date. So long as the side with merged mining holds more hashing power than the other, the other side will never confirm a transaction reliably.

        Changing the hashing algorithm does not help unless you somehow imagine that the minority side has tons of hash power somehow for this new algorithm that the majority side can’t match. The majority side can just support both hash algorithms and adjust its reward as needed to ensure it keeps the minority chain dead.

        It is absolutely reckless to imply that people can easily create PoW chains that are secure for high values in the face of an adversary with significant resources.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s