B++ Logo

Forks History

Bitcoin has undergone several protocol upgrades through both soft forks and hard forks. This document provides a table of all major forks in Bitcoin's history.

Understanding Forks

The fundamental difference between soft forks and hard forks comes down to one thing: are the consensus rules being tightened or loosened?

Soft ForkHard Fork
Consensus rulesTightened (more restrictive)Loosened (more permissive)
Old nodesAccept new blocks (still valid under old rules)Reject new blocks (invalid under old rules)
Backward compatibleYesNo
Chain split riskPossible if contentiousGuaranteed without full upgrade

Soft Fork

A soft fork tightens the consensus rules. Blocks valid under new rules are always valid under old rules, so old nodes continue to accept them.

Example: SegWit made certain transaction formats invalid that were previously valid. Old nodes still accept SegWit blocks because they don't violate the old (looser) rules.

Can soft forks cause chain splits? Yes, in certain scenarios:

  • UASF (User Activated Soft Fork): If nodes enforce rules that miners don't follow, the chain can split. The 2017 BIP 148 UASF threatened a split if miners didn't signal for SegWit.
  • Miner non-compliance: If significant mining power produces blocks violating new soft fork rules, upgraded nodes reject those blocks, potentially causing a split.
  • Contentious activation: When there's community disagreement about whether to activate.

Hard Fork

A hard fork loosens the consensus rules (or changes them incompatibly). Blocks valid under new rules may be invalid under old rules, so old nodes reject them.

Example: Bitcoin Cash increased the block size limit from 1 MB to 8 MB. Old nodes reject these larger blocks as invalid, guaranteeing a chain split.


Complete Fork History Table

DateBlock HeightTypeNameBIP(s)DescriptionStatus
2009-01-030-Genesis Block-Bitcoin network launchActive
2010-08-1574,638Hard ForkValue Overflow Incident-Fixed integer overflow bugResolved
2012-04-01173,805Soft ForkP2SH (Pay-to-Script-Hash)BIP 16Enabled complex scripts via script hashesActive
2013-03-11225,430AccidentalBerkeleyDB Fork-Database lock limit caused chain splitResolved
2013-03-12225,430Soft ForkStrict DER EncodingBIP 66Required strict DER signature encodingActive
2013-05-15250,000Soft ForkStrict MultisigBIP 65Required NULLDUMMY in multisigActive
2015-12-08388,381Soft ForkCLTV (CheckLockTimeVerify)BIP 65Enabled absolute time locksActive
2016-07-04419,328Soft ForkCSV (CheckSequenceVerify)BIP 112, BIP 68, BIP 113Enabled relative time locksActive
2017-08-01478,558Hard ForkBitcoin Cash-Increased block size to 8 MBSplit Chain
2017-08-24481,824Soft ForkSegregated Witness (SegWit)BIP 141, BIP 143, BIP 144, BIP 148Separated witness data, fixed malleabilityActive
2018-11-15556,766Hard ForkBitcoin SV-Bitcoin Cash fork, increased to 128 MB blocksSplit Chain
2021-11-14709,632Soft ForkTaprootBIP 341, BIP 342, BIP 340Schnorr signatures, improved privacyActive

Activation Mechanisms

Soft Fork Activation Methods

  1. BIP 9 (Version Bits)

    • Used for: CSV, SegWit, Taproot
    • Requires: 95% of blocks signal support
    • Grace period: 2016 blocks (~2 weeks)
    • Example: Taproot activated via BIP 9
  2. IsSuperMajority (Legacy)

    • Used for: P2SH, CLTV
    • Requires: 75% of last 1000 blocks
    • Example: P2SH activated via IsSuperMajority
  3. User-Activated Soft Fork (UASF)

    • Used for: SegWit (BIP 148)
    • Community-driven activation
    • Example: SegWit UASF movement

Hard Fork Activation

Hard forks typically require:

  • All nodes to upgrade simultaneously
  • Or acceptance of chain split
  • Coordination among miners and nodes

Fork Statistics

Soft Fork Adoption

ForkActivation DateCurrent UsageAdoption Rate
P2SH2012-04-01Multisig, complex scripts~15-20% of transactions
CLTV2015-12-08Time locks, escrow~1-2% of transactions
CSV2016-07-04Lightning NetworkCritical for LN
SegWit2017-08-24Most transactions~80% of transactions
Taproot2021-11-14Modern wallets~5-10% of transactions

Hard Fork Results

ForkOriginal ChainNew ChainCurrent Status
Bitcoin CashBitcoin (BTC)Bitcoin Cash (BCH)Both chains active
Bitcoin SVBitcoin Cash (BCH)Bitcoin SV (BSV)Both chains active

Timeline Visualization

2009 ──────────────────────────────────────────────────────────────
     │ Genesis Block
     │
2010 ──────────────────────────────────────────────────────────────
     │ Value Overflow Fix (Hard Fork)
     │
2012 ──────────────────────────────────────────────────────────────
     │ P2SH (Soft Fork)
     │
2013 ──────────────────────────────────────────────────────────────
     │ BerkeleyDB Fork (Accidental)
     │ Strict DER, Strict Multisig (Soft Forks)
     │
2015 ──────────────────────────────────────────────────────────────
     │ CLTV (Soft Fork)
     │
2016 ──────────────────────────────────────────────────────────────
     │ CSV (Soft Fork)
     │
2017 ──────────────────────────────────────────────────────────────
     │ Bitcoin Cash (Hard Fork) ──► BCH
     │ SegWit (Soft Fork)
     │
2018 ──────────────────────────────────────────────────────────────
     │ Bitcoin SV (Hard Fork) ──► BSV
     │
2021 ──────────────────────────────────────────────────────────────
     │ Taproot (Soft Fork)
     │
2024+ ──────────────────────────────────────────────────────────────
     │ Future upgrades...

Key Takeaways

  1. Soft Forks are Preferred: All major protocol upgrades since 2012 have been soft forks
  2. Backward Compatibility: Soft forks maintain backward compatibility with old nodes
  3. Chain Splits: Hard forks always create splits; soft forks can also split the chain if contentious (e.g., via UASF)
  4. Activation Methods: Different activation mechanisms (BIP 9, IsSuperMajority, UASF) with varying risks
  5. Gradual Adoption: New features take time to reach full adoption

Potential Future Soft Forks

  • Covenants: Restrict how coins can be spent
  • OP_CTV (CheckTemplateVerify): Transaction templates
  • SIGHASH_ANYPREVOUT: More flexible signature types
  • Ephemeral Anchors: Lightning Network improvements

For more details on script types and their evolution, see Script System.


References