Hard and Soft forks

A hard or soft fork is a frequent occurrence in blockchain development. What are they, and how do they differ?

Soft fork

A soft fork is a fairly common event on a blockchain, as it happens each time the core software part that dictates the block specifications is updated. As it changes the ‘rules’ to which a block must adhere, there will be ‘old’ and ‘new’ blocks during the update. This situation will cease to exist once everyone (all nodes and/or miners) are fully upgraded. It is called ‘soft’ as it will not split the blockchain; everyone is considered willing to update (i.e. there is consensus on the proposed changes).

Blockchain Soft ForkBlockchain Soft Fork
Blockchain Soft Fork

A soft fork:

  • is backwards compatible (old version nodes can still process new version blocks, e.g. the new rules don’t break the old ones);
  • usually tightens rules (e.g. a smaller block size);
  • will – most likely – not split the blockchain.

Hard fork

A hard fork is ‘hard’ because it will split the chain into two. It occurs when either:

  • There’s a dichotomy (difference of opinion) among developers, miners and nodes, as they cannot agree on changes that have a great impact on the functioning of the blockchain. For example when miners want the block-size increased, and the developers refuse this.
  • A large, fundamental change to the system is to be implemented (with broad support), which changes the technical characteristics of how the blockchain network operates in a way that new blocks will be refused by old nodes, as they violate their ‘ruleset’ (e.g. a larger block size).

A hard fork:

  • is not backwards compatible (‘old version’ nodes will refuse the new version blocks);
  • usually loosens the rules (e.g. a larger block size);
  • will split the blockchain into two separate chains with a common history (up to the fork).
Blockchain Hard ForkBlockchain Hard Fork
Blockchain Hard Fork