Bitcoin’s Theodosian walls and Hard Forks
We lived the block size drama for more than two years, and every time it seems to have ended, after few months we are back in another Bitcoin civil war. Even if the block size debate splits the community and reduce confidence over the future of the protocol, I still believe that overall it is something positive and necessary for the development of Bitcoin. For example, thanks to all the discussions that the debate has caused, many people started to get informed about very technical aspects of the protocol such as latency in blocks propagation, transaction malleability, fee market, quadratic scaling of hashing time and other things that probably wouldn’t had much attentions otherwise. So, whatever happens, in the end at least it was a useful educational experience.
However, it is not my interest to discuss about the pro and cons of a block size increase since I don’t think it is even the real reason why the community is so divided. I believe that the real split in the Bitcoin community is not big blocks vs SegWit, but much more on whether we can use hard forks as a way to upgrade the protocol.
Many of the criticisms to SegWit are about the extra complexity that it brings as a soft fork, while it will be much cleaner to activate it as a hard fork. On the other side many of the opponents of the block size increase are worried about the risks an hard fork could bring.
Obviously, keeping the code clear sounds like a great deal, not only it makes people run a better software, it also means less the technical debt for the protocol reducing the entry barriers for new developers, but unfortunately things are not that simple, the complexity of Bitcoin is not just about the code.
They very reason why Bitcoin became successful in the first place is because it managed to solve, in a probabilistic way, the Byzantine Generals’ Problem in an open network. How this is achieved it has been explained very well by Satoshi in an old post where he describes a situation with a certain number of Byzantine Generals who coordinate with Proof of Work a brute force attack on the emperor Wi-Fi password. In the same way, the Nakamoto Consensus manages to coordinate the participants of the network to decide which block of the blockchain is valid, creating the security needed to make people feel confident to invest wealth in the system.
From the Byzantine Empire we can learn not only the value of coordination, but also that of security. Indeed, one of the reasons why the Byzantine capital Constantinople has been, for many centuries, the wealthiest and most populated city in the world, was because it could enjoy the protection of the massive Theodosian walls which protected the city from external invaders for over a thousand years, allowing its people to prosper. One of the drawback of the wall was that it limited the territorial expansion of the city, reducing the space for development to only 12 km², but still they were the best 12 km² in the world to trade and do business.
Now imagine if the Byzantine Emperor decided to move the wall outside the city to gain more space for urban development, meaning that for a certain period of time, while moving the stones from the old wall to the new one, the city would have been unprotected and vulnerable. Doing so Constantinople would have exposed itself to new enormous risks and part of the confidence citizen had in the security of the city would have been lost.
Similarly (even if the analogy is not perfect), the Bitcoin’s Theodosian walls is the Nakamoto Consensus, it keeps the ecosystem safe creating the necessary conditions to prospers and grow the economy. A hard fork would mean that at some point the network, in order to agree on which one is the last valid block, needs to use external off-chain communication channels, without obviously assuring the same level of security businesses and nodes are used to have with the Nakamoto Consensus.
In case of a hard fork, the participants of the network with some value at stake would have to deal with new risks they usually don’t have to manage. For instance, an economic node would have to control he is not receiving and sending transactions on the wrong chain, a business would have to avoid confusion among its customers and a miner would have to make sure the nodes and the other miners are accepting and relaying its blocks
With enough luck a hard fork can be completed smoothly, it already happened few times with Ethereum, but we can’t expect a rational investor who put money on a Byzantine Fault Tolerant protocol to be happy with a network that require complex off-chain coordination for software updates, it would indeed break the main value proposition of Bitcoin.
Differently a soft fork has much less coordination complexity since users don’t need to update all at once, making it a protocol update tool more reliable. Moreover, the difficulty of safely execute a hard fork grows when the network becomes bigger and there are more and more participants with conflicting interests, a soft fork still share part of those problems, but it is overall much less risky due to the backward compatibility and the less coordination needed. This does not exclude that in the future there will be a way to safely execute a hard fork, but certainly that day is still far away, and for sure Bitcoin has more important issues to solve before that (e.g. fungibility and malleability).
If we want to build a platform for the future of finance, let’s do it behind the strong Theodosian walls of the Nakamoto Consensus, Bitcoin is too precious to be jeopardised.