What is a fork in a blockchain?
A blockchain fork is a collectively agreed upon software update.
Bitcoin is created by participants in the community called miners. They verify transactions in new blocks and add these to the Bitcoin blockchain. Miners keep cryptocurrencies like Bitcoin in circulation by verifying and securing transactions on the blockchain. Each miner needs to run the same piece of software in order to access the same shared ledger.
But the community, which includes miners and developers may not always agree with one another on the direction of the blockchain. When one group is adamant about a particular software change but the rest of the group disagrees, they may decide to go their own way. When this happens, it is considered a fork. The chain duplicates and splits, and the two communities go their separate ways in implementing their design solutions.
Forks tend to have a political connotation because they usually concern alternative goals and intentions for the community.
Depending on the nature of decision, the fork can be categorised into Hard Forks and Soft Forks.
A hard fork is when the fork is incompatible with older versions of the software. The change is irreversible. This was what happened with Bitcoin and Bitcoin Cash, but there have been other forks, and there may be more in the future too. This is usually a radical change to a network’s protocol that makes previously invalid blocks and transactions valid, or vice-versa. In a hard fork, all nodes or users must upgrade to the latest version of the protocol software.
In other instances of forks, the community unanimously decides to make updates to the software. In these cases, the upgrade is backwards compatible and is considered a soft fork. Bitcoin’s SegWit update was a soft fork. When SegWit activated, a new class of addresses was created, but those using older addresses were not affected by the addition.
Anyone can fork a coin to create a new one as most of the projects are open source, but it is easier said than done due to the technical requirements of making changes to a blockchain software.