Making the strongest case for small blocks

The article below is a translation of an article I wrote originally in french.

Why write this now ?

This article is NOT for the blocksize debate veterans that have been around for the last three years. They have already most probably heard this argument a thousand times. I hope this article could help the newcomers or those that are not here yet, but will join us in the years to come, to understand what is the small blocks stance. In fact, I don’t like much to label myself a small blockist, as I think while the debate has been centered around this very specific issue, the divergence of view is much deeper. It is a mistake to consider it a mere technical issue, and it is no less a mistake to consider it a matter of taste, as if some people prefer their blocks big or small as they prefer their meat rare or well done, and you can’t tell who is right or wrong.

Here is why I felt it could be useful to write this article now :

  • Useful information is spread across dozens of articles, blog posts, forums, tweets, reddit or videos over the past 3 years or so. You cannot ask someone new to the field to go and screen through all that shit himself, at least not without first giving him some synthetic argument about what is at stake and why things are the way they are today.
  • It is even more important today than what we should call a speculative bubble on ICO and “crypto” has inflated in 2017, understandably attracting a lot of interest beyond the usual afficionados. Wave after wave of new users, investors and simple observers swept across the field. They are clueless of course (which is fine), but it makes them easy preys for crooks, scammers and various sociopaths.
  • I first thought that Bcash hardfork last august definitely settled the debate, and that since everyone now have the choice to go with small or big blocks as they feel confortable with, each side will go its merry way and never ever argue again. Too bad it didn’t last long before Bcash became a tool of agitprop leveraged by a small group whose leaders are a prooved scammer and a narcist sociopath that have made up a new narrative in which Bcash is the true and unique Bitcoin, in what seems to be an attempt to leverage the brand in their own interest. But anyway, we’re not talking about Bcash here, so let’s move on.

Prerequisites

Bitcoin is a complex matter, and would deserve a whole book (well, more like whole libraries in fact) to be discussed at lenght. But since it just means to be a readable article, here is some assumptions I won’t bother to argue here :

  1. Bitcoin is not a business, nor is it a currency and most importantly it is not a payment network. Factually, Bitcoin is a software, it is code, information, period.
  2. While runned by a network of peers, this code enable generation, safe conservation and trade of a kind of commodity, that is digital, scarce and rival, and commonly called “bitcoins”.
  3. To achieve that, the peers of the network all agree on a protocol, a set of rules that has been designed to make Bitcoin a “peer-to-peer electronic cash system”. Here we should make immediately clear that opposite to a very common misunderstanding of the word cash (an ignorance easily exploited by Bcash propagandists), cash does not mean “pocket money” or “microtransaction”. Cash is money that can be used for ultimate settlement of debt because there are no third parties associated to the deal. Historically, cash is gold, so remember that next time someone tells you “Bitcoin betrayed Satoshi’s vision, because the whitepaper is talking about cash, not gold“. He has either being deceived or is trying to deceive you, and in both cases you should just ignore him.
  4. Bitcoin’s value is to be a sovereign monetary system, meaning nobody can change the rules. It’s a network of peers, which means that they’re all equal as they enforce the same set of rules. It’s not a democracy where some ill-defined majority can impose anything on the minority. Each peer is free to enforce the rules he thinks appropriate, while bearing the full consequences of his choice.

Three (definitive) arguments to keep the blocks small

  1. Bitcoin does impose a trade-off between “ease-of-transaction” (enabled by having bigger blocks) and “ease-of-validation” (the smallest the blocks, the easier to validate). What’s important is the two side of the deal are not of equal importance : the latter is critical while the former is not. That means we must never trade “ease-of-validation” for “ease-of-transaction”.
  2. Today, there is no alternative to running a full node to validate transactions and enforce protocol. Bigger blocks raise the requirement to operate a full node yourself, while by keeping blocks small you actually make it easier and easier as domestic computers become more powerful.
  3. With Bitcoin we only have one shot, if we mess things up we are very unlikely to recreate the same ideal conditions for organic and anarchistic growth of another Bitcoin network. That’s why we must be very prudent, especially regarding modifications on the protocol level. I know some people won’t get it, but in Bitcoin not doing anything is the best option most of the time.

The “ease of transaction” versus “ease of validation” trade-off

In case you bought into some blockchain bullshit made up by consultants, it is useful to remind that the blockchain is not a magical tool, that is a scheme made to solve one problem, that is double spend in a decentralized open system. The backbone of Bitcoin is the possibility given to any user to audit and validate every transaction that ever went through the network. While this redundancy of validation makes Bitcoin possible, it also comes with serious constraints and trade-off, one of those being if you increase transactions output (number of transactions in a given time), you also increase the cost for every node to validate and broadcast an increased number of transactions.

As everybody should know, there is no free lunch. Having bigger blocks allows for more transactions to be processed on the network, but as you raise the cost of operating a full node, you effectively push more and more users out of the network as their node eventually becomes incapable to catch up on the present block (this is not theoretical, this is real and this has been happening to Ethereum for some time now). The question is then : should we prefer processing more transactions at the cost of having less nodes on the network, either actual or potential ?

