Home › Glossary › Soft fork

Soft fork

Also called: softfork, soft-fork, backward-compatible upgrade, soft fork activation.

A soft fork is a backward-compatible change to Bitcoin's consensus rules that only tightens them, so old nodes still accept the new blocks.

A soft fork is a change to Bitcoin's consensus rules that makes them stricter: some blocks or transactions that used to be valid become invalid, but nothing that was invalid becomes valid. Because new blocks still follow the old rules, nodes that haven't upgraded keep accepting them and stay on the same chain.

How a soft fork works

Soft forks that add features give new meaning to something old software doesn't check. P2SH (BIP 16) made nodes also run the script an output commits to, SegWit (BIP 141) and Taproot (BIP 341) use output types that old nodes treat as spendable by anyone, and OP_CHECKLOCKTIMEVERIFY (BIP 65) redefined the do-nothing opcode OP_NOP2. Upgraded nodes enforce the extra conditions; old nodes simply don't look.

Once most hash power enforces the new rules, blocks that break them are orphaned and the chain stays single. Coordinating that moment is the job of activation mechanisms: flag days (BIP 16), miner signaling with version bits (BIP 9, BIP 8), and user-activated soft forks (BIP 148).

Soft forks deployed on Bitcoin

Upgrade BIPs Activated
P2SH 16 April 2012
Height in coinbase 34 Block 227,931
Strict DER signatures 66 Block 363,725
CHECKLOCKTIMEVERIFY 65 Block 388,381
Relative timelocks (CSV) 68, 112, 113 Block 419,328
SegWit 141, 143, 147 Block 481,824
Taproot 340, 341, 342 Block 709,632

BIP 99 sets out the vocabulary of soft and hard forks. For the full history and how activation debates played out, read the soft forks guide.

BIPs that define Soft fork

  • BIP 99: Motivation and deployment of consensus rule changes ([soft/hard]forks): Closed. Lays out a classification of the different ways Bitcoin's core rules can be changed, such as soft forks and hard forks, and explains the reasons behind each. It also recommends how each type should…
  • BIP 9: Version bits with timeout and delay: Deployed. Lets miners signal readiness for several soft forks (backward-compatible rule upgrades) at once by setting individual bits in each block's version number. An upgrade locks in once enough blocks…
  • BIP 8: Version bits with lock-in by height: Complete. An alternative way to activate soft forks (backward-compatible rule upgrades) that measures time in block counts rather than clock timestamps. It also adds an option to guarantee activation at the…
  • BIP 16 (P2SH): Pay to Script Hash: Deployed. Introduced Pay to Script Hash (P2SH), letting a sender pay to a short fingerprint of spending rules that the recipient reveals only when spending. This shifted the cost and complexity of setups like…
  • BIP 65: OP_CHECKLOCKTIMEVERIFY: Deployed. Adds OP_CHECKLOCKTIMEVERIFY, a script command that keeps coins unspendable until a chosen date or block height. It enables time-locked savings, escrow with deadlines, and payment channels such as…
  • BIP 141 (SegWit): Segregated Witness (Consensus layer): Deployed. Defines Segregated Witness (SegWit), which moves signatures into a separate "witness" section of each transaction while remaining compatible with older nodes. This fixed transaction malleability,…
  • BIP 341: Taproot: SegWit version 1 spending rules: Deployed. Taproot introduces a new kind of Bitcoin output that can be spent either with a single signature or by revealing just one of many possible alternative spending conditions, kept hidden in a tree…

Related terms

  • Hard fork: A hard fork is a change to Bitcoin's consensus rules that makes previously invalid blocks valid, so nodes that don't upgrade split off the chain.
  • Consensus rules: Consensus rules are the checks every full node applies to decide whether a block or transaction is valid; a block that breaks one is rejected.
  • Version bits: Version bits (BIP 9) let miners signal readiness for soft forks by setting bits in the block version field, with each upgrade on its own bit.
  • User-activated soft fork (UASF): A user-activated soft fork (UASF) is a soft fork that full nodes enforce from a set date or height, rather than waiting for miners to signal support.

Learn more

Guides