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).
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).