Let’s try the two sides of the question with ad absurdum arguments :

  1. If Bitcoin’s blockchain processed 1 block of 200kb every hour, technical requirement would become very low, meaning that virtually any device connected to the internet could run its own full node, including phones. On the other hand, the transactions output would be seriously limited, meaning that it would be used for large amount, international transfer or when one really needs censorship resistant money (buying a cup of coffee in Palo Alto obviously doesn’t qualify as such).
  2. Now, let’s say that we can process 1 block of 1gb every 2 seconds : transaction output is ridiculously large, everyone can use it including for microtransactions like buying a cup of coffee every morning. Great, isn’t it ? But there’s a price to pay : technical requirements for running a full node had become so huge that only miners and some big companies can afford one.

In our first hypothesis, it would definitely be an annoyance for many users, most use cases would be out-priced and we definitely would not see mass consumers adoption in a near future. But the point is that even in this extreme case, Bitcoin can still do what it was meant for, peer-to-peer electronic cash (we could also argue that mass consumers adoption is not the winning scenario for Bitcoin anyway, but that’s another debate).

Now on the 2nd hypothesis, while it sounds great, something tragic happened : Bitcoin is not anymore, and you got Paypal 2.0 instead. Congratulations, you just reinvented fiat world, except with slightly different actors. Why ? Because one day the 3 or 4 compagnies that run full nodes will raise the 21 millions cap on the number of bitcoins, or will make controversial change to the protocol, or freeze your UTXO, and you won’t do anything about it, because you are not a peer. You will be as powerless as you are today.

Now back to reality. Things are obviously more balanced today, but Bitcoin is arguably already a bit too much on the ease-of-transaction side. Why ? The conditions faced by the network nowaday are not too much adversarial, in fact it is relatively ideal : reliable internet infrastructures on a global scale, no ban anywhere on mining or running a full node. But despite operating under quite friendly conditions, we observe that mining is already relatively centralized (it could be much worse though), and most users just keep their bitcoins on third party custody, or at best with a light client wallet. What would happen if China’s internet infrasctructure was suddenly severed from the rest of the world ? What if a western country or a coalition of states declared a real ban on Bitcoin, seizing everything that is on an exchange and cracking down on people that run a full node at home ?

Bitcoin is designed to keep running on adversarial environment, but it seems that we haven’t prepared too well for that.

If you want to be a peer, you have to run your node

What I mean by being a peer, is that you don’t depend on anybody to validate any transaction and make sure that everyone is enforcing the consensus you agreed with. And today it can only be done by running a full node.

An analogy with gold can helps us understand why control from all peers is important.

Gold is the best money humanity ever had… except it failed and it has ceased to be the basis of our monetary system for some time now.

Gold has many great features that make it sound money, like high value per unit, durability, divisibility, low stock-to-flow ratio etc, but it also has shortcomings. Transaction costs are very high, because it is not easy to test that the gold you are given is of a said weight and finness, especially if you have to repeat the test for every transaction you make. A solution that people confronted with this issue came up with was to delegate this operation to some authority that is supposed to certify that a coin is made of gold of a said weight and finness. Another solution would be to leave his gold in deposit to some bank, and use scriptural money to transact.

But there is a big trade-off : by doing that, individual actors are giving up control over their own property to third parties. That kind of counterparty risks are what Bitcoin was made to annihilate. The fact is that actors endorsed with this power will abuse it, and more sooner than later. Political power has always debased the coins they were supposed to guarantee the value. Banks have always lend their deposit by making more gold receipt than they actually have in their vault.

Under emperor Diocletian, the aureus only retained half of the value it had at Caesar’s times.

Recurrent crisis in the XIXth century pleaded for the creation of a lender of last resort, central banks that are still around today. As gold became more and more concentrated in a few central banks vaults, it became very easy for most european governments to seize their gold at the outburst of the First World War.

Why Bitcoin would be fundamentally different ? Because when you run a Bitcoin full node, it would be as if you were able to test the gold used in every transaction since the dawn of time and discard every piece of counterfeited gold that ever existed, so that when someone would give you a gold ingot as a payment you would instantly know that it is pure gold. It is orders of magnitude safer and more efficient than gold.

On the other hand, not using a full node would be a lot like gold coinage as you need to trust some third party to validate your bitcoins. You trust them not to abuse this power, and we all know given sufficient time they will.

We won’t have a second chance

