Blockchain/Level III · The network/3.3 Consensus and governance/Lesson 3
Soft forks and hard forks
The asymmetry of validity: why tightening rules is safe and loosening them splits the chain
MaterialsA block explorer with historical chain dataThe BIP repository on GitHub for reading proposal statuses
Wonder
- Why can a network adopt stricter rules without forcing every node to upgrade simultaneously?
- What specific structural change in August 2017 caused Bitcoin Cash to split from Bitcoin?
- How did a software bug in March 2013 create two competing chains that no one intended?
Explore
- A soft fork tightens consensus rules. Blocks and transactions valid under the new, stricter rules remain valid under the old, looser ones. This backward compatibility means un-upgraded nodes continue to accept the chain while upgraded nodes enforce the new constraints. As long as most hashing power enforces the new rules, the network stays on one chain; if it does not, even a soft fork can split it, as in July 2015.
- A hard fork loosens or alters rules such that structures previously invalid become valid. For example, increasing the block size limit makes larger blocks acceptable. If not all nodes upgrade to accept these new structures, the network partitions into two competing chains with incompatible histories. This split occurred on 1 August 2017 when Bitcoin Cash adopted a larger block size than Bitcoin.
- Soft forks require careful activation because miners enforcing the new rules must constitute a majority of hash power. If miners ignore the signal or enforce outdated rules, the chain risks splitting anyway. BIP9 (2015-2016) standardized activation by miner signaling: a soft fork locked in once 95% of the blocks in a 2,016-block period signaled readiness, after which, following one further period, upgraded nodes enforced it.
- The March 2013 accidental fork arose when a large block was accepted by version 0.8 but rejected by version 0.7 because of a database limit. The network split, and it was resolved not by the longer chain winning but by miners deliberately switching back to 0.7, so the 0.7-compatible branch overtook the other. It showed that unintended differences between versions can split the network, and that in an emergency the fix may be a coordinated human decision that overrides which branch had more work at that moment.
- Historical examples illustrate these mechanics. P2SH (Pay-to-Script-Hash) activated in 2012 as a soft fork, allowing complex scripts while maintaining compatibility with older nodes. SegWit (Segregated Witness) activated on 24 August 2017 at block 481,824, moving signature data out of the part of the transaction used to compute its ID, fixing malleability and increasing capacity. Taproot followed in November 2021 at block 709,632.
- Check the Bitcoin Cash split on two block explorers. Block 478,558 is the last block the two chains share. Look up block 478,559 on a Bitcoin explorer and on a Bitcoin Cash explorer: they are different blocks, and the Bitcoin Cash one is larger than 1 MB, which old Bitcoin rules forbade. From that height on, each chain treats the other’s blocks as invalid.
Key facts
- Soft forks tighten rules; new valid structures remain old-valid, ensuring backward compatibility.
- Hard forks loosen rules; new valid structures were old-invalid, risking network partition if not universally adopted.
- Bitcoin Cash forked from Bitcoin on 1 August 2017 due to a disagreement over block size limits.
- The March 2013 fork was an accidental split between Bitcoin-Qt/bitcoind versions 0.7 and 0.8, caused by an undocumented database limit in 0.7.
- SegWit activated as a soft fork on 24 August 2017 at block 481,824.
- BIP9 (2015-2016) let miners signal readiness for a soft fork; lock-in required 95% of blocks in a 2,016-block period.
Exercise nine, six, three, one
9CollectList 9 major consensus changes in Bitcoin history from 2009 to 2023. For each, note the year and whether it was a soft fork or hard fork.
6ClusterGroup these 9 changes into 6 categories based on their impact: capacity increases, security enhancements, feature additions, bug fixes, accidental forks, and failed proposals.
3DistillReduce these groups to 3 core reasons why a change would be implemented as a soft fork rather than a hard fork.
1CrystallizeWrite one sentence explaining the fundamental difference in validity sets between a soft fork and a hard fork.
Fact check
Dates, figures and claims checked against the published sources listed below.