I see talk about wanting to increase the block size and/or increase node processing requirements through an increase in memory units. However, it is important to consider what effects such changes will have on Cardano’s decentralisation.
How full the block is already seems to make quite a bit of difference to how long it takes to distribute that block. Mostly my block producer in Australia can distribute its blocks in under 1 second to the majority in USA/EU.
However, check out this block my BP just produced. It was full at 86.57kB in size, containing 64 transactions, and 66.17kB of scripts: https://cexplorer.io/block/c740f9ce8b25410ddb938ff8c42e12738c18b7fd040ae5224c53fb45f04b3ba0
These are the delays before each of my own relays included this block in their chains:
- Relay 1 (ARM on same LAN) → Delayed=0.263s
- Relay 2 (AMD on adjacent LAN) → Delayed=0.243s
- Relay 3 (ARM approx 5 Km away) → Delayed=0.288s
- Relay 4 (AMD Contabo vps in USA) → Delayed=2.682s
- Relay 5 (ARM Netcup vps in USA) → Delayed=1.523s
The average propagation delay by nodes pinging the data to pooltool was 1.67 seconds: Cardano PoolTool - The most comprehensive staking statistics for Cardano on the web.
As you can see, it is already too difficult for a BP using first world (Australian) fibre infrastructure to distribute its blocks from Australia in under 1 second to the rest of Cardano. My BP couldn’t do it with this block. Any increase in block size or processing requirements will likely make propagation delays worse.
The centralisation problem
Any delay that causes propagation to increase beyond just 1 second will result in those blocks getting involved in more “fork battles”. In fact just 1 second of delays will see your battle count triple from 5% of your blocks to 15%. These battles are settled by nodes preferring the block with the lowest VRF result. The more fights you have, the more you will lose, since you will lose half of these battles on average. If your block delays increase to 2 seconds then 25% of your blocks will get involved in “fork battles”.
The way to minimise “fork battles” is to warehouse your BP in an Amazon data centre in USA or EU because this will minimise your propagation delays with the majority. But such a solution is not geographic decentralisation, and hands a lot of power to Jeff Bezos because now he can manipulate network delays within his data centre to selectively control who sees what and when.
Granted, Australia is on the opposite side of the world to the majority, but surely this might also be a good thing for enhanced resiliency and decentralisation.
I have written a CPS about this problem where I propose a solution: