Multi-Stage Merge-Mine Headers Hard-Fork BIP [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2016-02-24T11:37:10+00:00


Summary:

A proposal for a hard fork has been made, suggesting a two-stage process with a single lock-in period to implement changes to the Bitcoin header format. The goal of this hard fork is to kill off the previous chain by artificially increasing the network difficulty on the original chain. The first stage of the hard fork is designed to make it difficult to mine the 2016 blocks needed to trigger a difficulty adjustment. This stage aims to make it clear to unupgraded clients that they need to upgrade. The second stage, called the headers change stage, makes the header format incompatible with merge mining. This stage is activated approximately 50,000 blocks after the Merge Mine Stage and at the start of the 2016 block difficulty boundary.There are serious issues with pooled mining, such as block withhold attacks, which can only be fixed by making major changes to the headers format. These desirable changes can only be made in a non-merge mine compatible way. If a way to permanently disable the original chain is not implemented, there is a high risk of there being two viable chains.To activate the fork, a block version flag will be used. This flag locks in both stages simultaneously when 3900 out of the previous 4032 blocks have the version flag set. The initial hard fork is implemented using a merge mine that requires the original pre-fork chain to be mined with a generation transaction that creates no new coins and does not contain any transactions. Additionally, a consensus rule requires manipulation of ntime on the original chain to artificially increase difficulty and hold back the original chain so that all non-upgraded clients can never catch up with current time. The artificial ntime is implemented as a consensus rule for blocks in the new chain.The proposal also mentions the possibility of an attack called the "nuclear option," which could potentially knock out the main chain. To prevent this, the median time past will increase very slowly, needing to increase by 1 every 6th block. This caps the update rate and gives an increase of 4X every doubling. The new headers will not meet the difficulty, so they will likely repeat the last header. If the bitcoin chain stays at a constant difficulty, each quadrupling will take more time. After 2 weeks, there will be a 4X difficulty increase (2 weeks per difficulty period), after 10 weeks, a 16X difficulty increase (8 weeks per difficulty period), and after 42 weeks, a 256X difficulty increase (32 weeks per difficulty period).It is important to note that the proposal is still in the draft stage, and a reference implementation has yet to be created.


Updated on: 2023-08-01T17:52:13.773992+00:00