Published on: 2016-02-08T02:44:32+00:00
The proposal aims to address the risks associated with hardforks in the Bitcoin blockchain. Hardforks are considered difficult and risky due to the need for support from miners and supermajority support from the Bitcoin economy. This level of support is not sufficient to safely introduce hardforks. Moreover, full nodes and Simplified Payment Verification (SPV) nodes following the original consensus rules may not be aware of a hardfork's deployment. This lack of awareness can lead users to unknowingly accept devalued legacy tokens and potentially revert back to the original chain if it grows faster than the new one.To mitigate these risks, the proposal suggests a change to the semantics of the sign bit in the "version" field of Bitcoin block headers. This change introduces an explicit "point of no return" in the blockchain. The mechanism involves using the sign bit in the nVersion field as the hardfork bit. Blocks with this header bit set to 1 would be considered invalid. For a planned hardfork, there must be one and only one flag block that serves as the "point of no return." This flag block is determined either by block height or as the first block with GetMedianTimePast() greater than a specified threshold.The construction of the flag block is crucial. Nodes adhering to the original consensus rules must reject it, while nodes following the new consensus rules must reject any block that is not a flag block when it should be. To avoid confusion and unexpected behavior, a flag block should indicate the deployment of only one hardfork. Additionally, a hardfork proposal must ensure that its flag block threshold does not clash with other ongoing hardfork proposals.When a flag block for an unknown hardfork is discovered on the network, full nodes and SPV nodes should alert their users and potentially cease accepting or sending transactions. The proposed mechanism is compatible with BIP9, which employs the version bits mechanism to gauge miner support for a hardfork proposal and determine the height or time threshold of the flag block.Once the flag block is generated, a miner can choose to support either the original rules or the new rules, but not both simultaneously. This mechanism aims to provide a clearer indication of hardfork deployments in the Bitcoin blockchain while reducing the associated risks.
Updated on: 2023-08-01T17:44:22.020333+00:00