Mythbusting: "Bigger blocks means less full nodes"

5 1158
Avatar for Mr-Zwets
5 years ago (Last updated: 4 years ago)

Ceteris paribus

Everything else being equal, increased node cost means some people operating full nodes will cease to do so because it becomes too expensive for them .

This is pretty much the depth of analysis of the situation by the general crypto community.

Taking this to its logical conclusion means that the smallest possible blocks, which means lowest cost to run a node, will bring the most full nodes.

Arguments worth repeating

This logic is severely lacking nuance. The best explanation I've seen on why this is comes from Dr. Peter Rizun, Chief scientist at Bitcoin Unlimited. I'll use the relevant slides from his talk "Block Propagation and the Z-parameter" from June 2016 to explain his arguments on "bigger blocks mean less nodes". If you prefer to watch the full (35min long) talk you can find it here. The scope of his talk is intentionally broad, the part relevant for this topic starts at 18:40.

I think these arguments are worth repeating because they are somewhat buried in a older technical talk and deserve to be more in the forefront precisely because of many people in crypto still do not see the important nuances.

The model

Below is the standard supply and demand curve from economics. The upward slope of the supply curve can be explained by taking into account that adding extra bytes to a block increases its orphan risk, where the block loses a race condition and get rejected by the network. If adding a transaction costs more in orphan risk than it pays him in fee it is unprofitable to add it to his block.

Q* is the equilibrium, and what the blocksize will tend towards. The vertical red line Qmax represents the maximum blocksize allowed to be produced by the blocksize limit, this is essentially the network capacity .

The slide is called fallacy #2 but Peter Rizun explains there is an element of truth to it.

slide from presentation "Block Propagation and the Z-parameter"

Using the model above we see we can only get bigger blocks or an equilibrium more to the right if either the supply or demand for blockspace increases.

Increase in supply

Let's follow the flow of the talk and start by an increase in supply. This happens when the orphan risk is reduced, because of technological improvements in block propagation for example.

Most of the time people just assume that bigger blocks always means higher cost to run a node and that this in turn leads to less full nodes.

But in this case we see that nodes also got better at handling load and can propagate bigger blocks without having a higher cost. This is displayed as the network capacity which shifts to the right, by increasing the blocksize limit and keeping a margin between actual and maximum usage. We see that an increase in the supply of blockspace doesn't get rid of any nodes who were capable of keeping up previously.

Increase in demand

The second way to get bigger blocks is the increase in demand which would be more people adopting and using cryptocurrency.

As in the previous example the maximum blocksize gets increased to accommodate the extra traffic with a margin but this time only 80% can handle higher traffic/will still run nodes with the higher cost. The increase in demand would be because of an increase in users which means more people to run nodes, so it's not clear if this would mean more or less nodes in total! So in this case, with an increase in demand for blockspace, there are factors that both increase and decrease the nodecount.

More users, more nodes

People don't run nodes because the cost is low, they run them because they find them useful and care about the network. This means the more people the network is useful to the more full nodes. This might sound extremely obvious but some people seem think the only way to get more bitcoin nodes is to lower the cost of running one. Going back to the example of the beginning of "smallest possible blocks", we see that blocks this small not provide a useful network to anybody and would have almost no nodes.

What not to do

Of course this is not to say that protocol developers recklessly ignoring concerns can not lead to a rapid decline in the number of full nodes because of huge nodecosts.

The prime example of this is BSV, where this exact thing happened. A prominent business building on BSV, moneybutton, explained in an article that their node crashed because it couldn't handle the load of a the network during a mainnet stresstest. They explained their node ran out of memory and that their "new instance will cost thousands of dollars per month to operate". They state in the blogpost that it will become too expensive to run a node for them.

The huge nodecost is not because of the overall size of the chain which is still 77 GB smaller than BTCs at the time of writing. The nodecost is because of huge (200+ MB) blocks which causes nodes to crash and forces operators to upgrade to more expensive hardware. Here is an example of a 210MB block which crashed many BSV blockexplorers and required BitMEX to double the memory of their node.

