Skip to content
buybitcoinsmart

Glossary / Protocol & upgrades

User-activated soft fork

Also known as UASF.

Definition
A user-activated soft fork enforces a new rule on a flag day chosen by node operators, so miners who ignore it find their blocks rejected rather than merely outvoted.

Specified in BIP-148.

The idea inverts the usual order of operations. Instead of waiting for hash power to signal readiness, the nodes that receive payments announce a date after which they will refuse any block that does not comply. BIP-148 set that date at August 1, 2017, and the credible threat of it is widely credited with ending a signaling deadlock that had run since November 2016.

How it works

Validation, not mining, is where a rule is ultimately enforced, and a user-activated soft fork is built on that fact.

A node decides for itself which blocks are valid. If enough of the economy, the exchanges, payment processors, and custodians that people actually settle with, runs software rejecting non-compliant blocks, then a miner producing those blocks is paid in coins nobody will accept. The block reward is only worth anything if the chain it sits on is the chain buyers recognize, so the incentive points toward compliance without any vote taking place.

The mechanism is a date rather than a threshold. BIP-148 required that from August 1, 2017 every block must signal readiness for SegWit, and instructed nodes to orphan blocks that did not. That is a tightening, so a compliant chain remains valid to nodes that never upgraded. What it does not remove is the split risk: if most hash power keeps mining non-compliant blocks, the enforcing side has less accumulated work, and the two chains coexist until one side gives way.

BIP-8 later turned the approach into a general parameter set. It counts signals the way BIP-9 does, but adds lockinontimeout, usually written LOT. With LOT set to false the deployment simply expires if miners never reach the threshold. With LOT set to true it locks in at the timeout height regardless, which is a user-activated soft fork expressed as a configuration flag.

Where you see it

The 2017 sequence is the only completed example on bitcoin, and it is worth knowing in order. BIP-148 was published in March 2017 by a developer using the name Shaolin Fry and picked up by node operators through the spring. Facing an August deadline, miners adopted BIP-91 in July to make SegWit signaling compulsory among themselves. SegWit then locked in at block 479,808 on August 8, 2017 and became enforceable at block 481,824 on August 24, 2017. The flag day arrived without a lasting split because the outcome it demanded had already been secured.

The approach resurfaced before Taproot. Through late 2020 and early 2021 the argument was entirely about whether to ship BIP-8 with LOT true or false, an alternative client with LOT true was published, and the compromise was Speedy Trial, which set a short window and no forced activation. Miners reached the threshold in June 2021, so the question was never tested.

If you hold bitcoin, the relevant takeaway is that running your own node is what gives any of this weight. A user-activated soft fork counts the users who validate, and someone whose balance lives entirely on an exchange is represented by that exchange's software, not their own.

User-activated soft fork vs hard fork

A user-activated soft fork tightens the rules; a hard fork loosens them, and the confusion in 2017 came from the fact that both carried split risk. Under BIP-148 an old wallet kept working and the resulting chain stayed valid to every previous version of the software, which is exactly what a hard fork cannot promise. The split risk was temporary and depended on miner behavior, whereas a hard fork's split is designed in from the first incompatible block.

Not to be confused with

Frequently asked questions

Did BIP-148 split bitcoin on August 1, 2017?

No lasting split occurred. Miners adopted BIP-91 in July 2017 to make SegWit signaling compulsory among themselves, SegWit locked in on August 8, and the flag day passed with the outcome it demanded already secured.

Does running a node give me a say in a user-activated soft fork?

Yes, in the only sense that counts: your node decides which blocks you accept. Coins held on an exchange are represented by that exchange's software instead, which is why the debate is usually framed around economically significant nodes.

Related terms

More in Protocol & upgrades