Home < Lets Talk Bitcoin Podcast < On Consensus and All Kinds of Forks

On Consensus and All Kinds of Forks

Speakers: Andreas Antonopoulos

Date: June 4, 2017

Transcript By: Michael Folkson

Tags: Soft fork activation

Category: Podcast

Media: https://letstalkbitcoin.com/blog/post/lets-talk-bitcoin-333-on-consensus-and-all-kinds-of-forks

User activated soft forks vs hard forks

Adam Levine (AL): I’m trying to look at the user activated soft fork thing and not see hypocrisy just steaming out of its ears. I’m really in need of you to help me understand why this is not the case Andreas. The argument to this point about scaling, one of the arguments, one of the larger arguments, has been that hard forks are the worst thing that can happen. In the event of a hard fork that isn’t meticulously planned and even if meticulously planned it is still probably a terrible idea. We’ve been now in this argument for two years where you can’t hard fork, you can’t do a variety of other things because they are all too dangerous. The user activated soft fork movement appears to be basically a quick way to create a situation that looks a whole lot like a hard fork. I’ll just lay it out real quick so you understand what I think and you can tell me where I’m wrong. The user activated soft fork as defined in BIP 148 and there are a couple of others floating around too so of course this is not definitive, basically what it does is it protects people who adopt the new version, who adopt the user activated soft fork in the event that there is ever a Bitcoin flip flop in consensus. The user activated soft fork software begins below 50 percent and people who remain on the non user activated soft fork have the majority. Under normal circumstance that would be Bitcoin but because of the way that this is built it can exist with a very low relative strength compared to the rest of the network and just kind of potter along as its own network. But if it ever gets above 50 percent and achieves consensus dominance within the Bitcoin network then the chain that had been the minority will become the majority. There is a large potential for people who have just been making normal transactions, merchants who have just been accepting normal transactions to find themselves essentially with the transactions that they made never happened because they weren’t included in blocks that were found to be valid by the chain that at the time was not what Bitcoin is but later became what Bitcoin is. So that sounds convoluted, it is a little convoluted. Tell me where I’m wrong, why is this not such a hypocritical thing to be talking about at this point.

Andreas Antonopoulos (AA): I don’t know that you are wrong. I think there is a whiff of hypocrisy, I think that’s par for the course in the scaling debate right now. It appears that this debate has fully morphed into pure power play across the board. It is no longer about scaling, it is no longer about any technical issues, it is about who gets to make the rules and who has the power to make decisions about Bitcoin’s future. Much of it is cover for that, the real debate that is happening which is a power struggle. It is a power struggle against a set of consensus rules that absent overwhelming consensus to move in a certain direction will maintain the status quo indefinitely and thwart the attempts of most actors to seize power and try to move the consensus rules in a particular direction. So far Bitcoin has proven to be remarkably resilient to this. Given the amount of propaganda and marketing and money that has been thrown at this power struggle, the fact that nothing has happened is really quite remarkable. This burst of innovation is about all things fork which we really didn’t have two years ago. This innovation is actually giving us much better options for paths forward that we can take in the scaling debate which are unfortunately clouded by the power struggle. If you look back two years ago, first of all the very term hard fork was barely used…. changes to the network, but those changes were done in a variety of ways. People were still experimenting on the best way to signal, activate and make a change to the consensus rules, an upgrade if you like, without causing disruption. Today we have not only distinctions between hard forks and soft forks and several different signaling mechanisms for activating, we also now have a further distinction between miner activated and user activated hard forks and soft forks. Which means we have at least four categories. It is a bit difficult to figure out which is which and there is quite heated debate still on the definition of a hard fork, a soft fork and when one can effectively become the other. You with me so far?

AL: I am yeah. I think it would be prudent if you could just go through and explain a little bit about how the user activated soft fork actually differs from how we normally make these changes.

Soft forks and hard forks