Note

This article does not explore whether node count is a good measure of "decentralization". Some people (from the BTC camp) have argued that the number that matter is the percentage of network participants running a full node. Even others use node cost as a way to measure "decentralization".

Peter Rizun talks about one of the cornerstones of Bitcoin Unlimited in the presentation: the idea that there should not be a centrally planned limit on the maximum blocksize. He mentions his research paper "A Transaction Fee Market Exists Without a Block Size Limit", the argument on this front are totally separate from the "Does bigger blocks mean less full nodes?" question this article set out to answer.

In conclusion: the claim "Bigger blocks means less full nodes" is not looking at the full story. Bigger blocks only lead to less nodes if the change in size is because of more demand for blockspace and the effects are not offset by new users entering the ecosystem

3
$ 13.25
$ 5.00 from @molecular
$ 5.00 from @Ellie
$ 1.00 from @btcfork
+ 5
Avatar for Mr-Zwets
5 years ago (Last updated: 4 years ago)

Comments

great article, thank you!

$ 0.22
5 years ago

good reading

$ 0.00
5 years ago
$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago

Good article, 100 MYTHBUSTER's!

50ff14711181832bc929e8c852afc96aab5945b659de0cc2720e2e044e522097

Some feedback:

  • I would add an argument from examination of the node situation w.r.t. current situation between BTC and BCH based on empirical data. It shows a huge discrepancy to this myth.

As we know, right now, despite having a lower blocksize cap, average blocks on BTC are still quite a bit larger than on BCH. Roughly speaking, BCH is at about 10-20% of the average block size of BTC's blocks, which depending where you look (coin.dance or bitinfocharts) are around 800kb-1MB -- so almost saturated, if not saturated. But let's now look at the relative node numbers of the network. If the myth were true, BTC should have less nodes, right, because it has bigger blocks? Obviously that's not the case based on actual data easily obtained. Comparing only listening nodes, BTC has about 9400 , BCH has about 1500 now. This is from coin.dance data.

One could say this argument is inadmissible because those are different chains, different coins in effect. Ok, fair enough. But looking only at the evolution on BTC, history clearly shows that node count increased over the course of years as the utilitized capacity slowly reached its maximum. There was an increase of nodes, not a regression, even as the actual size of blocks increased. This is probably one of the strongest indicators that this myth is contradicted by actual evidence on Bitcoin BTC itself.

  • "People don't run nodes because the cost is low, they run them because they find them useful and care about the network." .. I think we must be a little careful at the ultra-low cost spectrum with this argument. If running a node would cost nearly nothing, many people would set them up just to tinker with it, and probably some would even forget that they have them set up and keep them running. I suppose that was why there used to be a lot of outdated nodes on the Bitcoin network years ago, whenever Bitcoin Core released an upgrade. The uptake of new releases wasn't very much. However, when there are actual running costs (as there are now, running a Bitcoin or Bitcoin Cash node is at least a few dollars per month in electricity and network costs, without counting hardware expenditure -- and in the $$/month range if running on a hosted VPS. Whether BTC or BCH, I don't think that the costs are prohibitive at all for most countries, whether as an individual or business. So at least the perceived if not measured value provided by running a node exceeds the cost for a significant number of network participants. We must also beware that high number of nodes does not imply that these all "care about the network". Sybil attacks happen. We were quite worried during the August 2017 Bitcoin Cash fork, as ~3000 new nodes suddenly appeared on the new Bitcoin Cash network, out of nowhere, with no-one claiming responsibility. Luckily these did not do anything malicious, but at the time it was far from clear. One could perhaps make a joke about how cracking the 1MB barrier immediately attracted the support of 3K more nodes, except they didn't hang around for long.

  • typo: "dept" -> "depth"

$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
5 years ago
$ 0.00
User's avatar btcfork
This user is who they claim to be.
We have manually verified this user via some other channel.
4 years ago