What Are Hard Forks and Soft Forks?
When we using smartphones or laptops, the apps or software needed to be updated constantly, especially the payment applications, will be updated mainly for security or other functional reasons. If you don't update the app, it may no longer be used. So, here comes the problem, the updates of apps or software are pushed by the developer of the centralized institution or organizations. However, as for decentralized cryptocurrency, there are no hierarchy and central authority that can just push updates and change features as it pleases. As a result, implementing new features in blockchain networks could be different. The decision to upgrade to a new protocol requires the consensus of all users on the network, this unique process of updating or upgrading a blockchain is called a fork.
What Is a fork?
- Let' try to understand the word "fork", in the concept of blockchain, it means the phenomenon of when a blockchain splits in two. A blockchain can be described as a combination of a series of blocks, with data on it. They are connected through the use of secure cryptographic keys, forming a chain of blocks going back to the very first block. It is just like a path made of blocks that are linked together. The path is built of consensus that all blocks agree upon, any modifications to the system require a change of consensus on all blocks. This is impossible to achieve since the blocks are built by an immutable set of rules.
- However, with the development of cryptocurrency, people will have more requirements for crypto. Take Bitcoin, for example, some people begin to complain that the block capacity of Bitcoin was too small, and there was always congestion. So these people asked for Bitcoin to upgrade and expand. Some people felt that the features of Bitcoin were too simple, which will affect the development. Some people support the update, but some are not, instead of taking a different development direction. This disagreement on the development can be understood as a fork.
- Therefore, a fork is an event on the blockchain that copies the original software of the existing blockchain while adds new changes that previously did not exist on the first blockchain. Since both blockchains cannot coexist, the new blockchain takes a different direction to a new path, forming a fork-like diversion from the main blockchain. Now instead of one path, the network branches out to form two paths.
Hard Fork VS. Soft Fork
A fork has happened a lot in open-source projects before the appearance of Bitcoin. But hard fork and soft fork are the special features for blockchain. For the same purposes, hard fork and soft fork operate differently.
Allowed to do things that were previously forbidden
Prohibited things previously allowed
A lot more things can be done
Limited in what you can do
Image: Feature comparison between hard forks and soft forks.
What Is a Hard Fork?
- Hard forks are protocol changes that require all network nodes to upgrade their software to the latest version to keep taking part in the network, which are backward-incompatible software updates. The nodes in the new version of the blockchain no longer follow the rules of the old blockchain, only the new rules. The new blockchain permanently diverges from the old version of the blockchain. As a result, a hard fork creates two blockchains and each blockchain has its own protocol software. These two chains share the same history but will no longer meet again, and they will develop completely according to their own paths.
- When a hard fork is implemented, one case is that most users will join the new blockchain and continue to transact there. Hardly any participants will still follow the old protocol, and so the old chain will die out over time. However, another case is that when part of the users disagree on the update and they reject to join the new protocol, if the protocol is now updated, two blockchains will form from the previous blockchain, which means one cryptocurrency will separate into two.
- Examples of hard forks: One of the famous examples is that Bitcoin divided into two separate chains, the original one, Bitcoin (BTC), and a new one, Bitcoin Cash (BCH) in 2017. Things happened because Bitcoin Cash proponents wanted to increase the block size, while Bitcoin proponents opposed the change. Another hard fork example is Ethereum separate into ETH and ETC, it happened when there are bugs on the smart contract that Vitalik Buterin proposed the assumption of a hard fork to solve the problem. Finally divided a new chain, that is BCH. However, there are still some people who believe in the unchangeable feature of the blockchain to stay on the original chain of Ethereum Classic.
What Is a Soft fork?
- While a hard fork is backward-incompatible software updates, a soft fork is a change to the protocol that is backward-compatible. This means that the new rules do not exclude the rules that already existed in the old block. As a result, the old blockchain will continue to accept blocks from the newly updated blockchain protocol even though there are new features added in the rules by the new software.
- For example. The protocol's already existing the rules that a block must reach 10MB, and then it is attached to the blockchain. However, now the protocol is updated, and the blocks are supposed to be only 5MB until they are pinned to the blockchain. Since the older nodes can append blocks with a storage capacity of 10MB, they are now also able to append blocks with 5MB to the blockchain. Thus, both old and new nodes can append blocks to the blockchain. In conclusion, a block size decrease can be implemented by soft-forking which means you can just reject bigger ones if you want to only accept blocks below a certain size.
- A well-known example of a soft fork is the Segregated Witness(SegWit) soft fork that happened in 2015: This protocol upgrade aims to solve the scalability problem of blockchain. Because of the limitations of the block size, the Bitcoin blockchain can process around 7 transactions per second. The group of SegWit worked on trying to find a way to allow more transactions per block while keeping the maximum block size the same. To achieve this goal, they removing (segregating) the "witness" data(signature) from the list. This allows for more transactions to be stored in a single block, increasing the transaction throughput of the network. In this way, old nodes could still validate blocks and transactions. So SegWit is a soft fork from the original Bitcoin blockchain with no network-breaking change.