AA: Why don’t I take a step back and we go to a more basic question which is what is the difference between a hard fork and a soft fork? I think fundamentally the primary difference between a hard fork and a soft fork is that a hard fork expands the options, the range of the consensus rules. It makes things that were previously invalid subsequently become valid. So far so good? For example if we wanted to change the difficulty algorithm straight up and say it is going to be calculated a different way. If we make something that gets calculated with a new difficulty algorithm, any nodes that haven’t upgraded to understand that new difficulty algorithm will consider that new block invalid. By the old rules it is invalid. But by the new rules it is valid. Meaning that if all the nodes have upgraded they will consider it valid and the chain will continue. If there is a mix of old and new nodes where the old nodes consider it invalid, the unupgraded nodes consider it invalid, they will effectively stop following that chain. If that chain continues to grow and it grows faster than the old chain they will be effectively kicked off the consensus chain. They will be no longer be following the longest difficulty or the greatest cumulative difficulty valid chain. Not because the difficulty changed, not because the length changed but because the very definition of valid changed. It changed in a way that broke the rules as they were before. It is a discontinuous change, you might call it backwards incompatible but it is actually forwards incompatible. Does that make sense?

AL: Yeah so let me restate that. Basically what you are saying is that a hard fork is as you said adding a new capability or something like that or changing the meaning of something in a way that creates something entirely new that wasn’t there before. I will just go ahead and infer soft fork, a soft fork is the opposite of that in that it takes a capability that is already there and the software allows the voluntary stepping down. So if you have 100 percent you could soft fork to having only 80 percent of that capacity. But if you went to 101 percent that would be a hard fork. Is that right?

AA: Correct. Hard fork, the previously invalid is now valid according to new rules. Soft fork, the previously valid is now invalid according to the new rules. For old clients that do not upgrade in a soft fork the previously valid is still valid and therefore they will just ignore the fact that under the new rules it is invalid, they will just consider it valid and continue. The new clients may see that change and say “Oh no that is no longer valid by these new rules. It is now invalid.” You don’t have to upgrade, you find your node doing less strict validation than everybody else. Here is a specific example where this happened. With BIP 66, it is now about a year and a half old. It was a change introduced in order to tighten the rules by which signatures were validated, specifically the DER encoding of ECDSA signatures in Bitcoin. Specifically to prevent certain classes of transaction malleability that were introduced in signatures. A signature that was valid under the previous rules may have been invalid under the new rules. Essentially that was a tightening of the rules, not a loosening of the rules. It was implemented as a soft fork. It actually did cause miners to fork themselves out of consensus. When they said they would enforce that new rule and then didn’t, they created and mined blocks that contained signatures that the rest of the network considered invalid because the rules had tightened and they weren’t enforcing them fully. Six blocks got mined in violation of the soft fork rules and those miners found themselves losing those six blocks because the rest of the network rejected them. Miners can find themselves forked off of consensus if they do not upgrade to more strictly validate the rules of a soft fork because they are staking their energy behind validating to the most current rules.

Chain splits are not hard forks

AL: I feel like we have a Bitcoin and Bitcoin problem here so let’s just add that third definition that I think is missing here. We have a soft fork which is a voluntary restriction of the current rules which makes it so that there is a new sort of consensus but it doesn’t add anything that wasn’t already there. There is a hard fork which adds something that wasn’t already there and so can be used to make larger more systemic changes or at least in a more dramatic way. But then there is this other thing that is called a chain fork or a chain split. I think that is what you are talking about now Andreas. Even in a soft fork situation if the consensus diverges, if part of the network believes this and part of the network believes this, either because of non-upgraded software or whatever, then you can still have a chain fork which causes what many people think of as a hard fork. I think when a lot of people think hard fork they are thinking chain split.

