Saturday, July 6, 2024

voting – How does a miner put his vote for sure BIP?

See my reply right here to deal with a few of your misconceptions. TL;DR: miners sign help in blocks for sure rule adjustments with a view to coordinate activation, to not decide whether or not it’s accepted or not.

As for the precise mechanism used to sign, a quantity have been used prior to now:

Time primarily based: BIP16, BIP30

Early softforks (as much as mid 2012) used a easy time primarily based activation mechanism: node software program that implements these proposals enforced the brand new guidelines on all blocks with a timestamp after a sure date. Within the case of BIP16, this date was decided (and modified) in response to miner signalling, however this signalling was only for human interpretation; nodes took no computerized actions in response to it.

Particularly, the signalling used right here was to place a string with a help message within the coinbase transaction’s scriptSig area, which is in any other case free for miners to place something in.

Block-version signalling: BIP34, BIP65, BIP66

A later era of softforks used the block header’s nVersion area for signalling (as much as the yr 2015). Every of these used a subsequent model numbers (BIP34 used model 2; BIP66 used model 3; BIP65 used model 4).

At any time when 750 out blocks quantity N-1000..N-1 (so 75%) had the proposal’s model quantity or larger, block N can be topic to the proposal’s guidelines. At any time when 950 out of blocks quantity N-1000..N-1 (so 95%) did, the subsequent block can be required to additionally sign for it – leading to a ultimate lock-in.

Versionbits-based signalling: BIP68/112/113, BIP141/143/144, BIP91, BIP341/342

The rollout of relative locktimes (BIP68/112/113) and Segregated Witness (BIP141/143/144) used a special mechanism, which had its personal doc, BIP9. It specifies utilizing one particular little bit of the block header’s nVersion area for every proposal, and a finite state machine to find out when to sign and when to activate. Its function is/was to allow a number of concurrent proposals to activate, with no need to have one accomplished earlier than the subsequent one can roll out. This was a draw back of the earlier mechanism, as it will be unimaginable to activate the proposal with model 4 with out additionally signalling for activation of the proposal with model 3.

Because of numerous causes, segwit was not fully uncontroversial, and eventual activation occurred by a meta-proposal, BIP91. BIP91 itself used BIP9 to activate, which then on its flip made signalling for BIP141/143/144 obligatory, leading to its activation in August 2017.

BIP341/342 activated in November 2021, utilizing a modified versionbits-based activation mechanism with decrease activation threshold, and minimal activation peak, in what has been known as the “speedy trial” strategy.

Disclaimer: I’m a (co-)writer of a number of of the listed paperwork on this put up (BIP9, BIP30, BIP66, BIP141/143/144, BIP340/341/342).

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles