Mining centralization pressure from non-uniform propagation speed



Summary:

Pieter Wuille, a Bitcoin Core developer, has created a simulator for Bitcoin mining which goes beyond the one Gavin Andresen used in his blog post. The main difference is support for links with different latency and bandwidth, because of the clustered configuration described below. It supports different block sizes, takes fees into account, does difficulty adjustments, and takes processing and mining delays into account. It also simulates longer periods of time, and averages the result of many simulations running in parallel until the variance on the result is low enough. The code is available on GitHub. The configuration used in the code right now simulates two groups of miners (one 80%=25%+25%+30%, one 20%=5%+5%+5%+5%), which are well-connected internally, but are only connected to each other through a slow 2 Mbit/s link. When fees become more important however, and half of a block's income is due to fees, the effect becomes even stronger (a 15% loss), and the optimal way to compete for small miners is to create larger blocks as well (smaller blocks for them result in even less income). The simulator is not perfect. It doesn't take into account that multiple blocks/relays can compete for the same bandwidth or that nodes cannot process multiple blocks at once. The numbers used may be unrealistic, and Wuille does not mean this as a prediction for real-world events. However, it does very clearly show the effects of larger blocks on centralization pressure of the system. Note that this also does not make any assumption of destructive behavior on the network - just simple profit maximization. Lastly, the code may be buggy; Wuille only did some small sanity tests with simple networks.


Updated on: 2023-05-19T20:40:10.945436+00:00