AA: Right and that is not what a hard fork means. Forks in general occur continuously on an almost daily basis. On average once a day the Bitcoin chain forks and it forks because consensus is an eventual settlement system that converges on a common chain after a certain number of blocks. There is a reason why miners can’t collect their reward for 100 blocks, the coinbase is not redeemable for 100 blocks under the consensus rules. The reason for that is because there may be divergence in the consensus on what is the valid main chain which is temporary and can be caused by totally natural causes. Let me give you an example. If during the production of blocks two miners who are distant from each other in terms of network topology, I’ll simplify things and say assuming the network topology matched geography. You’ve got a miner in Northern Canada and a miner in Australia both mining for blocks. They both find a valid block, totally valid by everybody’s consensus rules, everybody agrees. They find proof of work for that valid block at the same time, perhaps slightly different blocks, the transactions might be in a different order, they almost certainly will be. They mine these two blocks simultaneously and then they start telling everyone they know. Imagine this block from Australia is now propagating out, radiating out. It goes from Australia to Indonesia, from Indonesia to India, and it is gradually spreading. Meanwhile there is another valid block spreading from Northern Canada going in the opposite direction. It is going to North America, Central America, South America spreading towards Europe. Somewhere in Europe the two blocks meet each other. At that point half the network will see the Canadian block first, half the network will see the Australian block first and they will have a different picture on what the current longest cumulative work valid chain is. That is a fork. It happens about once a day, slightly less than once a day on average. Four or five times a week. It gets resolved within one block. The way it gets resolved within one block is half the network sees the Canadian block, half the network sees the Australian block, the half with the Canadian block will assume that is the longest chain valid parent and will build on top of that and start building a new block. The other half of the network will start building on top of the Australian block. At this point the chances of them simultaneously resolving the proof of work again are now infinitesimal, they are much lower than that what just happened happening again. It is more likely that one of the two sides, one of the two perspectives, will produce a new block with proof of work first with a significant time difference. That block will be able to propagate across the entire global network before another block is found. Then the side that thought the Canadian block was the winner builds a child on top of that and propagates it to the whole network. At this point the whole network now sees the long chain as having the Canadian block as the parent and the Australian block has now been deprecated to a minority chain. All of the transactions that are in the Australian block that weren’t in the Canadian block get re-queued in the mempool and get mined in the next block. Everything gets redone. The Australian block, valid as it was, lost the race. In retrospect that miner will not collect that reward because their block did not become eventually part of the longest difficulty valid chain. This happens every single week in Bitcoin. Nobody even notices it. It is a normal consequence of the synchronization across latency. The problem is when these divergences do not re-converge. The reason they do not re-converge is because it is not about a difference in perspective about which is the longest difficulty chain, but it is a difference in perspective about which is the longest difficulty valid chain. That valid part is the consensus rules. If there is a divergence on the interpretation of the consensus rules or an inability to validate with the current consensus rules, as we saw with the bug in the database software back in April of 2013, then you have a persistent convergence. That persistent convergence doesn’t get resolved easily. One chain may be able to validate both sides and then you have the possibility of what is called a wipe out where eventually what was a minority chain becomes a majority chain and then wipes out a very long sequence of blocks. It may be that the consensus rules can only go in one way, so only one chain can wipe out the other. That is the case with the user activated soft fork.

The analogy of a bingo hall for block discovery

AL: So let me mangle one of our old analogies here. We have often talked about Bitcoin and the process of mining like a game of bingo where essentially everybody is playing against themselves but there ultimately can only be one winner per contest. It sounds like the analogous scenario to two miners finding a block is two people playing bingo both find bingo at the same time, the person who gets it up to the front and gives it to the bingo caller or what have you, is the person who actually wins that round. There can only be one. It is a bit of a race there, that’s the propagation where both blocks are going all over the network trying to get majority before the other guy because that makes it more likely.

AA: But with the difference that there is no upfront, there is no leader of the game. In fact what happens is everybody who is playing bingo at all of the different bingo tables is listening around them. Some people who are closer to one of the bingo winners will hear them shout “Bingo”. They will assume they are the winner for some period of time. Whereas the people who are sitting closer to the other person will hear them say “Bingo” first. If you stopped everything and did a poll saying “Who do you think won the last game?” you’d get a different result on the two sides of the room because of the way the sound of their shouting “Bingo” propagated across the room.

AL: We can also imagine that the rules are also propagating by the same kind of whisper network. People are saying “This has just become invalid.” That is what a soft fork is. People who don’t hear about that or don’t follow those rules still go up when they get a “Bingo” that complies with the old set of rules but it doesn’t comply with the new set of rules. This causes the confusion we are talking about here.

A soft fork to reduce block size scenario

AA: Right. Let’s use a different example for a soft fork. Right now there is a block size limit that requires all blocks be less than or equal to 1 megabyte in size. A consensus rule change that said “Actually we want them to be less than 750K, three quarters of a megabyte from now on. We are going to squeeze them smaller.” That is a soft fork change. The reason it is a soft fork change is because things that were previously valid are now invalid. A 800K block that was previously valid under the 1MB limit is no longer valid under the 750K limit. If you are validating and you are validating by the old rules the new 750K blocks still look fine to you because they are less than a MB, you are cool with them. The chain that is producing 750K blocks happily chugs and everyone accepts their blocks because they are fine. They are fine by both the old and the new rules. But if somebody produces a 800K block a big chunk of the network, perhaps the majority, will reject it because under the new rules it is no longer valid. When they reject it if the part of the network that is still following the old rules continues building on that you are going to have a divergence again. That divergence is that some people will assume the 800K block is perfectly fine because they haven’t upgraded and they will continue building on top of that. They’ll continue, they’ll continue and they’ll continue. Now it becomes a race. Which side has the majority of the hash power? The problem is that the side that has the 1MB rule sees both chains as valid but the side that has the 750K rule sees only one of them as valid and therefore will never accept the other side. At some point if that goes above 50 percent it is going to re-converge as the longest chain and wipe out the other side, the side that had the 800K block. The opposite can’t happen. The side that has the 800K block can never pull over the new small blockers because they refuse to see that as valid. One side can wipe out the other but not vice versa. Is this making sense?

