BIP 9 (Soft Fork Activation)
Bitcoin improvement proposal (BIP) 9 established a standard framework for activating soft fork upgrades to the Bitcoin protocol. Other methods for activating soft forks, such as BIP 8 and Modern Soft Fork Activation have since branched off from the BIP 9 proposal with the aim of improving on BIP 9’s perceived downsides.
Since upgrade activation is a consensus process, BIP 9 mostly describes decisions and actions that should be taken by the community, rather than proposing changes to how Bitcoin itself works. BIP 9 lays out the following process for activating a soft fork.
First, the version field of Bitcoin blocks are repurposed as a signaling mechanism for support for upgrades. The version field is 4 bytes long, so it contains 32 bits. A single bit is chosen as the bit for this upgrade.
Second, the community must decide on a start time and duration for the signalling period. During this period, miners will signal their support for the upgrade by setting the chosen bit to 0 or 1 in any blocks they mine.
By examining the chosen bit of each block mined during the signalling period, we can calculate the percentage of miners who support the upgrade, weighted by hash rate. If, during the signalling period, 95% of blocks signal support for the upgrade, the upgrade will be considered “locked in”. At that point, the upgrade will be activated after a short period of time. This delay is meant to give other nodes and miners time to adopt the upgrade and prepare for any new features.
If the 95% threshold for miner support is not reached during the signalling period, the upgrade activation fails. Thus, BIP 9 puts most of the control over upgrade activation in the hands of miners. BIP 8 and other upgrade methods were created to give nodes more control over upgrade activation.