Miner Signalled Consensus Upgrade

Juraj Hlista

Consensus

  • agreement on the state of blockchain
  • set of rules used for validation of transactions and blocks
  • all nodes following the same rules → single blockchain

Forks

Accidental fork

  • miners find a new block at the same time
  • caused by network latency
  • no change in consensus rules

accidental-fork1.png

accidental-fork2.png

Soft fork

  • tightens or adds new consensus rules
  • backward compatible upgrade
    • old version of a node can still accept blocks from new node version
    • example: 1MB block → 0.5MB block
  • not all nodes required to switch to the new version to prevent splitting the network

Hard fork

  • loosens or eliminates the existing consensus rules
  • not backward compatible upgrade
    • old version of a node rejects blocks from new node version
    • example: 1MB block → 2MB block
  • all nodes required to upgrade to the new version to prevent splitting the network

Soft & hard fork activation

  • setting a block height in the future
    • User Activated Soft Fork
    • Planned Hard Fork (Minerva, Fortuna, Lima)
  • relying on miner signalling
    • Miner Activated Soft Fork
    • Miner Activated Hard Fork ≈ Miner Signalled Consensus Upgrade (Iris)

Miner signalled consensus upgrade

  • uses signal (part of block header)
  • majority of blocks in certain interval need to include a predefined signal to activate new consensus protocol
  • needs to be aware of accidental forks

miner-signalling1.png

miner-signalling2.png

Future improvements

  • multipe consensus proposal
    • signal not as a value, but as a bit mask
  • activation of soft forks

Testnet

  • fork parameters:
    • signalling interval: 1440 blocks (3 days)
    • majority: 734 blocks (51%)
  • network parameters:
    • 60% of minig power signal support for Iris
    • 40% of mining power stays with the current protocol (Lima)

Questions?