BIP 148 user activated soft fork

AL: It does. That’s actually the opposite of the situation we are talking about here with the user activated soft fork right?

AA: Actually it is not the opposite, it is the exact same thing. Let’s talk about UASF BIP 148 very specifically. I will summarize as best I can and please read the BIP, a summary is not an accurate representation of this. The bottom line is that on August 1st 2017 nodes that follow UASF BIP 148 and validate based on it, not just signal, but actually validate based on the rules introduced by UASF BIP 148, have a new rule. That new rule is that after August 1st it is not acceptable to have blocks that are not signaling SegWit. They say “We will only accept blocks created by miners that signal acceptance of SegWit.” They don’t have to be SegWit blocks, they don’t have to activate SegWit, they simply have to signal it. So far so good? What that means is that if you had a node and you were running UASF BIP 148 and on August 1st a miner produces a block that is not signaling SegWit you take that block when it comes to you and you go “No it is rejected” and you refuse to propagate it, you refuse to accept it as valid. Everybody who is not working by these rules will propagate it. How far does it go? That depends. It depends on how many miners are participating in this, it depends on how many exchanges are participating in this, it depends on how many nodes are running this new set of rules. If a majority of the nodes are running this, especially a majority of the economic nodes, exchanges, merchants, retailers, wallets etc then miners will face a rather difficult problem which is they are essentially facing an economic blockade. They can mine blocks without signaling SegWit but if those blocks are rejected by the exchanges then 100 blocks later they can’t essentially cash out. They cannot exchange their earned Bitcoin rewards for fiat to pay their electricity bills because those blocks don’t exist on the exchanges’ blockchains. The exchanges are not recognizing them as valid blocks and therefore they are on a different chain. At that point it is presumably easier for a miner to simply signal SegWit and that way they know their mining rewards are safe. On the other hand if only a minority do this or if it is mostly nodes that are not engaged in economic activity and there are no miners supporting this then the people who are doing this and invalidating these blocks on their own blockchain will find themselves on a minority chain with a minority of the hash power which only they and a minority of the nodes are following, which doesn’t have the majority of the transactions and economic activity on it, it doesn’t have the majority of the hash power, it is slower to confirm, it has fewer transactions and it potentially has no blocks or only empty blocks. Those are the two possible scenarios there. Then it gets complicated because of course one of the third scenarios is that miners may decide to fight. If they decide to fight what they could do is they can dedicate some of their hashing power to purposefully mining empty blocks on the UASF chain in order to deny service. It is a denial of service attack. If they mine empty blocks no transactions are being mined on that chain. In order to do that they then have to essentially split their hash power between maintaining the supremacy of the “We won’t do SegWit” chain while also putting some hash power to beating down the UASF chain by denial of service with mining empty blocks. That is a dangerous game because if the UASF chain takes over it will wipe out the “We’re not doing SegWit” chain whereas in order to really stop the UASF chain you have to do it through attrition. People have to give up because they’re not getting transaction throughput and they are not getting economic activity on it but it will never get wiped out. The nodes that are following that have effectively created an altcoin at that point if it doesn’t have….

AL: Right. That brings us back round to the beginning of this conversation which was the perceived hypocrisy that I saw in this. We have now talked about hard fork versus soft fork but one of the arguments that I’ve been making and getting some pushback on is that necessarily a user activated soft fork can only succeed by scaring people into action. Because if it doesn’t scare people into action then it happens exactly like you said. You wind up with a situation where you can have your own coin but it is effectively an altcoin because you weren’t able to get the majority of Bitcoin economic activity and these other things to go along with you. But it is set up in such a way that it is kind of like a booby trap. If that’s the situation that happens, it starts with less than 50 percent but then goes to over 50 percent, that’s just bad right? It seems to me that there is a fundamental difference in this approach to doing things compared to anything else I’ve seen. This is more like an attack or an actual threat on non-participation where everything else has been “We want you to support this because this is the right choice. Please opt in.” This is like “If you don’t opt in you have a major chance of being injured by this.”

