Forks are a common phenomenon in computing software and represent a technical term that escapes the understanding of many.
In order to have a clear understanding of forks, we have to look at Bitcoin and its technology, as its creation spearheaded the cryptocurrency ecosystem.
Bitcoin is a decentralized peer-to-peer payment network and currency. The underlying mechanism of Bitcoin is its software protocol, which constitutes a bunch of computing codes that serve as predefined rules for the network. One thing important to understand is that Bitcoin’s softwareis open sourced, whereby the underlying computing code is free and available for anyone to view, inspect and use.
What are Forks?
The blockchain – the technology underlying Bitcoin – is a distributed ledger made up of “blocks” of data that is continuously growing, forming a single chain of blocks (hence block-chain). Since Bitcoin is a decentralized network, participants in the network need to agree on a common set of rules to validate the transactions, in order to achieve consensus. This, therefore, results in a single chain of verified data that everyone agrees is correct, or a single truth.
A fork occurs when the single blockchain splits into two, either due to:
A Split in Consensus
As Bitcoin is a distributed and decentralized network, a fork occurs when miners discover a block at the same time, resulting in two split chains. However, this is a temporary fork as the chain that finds the next block first becomes the longest chain and automatically becomes unquestionable truth. Therefore, the shorter chain will be abandoned by the network.
A Change in the Underlying Rules of the Protocol
This represents a conscious change of the underlying codes by developers, and are permanent. The reason for changing the codebase can be due to:
Adding new features to enhance the network’s functionalities. Changing a core rule (such as increasing the block size).
Since the forks occurring in the first category (Split in Consensus) is temporary, the scope of focus (when someone talks about forks) should be in the second category, which is “A Change in the Underlying Rules of the Protocol”. The forks within this category are permanent and require participants within the network to upgrade their Bitcoin software, so as to integrate the new changes into their current software.
A change in the underlying rules of the protocol is generally classified into 3 broad categories which are as follows:
A soft fork is a software upgrade that is backwards compatible with older versions. This means that participants that did not upgrade to the new software will still be able to participate in validating and verifying transactions. It is much easier to implement a soft fork as only a majority of participants need to upgrade the software. All participants, whether they’ve updated or not will continue to recognize new blocks and maintain compatibility with the network. A point to take note, however, is that the functionality of a non-upgraded participant is affected.
An example of a soft fork is when the new rule states that the block size will be changed from the current 1MB (1,000KB) to 800KB. Non-upgraded participants will still continue to see that the incoming new transactions are valid. The issue is when non-upgraded miners try to mine new blocks, their blocks (and thus, efforts) will be rejected by the network. Hence, soft forks represent a gradual upgrading mechanism as those who have yet to upgrade their software is incentivized to do so, or risk having reduced functionalities.
Past Examples of Soft Forks – BIP 66: A soft fork on Bitcoin’s signature validation and P2SH: A soft fork that enabled multi-signature addresses in Bitcoin’s network.
Hard forks refer to a software upgrade that isn’t compatible with older versions. All participants must upgrade to the new software to continue participating and validating new transactions. Those who didn’t upgrade would be separated from the network and cannot validate the new transactions. This separation results in a permanent divergence of the blockchain. As long as there is support in the minority chain – in the form of participants mining in the chain – the two chains will concurrently exist.
Hard forks can either be planned or controversial.
Planned Hard Forks
A planned hard fork is a protocol upgrade that has already been stated on the project’s roadmap since the start. Since it is an upgrade to enhance the blockchain’s capabilities and features, the entire community – headed by the core developers – would transit to the new chain as the upgrade requires a change in the underlying codebase. This will result in the death of the old chain, as it doesn’t make sense for anyone to support it due to a lack of incentives. Therefore, this will not entail the creation of a new coin.
Examples of Planned Hard Forks
Ethereum’s Byzantium: The first phase of Ethereum’s 2-phase upgrading plan, Byzantium occurred in October 2017 and represents an upgrading of Ethereum’s blockchain base for better scalability and the integration of private transactions
Monero: In January 2017, Monero hard-forked to introduce an upgrade to its network by implementing a feature called Ring Confidential Transactions (RCT) to improve its privacy and security.
Contentious Hard Forks
A contentious hard fork is due to disagreements within the community which results in a portion of them creating a new chain (and in their perspective a better one) by introducing major changes to the code, just like the creation of Bitcoin Cash.
Examples of Contentious Hard Forks
Bitcoin Cash: Bitcoin cash is a hard fork orchestrated by a portion of the community that wanted Bitcoin to scale better through increasing its block size from the current 1MB to 8MB. This is to allow for more transactions to be processed, thereby reducing fees that users’ pay and minimizing the bottleneck of Bitcoin’s network as usage increased. The hard fork resulted in the creation of a new currency called Bitcoin Cash.
Ethereum Classic: Ethereum had a hard fork to reverse the effects of a hack that occurred in one of their applications (called the Decentralised Autonomous Organization or simply, DAO). However, a minority portion of the community was philosophically opposed to changing the blockchain at any costs, to preserve its nature of immutability. As Ethereum’s core developers and the majority of its community went ahead with the hard fork, the minority that stayed behind and didn’t upgrade their software continued to mine what is now known as Ethereum Classic (ETC). It’s important to note that since the majority transited to the new chain, they still retained the original ETH symbol, while the minority supporting the old chain were given the term Ethereum Classic or ETC.
Since Bitcoin’s protocol is open source, anyone can view the code base and make changes to it in the pursuit of creating a new coin with new features. For instance, Litecoin was a fork of Bitcoin, created from changing the codebase of Bitcoin. The features of Litecoin include changes such as:
Average of 2.5 minutes block time as compared to Bitcoin’s 10 minutes
Different consensus algorithm: Scrypt instead of Bitcoin’s SHA 256
Fixed coin supply of 84 million instead of Bitcoin’s 21 million
Examples Coins That are Variants of Bitcoins (Derivatives of Bitcoin Code)
Did You Just Say “Free Coin”?
You read that right! Hard forks are embraced by the community because of the ‘issuance’ of ‘free’ coins. The duplication of the chain due to the hard fork entitles holders of the old chain to receive new coins from the new chain. There are several methods of obtaining these forked coins which include (but aren’t limited to)
Receiving them via airdrops
Pointing one’s respective node toward the new forked network
Distributing the private keys to the new network
Overall, hard forks are an inevitable aspect of cryptocurrency at this point. Some of them are legitimate, while some have been outright scams. However, we must respect the right of the community to develop such projects if we are to stay in-line with the principles of decentralization and open-source code, which is how Satoshi released the Bitcoin code. Ultimately, if one understands the principle of contentious hard forks, they should realize that it is really the community’s responsibility to audit itself – which means that this is perhaps the vision that Satoshi ultimately had when he was building Bitcoin and eventually disappeared.
There are plenty of misinformation and misconceptions that have been spread about hard forks, their nature, implementation, and acquisition by coin holders. This has created a great deal of ire and cynicism within the larger community toward such projects. However, it is important to remember that some projects are legitimate and, in some cases, even enhance the original software that was released by the developers.
With all the controversies surrounding hard forks, there are definitely benefits of forks towards the cryptocommunity. Forks the community’s way of ensuring that they’ll always have a voice; investors and miners have recourse in the instance that they come to a disagreement with the coin’s development team. While there will always be individuals in the community and supporters of the legacy chain that despise any and all hard forks and take the move to be a form of ‘betrayal’, we must all remember that we are essentially ‘knock offs’ of the original idea posited by Satoshi in his Bitcoin creation. And even in that instance, Satoshi owes many of his ideas, including Proof of Work, to the innovations of prior developers that had explored the creation of an online, digital currency.