Post
Topic
Board Development & Technical Discussion
Re: How is achieved consensus on code change?
by
DannyHamilton
on 01/02/2017, 16:23:10 UTC
So, to get an increase in block size in Core, you need:
  • A developer to code the change
  • Enough support from the developer community to convince Wladimir J. van der Laan to include it in a version
  • Enough miners to run that version

+ Enough nodes accepting the changed blocks

While preferred, it is not necessary to get a significant number of nodes to accept the changed blocks.  Once the forking change activates (which triggers based on hashpower and not on node counts) the new larger blocks will be created an broadcast.  The blockchain will fork, and users will get to choose (by choosing which version of the software they run) which fork they want to be on.

Lots of users on the old version and few users on the new just means that lots of users will be on a less secure, but more desired blockchain, and a few users will be on a much more secure, but much less desired, blockchain.

There would be a bit of chaos as the exchange rates adapted to the levels of security and demand.  Eventually, miners that spent a large amount of money mining on a low demand blockchain would find that they weren't profitable.  They'd start losing money and would either need to shut down their operation or switch to the blockchain that had higher demand (and therefore higher exchange rate).  Meanwhile, users that chose to use the less secure blockchain could discover their chain being subject to hashpower attacks such that transactions they thought confirmed suddenly become unconfirmed and disappear.  Loss of time, money, and other resources will drive them to the more secure network.  Eventually either the miners and users will settle on a single version or the whole concept of bitcoin will be abandoned as a failed experiment.