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.