First, let’s compare a fork with a real-life analogy. Think of a fork as a decision that has two possible outcomes. If you want to get married, for example, maybe you’ll get married and perhaps you won’t. With that decision, you’ve created two paths for yourself – you can walk one path or the other. These decisions are called forks in our lives because they produce a divergence in our path.
A fork refers to a divergence in the blockchain, resulting in two diverging blockchains or one new chain. For example, chain A has increased block size limits, and chain B has decreased block size limits, resulting in two potential ways for the blockchain to continue—creating two future scenarios.
Why do forks occur?
Forks can occur for many reasons, be it technical changes, cultural differences, or differences in developers’ values. However, generally, we can identify three main causes of forks:
- The need for better functionality (like in the case of Bitcoin and Bitcoin Cash fork)
- Community disagreement on proposed protocol changes (for example, Ethereum and Ethereum Classic fork)
- Security risks, mitigation of damage caused by hacks or bugs, the reverse of transactions (Ethereum Classic fork)
Initially, forking was a GitHub term and referred to software upgrades and changes. The rule of thumb is that hard forks loosen the rules and soft forks tighten the rules. It might sound counterintuitive, but hard forks offer a broader range of options for miners. Continue reading to understand why.
A soft fork can happen only when the majority of the miners agree in advance to this soft fork. The intended changes to the protocol will be made and the participants will continue living under a new set of rules. A soft fork doesn’t cause a split in the chain because all the miners migrate to the upgraded version anyway. It’s a backward compatible change, so the old chain continues accepting blocks from the updated protocol despite a change in rules. Usually, soft forks are used to add new functions or features at the programming level without changing a blockchain’s rules.
A good example of a soft fork is the Segregated Witness (SegWit) Bitcoin protocol update of 2015. The same SegWit2x protocol update later caused a hard fork.
In a perfect world, a soft fork would allow a network to stay completely intact while continuously adding new features. However, this may not always be possible and that’s why hard forks happen.
We can compare soft forks to basic OS updates on a computer or mobile. After installing an update on your phone, all the applications continue working with this new version, while a hard fork can be compared to a migration to a new operating system (for example, changing your device to Android from iOS).
What is a hard fork?
Unlike the soft fork, a hard fork requires action from network participants. It can be updating or changing some numbers in their software, migrating to a new blockchain, or other internal steps. In short, a network participant must make changes to continue contributing to the network. An excellent example of a hard fork is Ethereum Classic.
A hard fork is a permanent divergence from the previous blockchain architecture and the newest version will no longer accept nodes running previous versions. In short, a hard fork is not backward compatible and it doesn’t allow miners from the old network to accept blocks from the new network. This essentially creates a fork in the blockchain: one path follows the new chain, and the other – continues along the old path. So in a hard fork blockchain diverges into different chains that operate by a different set of rules from the original chain. A hard fork requires network participants to choose between one chain or the other – much like in the Bitcoin and Bitcoin Cash scenario.
It’s important to note that a hard fork does not have to result in a split. A split occurs only if there are network participants who are unhappy with certain things in the network. For example, in the case of Bitcoin Cash, if everyone was unhappy with the block size and would move to Bitcoin Cash, it would just be called Bitcoin with a block size of 8 MB instead of 1 MB and we would continue having one chain instead of two. The only reason we see a fork is that some people decide to stick with the old version of the blockchain.
In a hard fork, the data on the new chain is a duplicate of the old chain, meaning that if you owned one Bitcoin before the hard fork occurred, you now own one unit of currency on the old chain and one unit of currency on the new chain.
Examples of hard forks in blockchain networks
The notion of a hard fork seems to be a point of anxiety for some people. In fact, it’s one of the most common questions we hear when talking about Ethereum 2.0. However, hard forks are not disastrous. They are one of the consequences of having a decentralized network, where participants decide the future of the network for themselves and if someone is unhappy with the current network, they can just split off and create their own network with their own rules. There is no central authority to say no or to control this. Some of these forks may die off in the future, some will continue growing. It all depends on the network participants and miners.
In July 2016 a hacker attack on the DAO caused an Ethereum hard fork that resulted in the creation of Ethereum Classic. Ethereum wanted to revert the transactions in that attack and those miners who agreed to revert continued with Ethereum, but those who disagreed pivoted to Ethereum Classic. The divide happened because the proponents of Ethereum Classic argued that the Ethereum hard fork was a human manipulation of the blockchain by deleting records of the hack, which typically goes against the ethos of the industry. In the meantime, they believe that the value of blockchain is in its immutability and inalterability, so manipulating and altering the blockchain undermines its entire purpose. Ethereum Classic proponents even compare ETH hard fork to the global financial system, where records can be manipulated and altered.
Bitcoin hard forks
The bitcoin community has struggled for years to find a solution for the cryptocurrency’s scaling issues. One way Bitcoin developers have sought to address these problems is through hard forks. These hard forks have been controversial because they create two competing versions of Bitcoin. In some cases, this has led to a split in the blockchain, with one version receiving a majority of the hash power and continuing on as the main chain while another version slowly dies out. In other cases, they have been rejected by users of the network and become completely defunct. Let’s take a look at some of them.
One of the first notable hard forks of Bitcoin, Bitcoin XT, was introduced in late 2014 as an open-source software platform with the purpose of increasing the number of transactions that can be processed per second. Software developer Mike Hearn led the project. Though the original version of Bitcoin could process up to seven transactions per second, Bitcoin XT aimed to increase this number to 24 transactions per second using an increased block size of eight megabytes. While the project was initially successful and received considerable attention, it lost user interest and is no longer available. The project’s original website is defunct.
Bitcoin Cash is still Bitcoin, but the block size is 8 MB instead of 1 MB, meaning that there can be more transactions per block. As a result, this block size dramatically increases the number of transactions per second. Moreover, it doesn’t have a replace-by-fee feature, so you don’t need to pay a fee to make your transaction confirm faster. Bitcoin Cash happened in August 2017 because a group of miners was unhappy with the scaling proposal Segwit2x.
This hard fork was caused by a lot of people who were unhappy with ASIC mining and wanted to go back to GPU mining. As a result, at block number 491407, they changed their software and made it ASIC-resistant, similar to Ethereum hashing, so ASIC miners could no longer mine and went to Bitcoin Gold in October 2017.
Why Ethereum 2.0 won’t result in a hard fork?
From what we’ve discussed above, we can now clearly see that Ethereum 2.0 is not a hard fork because it’s not a separate blockchain or a new fork. ETH 1.0 will become part of the 2.0 chain. Yes, Eth 2.0 will use proof-of-stake instead of proof-of-work and will be structurally different in its sharded scalable architecture. However, ETH 2.0 is an evolution, not a revolution of the current Ethereum infrastructure.
ETH 2.0 is not a hard fork because:
- Although they are implementing it as a separate chain, they will migrate ETH 1.0 contracts and accounts to one of the 64 shard chains on ETH 2.0. As a result, the entire data history will be kept unchanged.
- ETH is the native token of the Ethereum blockchain, and it will remain as a native asset on ETH 2.0.
- ETH 2.0 is a planned, non-contentious protocol upgrade and not a contentious hard fork (unlike Ethereum Classic). The “fork” terminology in the Ethereum 2.0 specs is used more for public messaging than anything else.
- When the upgrade is complete, there will be no fork because the network will not end up with multiple competing chains.
Why does ETH need this upgrade?
The answer is simple. ETH is not a peer-to-peer digital currency like Bitcoin. ETH powers smart contracts and enables the creation and running of decentralized apps. It is a decentralized smart contract platform. When Vitalik Buterin created the Ethereum blockchain, he never expected this amount of traffic so soon, nor did he account for scalability or security issues. This has led to ridiculously high gas fees and slow transaction speeds.
To address speed, fees, and scalability issues, ETH 2.0 will use proof-of-stake consensus instead of proof-of-work – allowing for the elimination of mining, resulting in reduced energy consumption and costs.
If you are holding ETH, you don’t need to take any action to transfer your ETH from 1.0 to 2.0 because ETH 1.0 will merge with the 2.0 chain, and you will continue holding the same amount of ETH as before, but on a more secure and scalable chain.
Can ETH 2.0 result in a hard fork?
Theoretically, it can. In the unlikely case of an implementation or governance failure, it can become a hard fork, but only retrospectively.
Technically, a hard fork means that a blockchain creates an entirely new protocol with its own set of rules. Hard forks are split into two separate chains that can lead to an irreversible split in the community – creating two different versions of the blockchain. The Ethereum community has witnessed multiple hard forks —Frontier Thawing, Homestead, DAO Fork, Tangerine Whistle, Spurious Dragon, Byzantium, Constantinople, Istanbul, and Muir Glacier.
While Ethereum 2.0 is a major upgrade to the network, it’s not a hard fork. It is a long-awaited update to the protocol of the network that intends to solve problems like scalability and security with a shift from proof-of-work (PoW) mining to proof-of-stake (PoS) consensus mechanisms.