This piece will be fairly long. I will try to build up my arguments in a structured way.
What is the reason we value bitcoin?
Ultimately, bitcoin are just numbers in a special database (a blockchain). Why is it able to hold something we give value? I believe this is mainly due to these things:
- Bitcoin has a known quantity. Something that has an unlimited quantity is difficult to put a value on.
- It has known properties that are not prone to change.
- Bitcoin is easy to validate. Anyone can validate that a bitcoin is a bitcoin.
- There’s actual security, by proven open source cryptography.
But, why do we value it when it has no intrinsic value? I believe there’s not really anything that has intrinsic value, with possible exceptions for necessities like food, clothes and sex. Yes, even sex. It has been used as a currency much longer than most other things. But at some point, we decided it was easier to trade something when we made something represent the value of the things we wanted to trade. That way, I might buy clothes even if it was food I needed, because I know that I can sell the clothes to someone else to pay for food, and I might provide an extra service, like transporting it from where it is made, that will make it more worth to the buyer. We need a way to put value on this. This is where a currency comes in.
In the old days, a currency represented actual value, physical things that were scarse. Some places, it was gold, some places it was rare stones. For it to work as a currency, you’d need to be reasonably sure that it was gold you got, or the right kind of stone. It also needed to be scarce, because else you might not be able to have someone else accept it tomorrow – why would they if they could just easily go find or create their own?
For something that is bits on disk, it also needs to be secure, so that you know that you will have them also tomorrow, even if they are *physically* located at tens of thousands of nodes around the world.
Why small blocks?
Small blocks aid with the 3rd necessity, easy to validate. But why is that necessary? Why can’t we all trust that someone else validates it, surely as long as there is more than a couple, they will keep each other honest? We could, but from the outside, it looks much better the more eyes are watching. The true value? Bitcoin is self-auditing, and the more full nodes we have, the more independent auditors do we have. If auditors also validate each others, we don’t really have to trust anyone of them. The more auditors we have, the more difficult is it to gather enough of them to “fake the numbers” to others. And the beauty of it? Running a full node, you can validate it all for yourself.
If trust in this system disappears, i.e. if there’s no ordinary people left doing validation, ordinary people will start distrusting it, and feel powerless. And if it’s too much trouble to validate it yourself, you’ll simply use something else instead. Our whole system hinges on this perceived easiness of validating.
But what do we need to validate again? We need to validate that all the blocks follow the rules.
First rule: scarcity. The number of bitcoins is a known property. We need to validate that the (currently) only 12.5 BTC are issued.
Second rule: properties. We need to validate that noone change these properties without you knowing. These properties might for example be the conditions for how your bitcoins are spent. You want to make sure noone else can spend your bitcoin, and with bitcoin you can (with proper op-sec, of course).
How small is small enough?
I have come to the conclusion that a reasonable goal would be when a phone could run a pruned node without it being too much a burden. Others might think this is not enough, but in my opinion, it’s achievable within some years, by just not raising the blocksize. A pruned node is better than not running a full node -it does the same validation.
But where do you want transactions to go then?
Sidechains, second layers. There’s a ton of use cases that does *not* have the same requirement for trustlessness and security. It’s fine to make tradeoff for these. Bitcoin blockchain itself have to take the “maximum security, maximum trustlessness” route because it has to work as a basis for *all* transactions. Your coffee cup spendings are fine on transfer methods with tradeoffs.
A currency is not a good currency if you can’t trust it with transactions “in the million” as well as transactions for coffee cup spendings. But those two still does not have the same security/trustlessness requirements, so it’s fine to differentiate them. And bitcoin the currency is more than onchain – *everything* that transfer the value of bitcoin is part of bitcoin the currency. So yes – lightning network and sidechains are very much part of what we can call the ecosystem of bitcoin the currency. By fully utilizing these, we can keep trustlessness at a maximum onchain by keeping as many independent validators at possible.
Bitcoin can totally scale, but scaling onchain decreases the main valuable properties, so we want to avoid it as much as possible. By utilizing offchain/sidechains, we can still transfer bitcoins with different requirements, while keeping onchain properties intact.
2 thoughts on “Small blocks vs big blocks – is it just tribalism? My reasons for believing small blocks are better”
FYI, I wrote a paper analyzing the ability for bitcoin users to run a full node. I have an analysis that focuses on today’s users and today’s technology, as well as calculations for future bitcoin tech with future users (more people on phones). I’m curious to know your thoughts. Feel free to discuss in github issues: https://github.com/fresheneesz/bitcoinThroughputAnalysis
Awesome! You touch upon a lot of issues with a lot more formality than my blog post.
My first read-through didn’t really do it justice, I will have to read through it more thoroughly to be able to have meaningful input.