LearnBitcoin

Glossary

BIP 148 (UASF)

A user-activated soft fork pushing SegWit by rejecting blocks not signaling for SegWit after a deadline.

BIP-148 is the user-activated soft fork (UASF) proposal that set a hard deadline in the 2017 standoff over activating SegWit. It's one of the most important episodes in Bitcoin's governance history.

The setup: miners had been able to signal for SegWit under BIP-9 since November 15, 2016, but it needed 95% of the blocks in a 2,016-block period. In May and early June 2017, only about 30% of blocks signaled for it, and the deadlock lasted about eight months. Many miners wanted a block size increase as part of any deal, which the SegWit2x agreement of May 2017 offered. Some suspected another motive: a covert way of using the mining optimization AsicBoost, which Bitmain's chips supported, would mostly stop working under SegWit. Bitmain said it had not used AsicBoost on the main chain.

BIP-148's proposal, authored by Shaolinfry: starting August 1, 2017, BIP-148-compliant nodes would reject any block that didn't signal for SegWit. The BIP's stated hope was that miners would activate SegWit before that date. If they didn't, and most hash power stayed off BIP-148, the chain could split in two.

What actually happened:

  • Miners moved first. They adopted BIP-91, which locked in on July 21, 2017 (UTC). From block 477,120 on July 23, nodes running it rejected any block that did not signal for SegWit, and every block from then until SegWit locked in signaled.
  • BIP-148 was never put to the test. Its rule applied from August 1 until SegWit locked in on August 9, and every block in that time already signaled, so BIP-148 nodes had no main-chain block to reject. SegWit activated at block 481,824 on August 24, 2017.
  • The chain didn't split over BIP-148. Bitcoin Cash did split off on August 1, 2017, through a separate hard fork to bigger blocks, but Bitcoin itself remained one chain.

What it proved is disputed. Its supporters, its author among them, hold that nodes, not miners, have the final say on Bitcoin's rules: miners can refuse to signal, but they can't make nodes accept blocks those nodes reject. The SegWit2x organizers credited their own agreement instead, writing that it broke the deadlock.

See The Block Size War for the two-year fight behind it.

Key takeaways

  • From August 1, 2017, nodes running it would reject blocks that did not signal for SegWit
  • Miners made SegWit signaling mandatory first, through BIP-91, so its rule was already met when it took effect
  • Supporters see it as proof that nodes, not miners, have the final say on the rules

Corrected

  • Was: The entry said BIP-148 ended a multi-year SegWit activation deadlock that had persisted for over a year.

    Now: Miners could signal for SegWit from November 15, 2016, and BIP-91 made every block signal from July 23, 2017, so the deadlock lasted about eight months. In May and early June 2017, only about 30 percent of blocks signaled for SegWit. Details

Sources (14)

External references (3)

Related terms (9)

Published . Revised . One correction logged for this page.

Edit this page on GitHub