What Are Forks, Hard Forks, Soft Forks?
It is important to understand that forks is a technical term usually used in the computer software. To get a clear vision about forks we have to look at the Bitcoin technology because it’s the base of the cryptocurrency world.
Bitcoin is a decentralized innovative payment system and a cryptocurrency. The main mechanism of Bitcoin is its software protocol which consists of computing codes. They predetermine the rules for the network. It is important to realize that Bitcoin software is open, and all basic computing codes are free and available for everyone.
The blockchain technology is the basis of Bitcoin. It’s an original distributed ledger, which consist of blocks of data. This data permanently increases and forms a single chain of blocks — blockchain. Whereas Bitcoin is a decentralized network, all its participants must agree on common rules to verify transactions. Thus, a chain is formed from the agreed verified data that is recognized as the only truth.
But sometimes this chain breaks up into two parts — and then a fork appears. Why does it happen?
The first reason is the split in consensus
We have already figured out that Bitcoin is a decentralized network. But when miners simultaneously find the same block, two separated chains appear. But this fork is temporary. As soon as one of two chains finds the next block, it becomes the longest chain and is automatically recognized as the truth. Accordingly, the short chain remains abandoned.
The second reason is the change in basic rules of the protocol
In this case, the developers meaningly change the base codes which are permanent.
This happens due to the following reasons:
- as a result of adding new features to expand the network capabilities
- after changes in a basic rule (for example, the block size increases).
Since the forks, appeared after the split in consensus, are temporary, it is necessary to focus on the second reason - the change in the basic rules of the protocol. The forks here are permanent and require participants of the network to update the Bitcoin software to make changes.
Basically, there are two types of forks:
Soft forks is a software renovation, which is compatible with older versions. It means that participants who didn’t upgrade to the new software will still be able to check the transactions. It is much easier to accomplish a soft fork, because the majority of miners only needs to renovate the software. In addition, all of them will continue to discover new blocks and maintain compatibility with the network. It is important to note that the functionality of the participants who did not update the software would be significantly reduced.
For instance, the size of a block will be changed from 1 MB (1000 KB) to 800 KB. Non-upgraded miners will still be allowed to see that incoming new transactions are valid. But they will be unable to discover new blocks. Thus, a soft fork renovation encourages its participants to update the software.
Among the most successful Bitcoin soft forks are the BIP 66 (changed rules for verifying signatures) and the P2SH (changed the format of addresses in the system).
Hard fork is a software upgrade, which is incompatible with older versions. In this regard, all miners must switch over to the new software to check new transactions. Those who ignored this request will be barred from the network. As long as the chain is supported by a minimum number of miners, it will exist.
Hard forks can either be planned or unpredictable.
A planned hard fork is a protocol update, which has already been indicated in the project's roadmap from the very beginning. As this update is created to enhance capabilities and functions of the blockchain, all participants, headed by the developers, will pass into a new chain, then it is necessary to change the base code. After that, the old chain disappears as there is no reason to support it. And this will not entail a new coin creation. For example, Byzantium, the fifth Ethereum hard fork implemented in October 2017 to update the system.
Unpredictable hard forks are results of disagreements among members. Some of them create a new chain - an advanced one, in their opinion. They make major changes to the code. This is how Bitcoin Cash or Ethereum Classic (ETC) were created.
Finally, there are so-called spin-off coins. Since the Bitcoin protocol is an open source code, anyone can view its database and change it to create a new coin with new features. This is how Litecoin was created when the Bitcoin’s codebase was changed. There are some other examples of altcoins: Namecoin, Peercoin, Dogecoin, and Auroracoin.
Forks are the subject of active discussions among participants of the crypto community. Some of them believe that this is a necessary measure, while others argue they can harm the cryptocurrency sphere and make it less stable. Either way, forks have always been an inevitable process and an integral part of the development of cryptocurrencies and the blockchain technology.