BIP 91
A signaling coordination method during the SegWit activation phase of 2017's scaling debates.
BIP-91 is the miner-coordinated mechanism that activated SegWit in August 2017, defusing what was about to be a chain-splitting confrontation with BIP-148 (UASF).
The deadlock context: miners had been able to signal for SegWit since November 15, 2016, but it needed 95% of the blocks in a 2,016-block period under BIP-9. Support stayed far short of that. By the SegWit2x organizers' own count, only 30% of miners backed SegWit in May 2017. BIP-148's supporters were preparing to reject blocks that did not signal for SegWit from August 1, 2017, which could have split the chain.
BIP-91 was the compromise. Authored by James Hilliard and adopted by miners as part of the "SegWit2x" / New York Agreement effort, it let miners make SegWit signaling mandatory through a separate deployment with an 80% threshold of its own. It did not change SegWit's 95% threshold. How it worked:
- 80% threshold. BIP-91 locked in once 269 of 336 blocks (80%) signaled for it on a bit of its own, far below the 95% SegWit needed.
- Mandatory. Once BIP-91 was active, every block had to signal for SegWit, or nodes enforcing BIP-91 rejected it.
- Quick deployment. Signaling opened June 1, 2017. BIP-91 locked in on July 21 and went live at block 477,120 on July 23, 2017 (UTC). It stopped applying once SegWit itself locked in.
What this actually achieved:
- SegWit signaling before the deadline. BIP-91 went live about nine days before BIP-148's August 1 deadline. Every block from then until SegWit locked in signaled for it, which also met BIP-148's rule, so the split the UASF had threatened never came. SegWit locked in on August 9 and activated at block 481,824 on August 24, 2017.
- It made the two plans compatible. The SegWit2x miners kept their 80% trigger, and BIP-148's supporters saw SegWit signaling in place before August 1.
- The "SegWit2x" hard-fork half of the agreement was abandoned on November 8, 2017. Its organizers wrote that they had not built enough consensus for the 2MB block-size increase. The "2x" never happened.
BIP-91 is a small technical document with outsized historical importance. It's the bridge between a stalemate and a successful upgrade.
See The Block Size War for the standoff BIP-91 defused.
Key takeaways
- Soft-fork coordination tool for SegWit signaling
- Part of the 2017 New York Agreement
- Helped finalize SegWit activation despite controversy
Related chapters
Corrected
-
Was: The entry said BIP-91 lowered SegWit's activation threshold to 80%.
Now: BIP-91 was a separate deployment with its own 80% threshold, on bit 4. It made SegWit signaling mandatory, but SegWit's own 95% threshold never changed, and every block in the period before SegWit's lock-in signaled for it. Details
-
Was: The entry said SegWit activated about 10 days before BIP-148's August 1, 2017 deadline, and that BIP-91 locked in in mid-July and activated in August. It also described the miners holding out as a minority who had refused for over a year.
Now: BIP-91 locked in on July 21, 2017 and went live at block 477,120 on July 23, and every block from then until SegWit locked in signaled for it. SegWit itself locked in on August 9 and activated at block 481,824 on August 24. Signaling for SegWit had been open since November 2016, and the SegWit2x organizers put miner support at only 30% in May 2017. Details
Sources (11)
- BIP 91 - Reduced threshold Segwit MASF, by James Hilliard (its own deployment, segsignal: activates once 269 of 336 blocks, 80%, signal on bit 4 from June 1, 2017; while active, blocks that do not signal for SegWit on bit 1 are rejected, as a way to activate the existing BIP 9 SegWit deployment; ends when SegWit locks in)
- BIP 141 - Segregated Witness, deployment (BIP-9 bit 1, signaling from November 15, 2016)
- BIP 9 - Version bits (threshold 1,916 of 2,016 blocks, 95%; a change is locked in for one retarget period, then active)
- BIP 148 - mandatory SegWit activation (from August 1, 2017, blocks that do not signal for SegWit are rejected)
- Bitcoin Magazine - BIP91: The SegWit Activation Kludge That Should Keep Bitcoin Whole (Aaron van Wirdum, June 16, 2017): the SegWit2x team plans to implement BIP91, designed to prevent a coin split by making SegWit2x and BIP148 compatible; it keeps SegWit2x's 80% bit-4 trigger and, if done before August 1, works with BIP148
- mempool.space - block 476,784 (02:53 UTC, July 21, 2017), first block of BIP 91's locked-in period; 284 of the previous 336 blocks signaled bit 4
- mempool.space - block 477,120 (04:46 UTC, July 23, 2017), first block with BIP 91 active; it and every block after it up to SegWit's lock-in signal bit 1
- mempool.space - block 479,808 (12:36 UTC, August 9, 2017), first block of SegWit's locked-in period; all 2,016 blocks of the previous period signaled bit 1
- Bitcoin Core 31 - chainparams.cpp (mainnet SegwitHeight 481824)
- mempool.space - block 481,824, the first block under SegWit rules (mined 01:57 UTC, August 24, 2017)
- Mike Belshe - Segwit2x Final Steps (bitcoin-segwit2x list, November 8, 2017, archived): SegWit had 30% support among miners in May; the 2MB increase is called off for lack of sufficient consensus
Related terms (9)
Published . Revised . Two corrections logged for this page.
Edit this page on GitHub