AA: I think it would be accurate to call it a boycott, possibly an economic blockade. An economic blockade, if you park your ship in the other party’s harbor, you don’t let any other ships go in and out, that’s an economic blockade.

AL: And the starvation is collateral damage.

AA: If you park your ship in the middle of the Pacific Ocean and you declare an economic blockade nobody gives a damn. For an economic blockade to matter you have to be able to impose it on the hubs of economic activity or they have to be working with you. If exchanges, merchants, wallets don’t in a major way support this on August 1st then you’ve parked your ship in the middle of the Pacific Ocean and you’re going “I’m going to blockade y’all” and no one around you for 10,000 miles hears your cry of defiance because nobody gives a damn. At that point of course you are not doing any damage to anyone other than yourself. That is a fundamental difference. A hard fork, 51 percent consensus or more attack forces a change on the entire network. You might call it an attack, you might simply call it a 51 percent consensus rule change. Most people consider it reckless to do that with anything other than overwhelming consensus. It stands a pretty good chance of causing a rift in the network. UASF also has a chance to cause a rift in the network, especially if miners decide to attack the minority chain which would be another escalation. It is effectively a game of chicken. I saw this analogy on Reddit so attribution there to whoever said it. The only way to win a game of chicken is to very visibly take the steering wheel off and throw it out the window. At that point your opponent knows that you have no ability to swerve. There is a head on collision possibility there always. This is what it is. The bottom line to all of this is the issue of power struggles and the fact that this is where we are now. It is not about scaling really, it is about power struggle.

Constituencies of consensus

AA: I’ve said this many times before. There are five constituencies of consensus. Miners, developers, users with wallets, users with exchanges or economic actors with exchanges and economic actors with merchant activity. So merchants, exchanges, wallets, miners and devs. That’s the five constituencies of consensus. They are not hard lines, there is overlap between any of those. Think of it as a Venn diagram. Obviously miners who spend their money at exchanges are also economic actors. Of course users can be miners, miners can be users, they can have wallets, miners might be merchants etc etc. Developers may come from any and all of these. But for the most part think of these as the five constituencies. You cannot change the rules without a majority. Think of it as a 3-of-5. You need 3 of 5 at least. In order to do it in a way that is unlikely to cause disruption you need a 4 of 5 or 5 of 5 agreement. That’s how the consensus rules change. The miners have in the past suggested changing the rules by adopting software by 51 percent or more of the hash power under Bitcoin XT, Bitcoin Classic, Bitcoin Unlimited and various other attempts to change the consensus rules to increase the block size by a hard fork with a 51 percent or more hash rate. That is absolutely going to work effectively and cleanly as long as they have the other four constituencies with them. If they do it is completely seamless and harmless but you can never get full consensus on that. You haven’t seen full consensus emerge on that solution. At the moment full consensus has not emerged on any change to the consensus rules. There is always a minority, somewhere between 20 percent at least and up to 50 percent that doesn’t want one of these solutions. Until that is overcome a lot of this is really not going to work. How much disruption it causes, we’ll see. Maybe a lot, maybe none at all. It very much depends on who plays along with UASF. We might see a big change by August 1st, there are a bunch of other proposals at the same time that are being developed including SegWit2x which is the proposal that reached agreement among certain participants in the ecosystem in New York during Consensus (conference). UASF is just one gambit. What is interesting about UASF is that it is the first time you’ve seen the user base, wallets and in some cases some merchants really claim their power and say “You know what? We are part of this too. We have power.” As is the case with all of the other constituencies of consensus, the claim is not “We also have power.” It is “We have ultimate power.” This is what miners say, this is what some developers say, this is what some exchanges have said even. Of course all of those are false. No one has the ultimate power. That is the tenuous balance that is at the heart of a decentralized system like Bitcoin, that does not allow anyone to take over. That of course is the most important feature of this system. It makes for a very nasty debate and some very difficult scaling decisions but it also makes for a very resilient system that deters attackers and cannot be moulded to the whims of someone with a lot of money and propaganda or a popular movement among users that doesn’t have overwhelming consensus or miners who are pursuing their own self interest or developer groups that are doing their own thing. None of those groups have power ultimately unless they agree with a bigger constituency.

AL: Necessarily a user activated soft fork or anything else that is a fork of the network is it sounds like going to have to do a hard fork in order to lower the mining difficulty if they don’t have 70 percent of the network.