As of today there are hundreds of shit…, sorry, I mean altcoins. Most of them are just Bitcoin copycat and dead or dying by now, but some people think that altcoins could coexist significantly with Bitcoin, or even that some altcoin could displace Bitcoin as the top crypto currency. It seems very unlikely :

  • One of the most important feature of Bitcoin is the certitude that there will never ever be more than 21 millions bitcoins. Altcoins is a way to subvert this limitation and to recreate some kind of inflation of monetary stock. It kind of work today because lot of people don’t get Bitcoin and throw money at literally any shitcoin hoping it will be the next Bitcoin, but because scarcity is a key feature of sound money it is doomed as soon as people will get that the old paradigm is not anymore.
  • Bitcoin is the only of his kind, whose growth had been totally organic and truly anarchistic. Every altcoin out there without any exception are run by a team whose acting as its legitimate owner. This create a single point of failure, as men are easily corrupted or threaten. It is even worse : they are not only single point of failure, they are also needed, as it is very unlikely that their altcoin could survive if their founder were to quit or being fired in some way. Because of its immaculate conception, Bitcoin is the only one whose “leaders” are not single point of failure, which also means that they can actually fall in disgrace and being replaced without threatening Bitcoin itself, and that it already happened a few time in the short history of Bitcoin, most notably to Gavin Andresen, which was no less than the dauphin chosen by Satoshi himself. Yet he lost legitimity within the community and was forced to step down.

It is very unlikely that any altcoin could displace, or even coexist durably with, Bitcoin. If it is so, and I believe it is, it means we only have one chance to create a decentralized, censorship resistant monetary standard, and that we should always be as conservative as possible whith design modifications that might impede Bitcoin decentralisation.

But let’s admit Bitcoin could be replaced by some altcoin, for the sake of the argument : if another, superior altcoin, with the same features and value than Bitcoin, could appear and replace it, then it is okay to be extra slow and cautious while developing on Bitcoin, because even if we compromise Bitcoin success by being overconservative we would just wait for another better Bitcoin to take over and we will be fine.

Anyway, just in case, still better to stick with small blocks.

Conclusion

One of the issue with the current debates about the future of Bitcoin is the tremendously huge number of diversions that prevent us to think through the most fundamental questions : what is Bitcoin ? Why it is so valuable ? What are the risks, and what can we do to neutralise them ?

Bitcoin is still at a very early stage, and its development must not be thought on years, but litteraly on decades or even centuries. A lot of thing could happen on such a large time scale, but what is almost certain is that it is near impossible to imagine a future where Bitcoin fails only because you can’t make micropayments on-chain. On the other hand, emergence of new counterparty risks, including the eventuality of transaction censorship and double spend, or even worse, the take over of the protocol by a handful of colluding entities, would almost certainly doom Bitcoin, and that is the kind of risks we should all be concerned about.

Bcash shills and proponents of big blocks in general are making the wrong assumption that Bitcoin is a payment network, and accordingly estimate Bitcoin’s success or failure by comparing it with Visa or Paypal, which makes no sense. It makes no sense to take the decentralized architecture of Bitcoin with all its constraints and limitations and expect him to play in the same league as centralised network like Visa. If we were to walk down this road, all we can expect is to keep kicking the can down it with ever bigger blocks until the only remaining peers of the network are big miners and some well founded corporations, meaning effective game over for everything that Bitcoin stands for.

Of course, if it were to happen one day, rest assured it will be done for the greater good, and unless there is a spectacular shift in our contemporary culture which would need at best one or two generations, the decision to raise the 21 millions limit would be met with apathy, or maybe even support by the majority of the population. When everyone will ask to raise it, because you know, it is “central planning” and miners should vote for the software they want to run and all this kind of bullshit, and that anyway only a handful of miners, banks and maybe governments will actually run a node to support the network by then, what will you do, you, small, isolated bitcoin maximalist ?

The whole point of Bitcoin is not to be a democracy, to put monetary policy out of range of the politics. If the kind of pression described above are possible, Bitcoin has failed and serves no more purpose. One of the most important thing we can do today is to help more people to run their own full node :

  • in the very likely case of a legal crackdown on Bitcoin in one or many countries, including attempts to seize individuals’ full nodes, owners of a full node mutually protect themselves, the more they are, the more difficult it will be for authorities to confiscate. It would be easy to confiscate their computers to a few dozens geeks, much more complicated to seize thousands of computers, impossible if virtually every personnal computer in the country is running or could start to run a full node overnight.
  • the failure of the S2X hardfork in 2017 shows that if users with full nodes are opposed to consensus modification, they can successfully resist a highly coordinated and well founded attack with a large support from miners.
  • more as a side effect, teaching people to run their own node also contribute to the promotion of a culture of responsibility, and helps more people to have a good basic undestanding of Bitcoin and the way it works, which is also important.

It might not be enough, it is definitely not a panacea, but if you really want to help Bitcoin succeed then it is the best effort to result ratio you can expect for now (and you will learn a lot in the process).

References

I didn’t invent anything here, so here are the people and articles that inspired me :

  • Epic twitter storm from Giacomo Zucco, who made a very strong case that if you are supporting Bcash, you’re really stupid.
  • Another epic tweetstorm, developing further why Bitcoin is less susceptible of embezzlement and/or counterparty risks than gold (as long as you run a f—- node !)
  • A shorter one about why if you’re arguing about “is Bitcoin more cash or gold”, you understand neither.
  • StopAndDecrypt wrote many articles about this kind of issue over the last year, mandatory reading.

2 réflexions sur « Making the strongest case for small blocks »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.