LearnBitcoin

Glossary

Deployment Threshold (Soft Fork)

A required percentage of blocks signaling support for a soft fork before it locks in and activates (e.g., 95%).

The deployment threshold is the percentage of recent blocks that must signal support for a proposed soft fork before it activates. Under BIP 9 (versionbits), the standard threshold was 95% of blocks in a 2016-block retarget period setting a designated version bit.

This worked fine for technical upgrades the mining community was uniformly behind. It worked badly for upgrades miners had economic or political reasons to slow down.

The SegWit deployment (2016-2017) is the canonical case study. Signaling opened on November 15, 2016, but in May and early June 2017 only about 30% of blocks signaled for SegWit. Many miners wanted a block size increase as part of any deal. Some suspected a commercial motive as well: a covert way of using the mining optimization ASICBoost would mostly stop working under SegWit. Bitmain, whose chips supported ASICBoost, said it had not used it on the main chain. A 95% threshold lets a small minority of miners block an upgrade; in SegWit's case, most miners were not signaling.

The resolution came from two directions. BIP 148, a User-Activated Soft Fork (UASF), set a flag day: from August 1, 2017, its nodes would reject any block that did not signal for SegWit. BIP 91 did not lower SegWit's 95% threshold. It ran a separate deployment on bit 4 with its own 80% threshold (269 of 336 blocks), and once it was active, from block 477,120 on July 23, 2017, nodes running it rejected any block that did not signal for SegWit. From then until SegWit locked in, every block signaled for it. SegWit met its own 95% threshold with 2,016 of 2,016 blocks, locked in on August 9 and activated at block 481,824 on August 24, 2017. BIP 148's rule was already met by the time it took effect, so it was never tested against miners who refused to signal.

Lesson learned: pure miner-threshold activation makes upgrades hostage to mining politics. Taproot's activation used Speedy Trial: BIP 9 signaling at a 90 percent threshold over about three months, plus a minimum activation height so node operators had time to upgrade. It could still fail if miners did not signal, but the short window meant a failure would be quick rather than a deadlock that dragged on for a year.

The deployment threshold remains a coordination signal, and under Speedy Trial it still decided whether Taproot would activate. BIP-8, by contrast, can be set to end a deployment with mandatory signaling.

Key takeaways

  • Sets a block signaling target for soft-fork readiness
  • Ensures upgrades only activate with high miner support
  • Sometimes criticized for giving miners disproportionate influence

Corrected

  • Was: The entry said BIP 91 lowered SegWit's signaling threshold to 80% with a forced lock-in, that BIP 148 showed nodes could enforce SegWit rules even without miner signaling, and that ASICBoost was incompatible with SegWit.

    Now: BIP 91 ran its own 80% deployment on bit 4 and, once active from block 477,120 on July 23, 2017, rejected blocks that did not signal for SegWit. SegWit's 95% threshold never changed and was met by 2,016 of 2,016 blocks. BIP 148 required signaling from August 1 and was never tested. Only a covert form of ASICBoost conflicted with SegWit. Details

  • Was: The entry said Speedy Trial activates Taproot "either at threshold or at the height, whichever comes first".

    Now: The minimum activation height only set the earliest block where Taproot could take effect, to give nodes time to upgrade. Speedy Trial could still fail if miners did not reach 90 percent signaling within about three months. Details

Sources (12)

Related terms (9)

Published . Revised . Two corrections logged for this page.

Edit this page on GitHub