AA: If a soft fork turns into a hard fork then it is a completely different thing.

AL: Assume for a second that we wind up in a situation where there is 40 percent support for UASF. In that situation if there is 40 percent hashing power on that side then that means they either have blocks that are substantially slower than where they are or they hard fork in order to fix it. But by hard forking to fix it again you negate the argument against a hard fork.

AA: That is the case for both sides of the chain at that point. The real consideration for a user activation soft fork driven by the economic actors of the network is is it driven by the economic actors of the network? If it is driven by the economic actors of the network and there is overwhelming support among exchanges and merchants then the miners really don’t have a choice. They can’t mine a chain that they can’t spend.

AL: It is just the redundancy we are talking about, nobody can force a sea change here. To even attempt it is very risky as we’ve seen reputationally certainly. Most of the people who have attempted to do anything like that have much lower profiles and much less prestige in the space than they did before they tried to do that. And also technically it is a risk to your users and in the case of UASF to other users as well.

Innovation on upgrade mechanisms

AA: I think we are going to see resolution of the scaling debate, let me add that as a positive and optimistic note. And the reason we are going to see resolution of the scaling debate is rather simple. Over the last two years during this scaling debate we have seen the emergence of more than a dozen proposals. We have seen an enormous amount of research and development and resources poured into finding technical means by which to clarify, secure, make these solutions better, less disruptive, understand the implications of the different mechanisms for upgrading. The state of the art on upgrading a decentralized consensus algorithm has advanced tremendously. Two years ago we didn’t even have the term hard fork, now we are talking about four different categories of deliberate upgrade forks, miner activated, user activated, soft fork, hard fork and all the combinations. And we are in fact discovering there might be more nuances within that. SegWit didn’t exist two years ago, a bit more than two years ago. SegWit as a soft fork was an invention specifically designed to cause a less disruptive approach towards the scaling debate. That is currently being signaled under BIP 9. BIP 9 itself as a signaling mechanism for miner activated soft forks which were not signaled in that way before, is a new one. Spoonnet, Spoonnet2 and potentially Spoonnet3 which are a series of proposals by Johnson Lau that give us a reformatting of the block header in order to solve several different problems, not just the block size but also to make hard forks much cleaner and less disruptive by ensuring that there is replay protection, so transactions cannot be replayed from one side of the fork to the other, as well as wipeout protection so that you can’t have a very, very long chain develop that then gets wiped out in a reorganization. Those developments did not exist two years ago. We are now much, much more advanced in our understanding, in our research and in our development to do these things in a live network and upgrade them. The proposals that come out are more and more complicated, in some cases that is counterproductive, but they are also more and more sophisticated. You are seeing that people are actively trying to find ways to create solutions both political which I don’t think is the right approach, but also technical solutions to this debate that try to resolve the underlying technical issues in a way that is the least disruptive possible. And I am confident that eventually we are going to see convergence on a solution that is broadly acceptable, that offers a road forward, that is least disruptive, that the community and every one of the five constituencies get behind. And we will see pretty much all of the above. We’ll see an activation of something that is SegWit or very similar to Segregated Witness for transaction malleability and witness scaling and all the other things that SegWit does. We are going to see a base block size increase in addition to SegWit’s block weight increase eventually. We are going to see a reformatting of the block header in order to introduce new features such as extra nonces for miners, a more flexible header format that improves a lot of other issues. We might see a change in the transaction format. We are going to see Schnorr signatures, we are going to see signature aggregation techniques, we are going to see UTXO sets and potentially things like MMR, Merkle Mountain Ranges and other proposals for creating fraud proofs and verifiable UTXO sets and optimizations like that. All of the above is the scaling solution. The question that remains is not what do we do, the question that remains is in what sequence and how do we do it in the safest, least disruptive way to the broader ecosystem. That question has not been resolved and it is a technical issue. It is overshadowed by the political struggle and the power struggle but at the bottom line this is a matter of science. I am confident that we will see a road forward.

Prospect of a community split and an altcoin

AL: Since we first started seeing contention in the cryptocurrency space, specifically in the Bitcoin community, I don’t even remember what the first issues were but there have been issues for years at this point. I have long thought that the necessary conclusion of this process is that you have two Bitcoins for the two different core constituencies of Bitcoin. You are talking about the different classes of users, in terms of what role they play in the ecosystem, I’m thinking more about this from a what do these people actually want from Bitcoin perspective. The problem with where we are going is as you’ve said there are the technical concerns but a lot of this is just about who gets to decide and who gets to dictate the way Bitcoin should develop. If we were looking at something that was monolithic, if we are looking at something that wasn’t open source, that wasn’t Bitcoin, then I would agree with you. I would say eventually because these problems need to be solved things will come into alignment. But the reality is that our technical solutions as you said are better than they ever have been. Our processes for figuring out the science of this thing and the amount of people participating and the amount of money being poured in have never been better. And yet the contentious issues have never been more contentious, even when everybody agrees that Segregated Witness should go in. The reason why it hasn’t gone in is because of that power dynamic you were talking about. The one side that is holding it up basically believes this is their leverage and if they give up that leverage that’s pretty much the end of it. The other side doesn’t want to give because of technical arguments and also because they are winning. If nothing changes then the status quo remains and since that is largely more supportive of that position than it is of the people who are blocking it you have this loggerheads. That’s where I get back to. I don’t disagree with anything you said but I think the human element here is a much larger piece of the puzzle and it is very difficult to see because on the one side of the argument which is in favor of small blocks generally many of those channels are frankly pretty repressive and don’t really have conversations about this stuff in a way that lets you see both sides of the argument. I’m not saying the other side is better and I know they’ll yell at me for that too because they yell at everybody and everybody yells at everybody but that’s the point. The stakes are really, really high here and on the one hand there are technical clear paths forward but on the other hand a lot of this is “We don’t really know and so we have to pick and we have to experiment.” You can look around at experiments and they are not very applicable but you can see that people are doing larger blocks and you can see that people are attempting to scale in different ways. That is what I get back to. Contention or not I expect to see two blockchains that both bear the name Bitcoin, that take part of that community and basically don’t look back at the other side. If it is this issue that becomes it then what we’ll see is a Bitcoin that has a small block size, 1MB maybe even gets smaller, that’s Bitcoin Settlement. On the other side you’ll have Bitcoin P2P or Bitcoin Cash or whatever you want to call it and that’ll be something that will have much larger blocks, it will mostly use SPV mining, it will be less secured but it’ll be possible for individuals to transact on it. I don’t see that as a bad thing. It might mean that the value of each of them goes down but I think if anything Ethereum is showing with Ethereum and Ethereum Classic that it doesn’t really matter. It is actually not a net negative for the prices and sure maybe the price of Ethereum might be 500 dollars now versus 250 or wherever it is at the moment. But it is still a net positive regardless of how many of these things you have if there is utility and communities behind each one. With the emotions tied up in this and the different use cases, on the one hand you’ve got the settlement, on the other hand you’ve got all the players like Shapeshift and BitPay who want larger blocks because they need to fit more transactions into the blockchain. Is that a bad outcome and do you expect to see that happen, do you not expect to see that happen? That’s my thesis, been for a while, still feeling good about it, how do you feel about it?

AA: I would hope that doesn’t happen. Part of the reason I would hope that doesn’t happen is because I’m not confident that if that happens it will happen in any way that is not disruptive. The first question I would have for any proposal to create such a split is really simple. It has to do with the fundamental technology of how that split is engineered and it has to do with whether there is replay and wipeout protection between the two chains. You can get a split that protects both chains from each other and allows it to be somewhat clean. One of the problems we saw in Ethereum is that there was no replay protection and there was no wipeout protection. That made it a damaging split for the ecosystem and caused people to lose money. Several exchanges lost money because of that, because of the lack of replay protection. For an economy like Bitcoin and with the dynamics of the difficulty retargeting in Bitcoin that would be much messier. I would hope to see if something like that did happen that it was organized and engineered in a responsible way with at minimum replay and wipeout protection built in. I think it is absolutely irresponsible not to address that since we know the damage that something like that does.

AL: I totally agree with you about the unplanned thing. The unplanned thing is definitely the part that makes anything like that dangerous, anything that is contentious, that is why UASF is also dangerous. It is not because it is inherently dangerous, if it has support there is no problem. It is only a problem if you go into it and neither side is really preparing for a situation where it winds up being contentious. Just to quote John F Kennedy, “Those who make peaceful revolution impossible will make violent revolution inevitable.” That continues to be the trajectory that I see. The attempts to have this peaceful conversation in a way where both sides are able to compromise, let’s not even say willing, able to compromise in order to give the other side what they actually want while not giving up what they themselves need, I don’t see that as being possible given the differences in what they want from the thing. That’s my concern for something that is unplanned, that this just continues to get worse and worse and worse. We continue to have problems, we don’t have solutions for them because we can’t get consensus because of this disconnect. That’s where you wind up with a violent break and both sides struggle to fix their stuff on either of their sides. If we could get past that and say “Maybe it is not that bad if there were two Bitcoins, one that is for scaling onchain and one that’s for settlement onchain at the highest security possible per transaction.” It seems like that would be the path forward if we get to pick but it seems like the most likely path forward is that we just keep banging heads against each other and eventually it happens. Both sides say “Screw you, I’m just going to do my thing and I will protect myself against you however I need to.”

AA: I hope we don’t have that outcome. There are a couple of reasons why I hope we don’t have that outcome. Effectively splitting Bitcoin in two is creating one or depending on your perspective possibly two altcoins. There are 1500+ alternative and varied cryptocurrencies and blockchains in this ecosystem. As you say some of them have different perspectives on scaling and governance. I would prefer to see some of that pressure go there than see the Bitcoin chain split in two. There is another problem with splitting the Bitcoin chain in two which has to do with the monetary policy. There will only ever be 21 million Bitcoin. In a two chain situation there will only ever be 42 million Bitcoin. That is a problem and I hope we don’t see that happen. But if it happens I think Bitcoin will survive it. I think inevitably there will be some very heated debates about which one is the real Bitcoin which really doesn’t matter at that point. There will always be hold outs who will stubbornly refuse to follow upgrades. The question is how big is that hold out group? Is it going to be 5 percent, is it going to be 20 percent or is it going to be 50 percent? We’ll see. I’m optimistic. I hope we can find a solution that doesn’t involve a divorce. But if that’s what it takes that can happen too, I just hope it doesn’t.

AL: I feel like a lot of the last couple of years, for people who are looking at this technology as a solution rather than an elegant technical project, has been a process of repeatedly killing all the sacred cows that we know about. That happens on the code side too because on the code side as you said everything is being upgraded. What upgraded means is we’re making it better. We’re taking out the old thing and we are improving it so that it becomes more efficient and better to use for all these different reasons. The one bubble that I feel like we’ve been in for 4, 5 years, I think I started talking about this pretty early on is that Bitcoin is “the one”. Bitcoin is what cryptocurrency is, the pinnacle of cryptocurrency. We’ve talked about this lots of time before, how Bitcoin may fail but it might not even necessarily fail. You’re talking about the 42 million versus 21 million, that’s what I feel like there. How is that any different than Bitcoin not working any longer for cross border settlement because the fees have gone up? That was a sacred cow too that we took a lot of care of and a lot of pride in. It didn’t really matter at the end of the day because it turns out that wasn’t what Bitcoin was. I just don’t understand how we get to pick.

AA: To me it is very easy to determine which ones we pick and which ones we don’t. The current fee situation restricts the ability to use Bitcoin for several purposes that were previously possible at one scale and are no longer possible at another scale. But in my mind the important difference is that I consider this fee environment that we have today temporary. I don’t think this is the fee environment that we will be in the future. I look back at other technologies and how they developed over time. I remember a time when email was unusable because of spam. When attachments couldn’t be sent because DSL and modems didn’t have enough capacity, when Usenet was flooded by image attachments and couldn’t scale, when entire… of Usenet stopped getting used. This is the old days of course. In most cases these were temporary problems when the capacity of the network was outstripped by the demand and didn’t scale fast enough and then it did. And when it did it opened up new applications again that were previously unavailable and things reverted back. I think the fee situation is temporary, I think a split in Bitcoin is not. It is permanent and it creates a precedent and an irreversible collapse in the resilience and governance of the system that will damage Bitcoin. Not fatally, absolutely not. And I don’t believe that Bitcoin is “the one”. It is not a maximalist position that leads me to do this. It is just that I think that resilience is a feature of the system. If the system is able to fall to the whims of a small group, defining small whichever way you want then it is not doing what it is supposed to do. There are plenty of other cryptocurrencies that are more centralized that have easier governance by being more open to that. I don’t think that is what Bitcoin should be, I think it should be the resilient and robust system but that is my personal opinion and of course the market decides what it is going to be. We are going to find out, that’s part of being on this journey. We’ll see how it works but I think that is the big difference between the fee situation now versus a split in the governance over one scaling decision and really over a power struggle over who gets to make the rules.