Software development has used the term “forks” for a very long time as a way to describe a change in protocol, and since blockchain technology is based on software code it shouldn’t be surprising to know that this technical term is used in connection with Bitcoin and other cryptocurrencies.
Because forks are fairly common we should understand what they are and why they occur, and the logical place to begin with our study of forks is with Bitcoin, since it was Bitcoin that started the cryptocurrency revolution.
Bitcoin Basics
Bitcoin was the first decentralized, open source, peer-to-peer blockchain and currency. To understand Bitcoin you first have to know that the underlying building blocks of Bitcoin are its software protocol. It’s this software protocol that defines the rules that the network uses for everything from transactions to mining. The open-source nature of Bitcoin is very important too, because it allows anyone to view, inspect and use the code.
What are Forks?
Bitcoin is called a blockchain because its distributed ledger is created with “blocks” of data. Those blocks are continually created (every 10 minutes) and as each one is added to the next it creates a chain of blocks, hence the name blockchain. Because Bitcoin is decentralized, all the participants of the network need to agree on a set of rules that will be used to reach consensus regarding the validity of transactions. With all those things in place we get a chain of verified data that everyone in the network agrees is true and valid.
A fork is when there is a split in the blockchain that results in two separate blockchains. There are two basic reasons for a fork to occur:
- A split in consensus on the network. In some instances miners on the Bitcoin blockchain will discover a block at the same time. This results in a split of the blockchain into two chains. This type of fork is just temporary though since the chain that finds the next block immediately becomes the longer and valid chain. The shorter chain is abandoned and the network moves on with a single blockchain.
- A change in the rules of the software protocol. This is a permanent change that comes about when the developers make a change to the software protocol, or code. There are three primary reasons for changing the codebase of Bitcoin or other cryptocurrencies:
- To mend a security hole that exists in the current software version. Because cryptocurrencies are quite new, they haven’t gone through all the stages of development that traditional currencies have been through in their many years of life. People don’t often think of it, but the dollar we know today has gone through many changes over the years, many of which were specifically done to make it more difficult to counterfeit a bill. Cryptocurrencies have their own unique security risks and methods of counterfeiting, and it will take some time to find and fix them all.
- To add new functionality. Software changes to add functionality are nothing new. The fact that we have various versions of applications, such as Windows 10, shows that software needs changes to improve and become more useful. Blockchain code is updated in the same way other software applications are updated, and since it’s open source anyone can work on making improvements and suggest them at any time. If the community decides the changes will make an improvement to Bitcoin they are implemented in the next version.
- To reverse transactions. In some cases hackers are able to create fake units of cryptocurrency. If this is a small hack it might be passed over, but if it’s large and includes a huge amount of money it’s possible to reverse the transaction. This is done by the community acknowledging the security breach and agreeing to roll back the code so that all the transactions from a certain time onward cease to exist. Well, they don’t really cease to exist, they are still on the invalid copy of the blockchain. But no one acccepts them as valid any longer, so they might as well cease existing.
Because the forks caused by a split in consensus are temporary, the focus when discussing Bitcoin forks is typically the “change in the rules of the software protocol” variety. These forks are permanent and require all users of the Bitcoin network to upgrade to the newest version of the software so that their copy of the software works properly.
Image credits: Shutterstock.
When there is a change in the rules of the software protocol it can be classified into three broad categories as follows:
Soft Forks
Soft forks are the least intrusive changes as they remain backwards compatible with older versions of the software. This means that users who don’t upgrade to the newest version of the software are still able to use the network, and can participate in the verification and validation of transactions.
Soft forks are far easier to implement since they only require a majority of users to upgrade to the newest version of the software. All other participants that haven’t upgraded will retain compatibility with the network and will still recognize new blocks when they’re created.
A point to note is that users who don’t upgrade are likely to find that the functionality of their older software may be affected.
One example of a soft fork is when the block size is changed. Those who haven’t upgraded their software will still see that new incoming transactions are valid.
That’s all fine, but if miners who haven’t upgraded try to mine new blocks that’s when issues begin. Because they aren’t running the latest version of the software protocol their blocks will be rejected by the network. So, the soft fork allows for a gradual upgrade for the network as those who haven’t yet upgraded are incentivized to do so or lose some of their functionality.
Some past Bitcoin soft forks included:
- BIP 66: A soft fork on Bitcoin’s signature validation
- P2SH: A soft fork that enabled multi-signature addresses in Bitcoin’s network
Hard Forks
Hard forks occur when code changes are made that aren’t compatible with older versions of the software. In the case of Bitcoin this means that everyone who participates must upgrade to the new version of software if they want to continue validating transactions. This type of change creates a permanent split, or fork, in the blockchain. Both chains can continue to exist as long as there is some support from miners on both chains.
Hard forks can either be planned or controversial.
Planned Hard Forks
Planned hard forks are just that – planned. They’ve already been disclosed on the project’s roadmap for months, if not years. Because these forks are meant to add new features or upgrade the capabilities of the blockchain they are supported by developers and the community, which means everyone switches over to the new chain when the fork occurs. This means the old chain dies off as there’s no one to support it, and no incentive for anyone to do so.
Examples of Planned Hard Forks
Ethereum’s Byzantium: This was the first phase of Ethereum’s two-phase upgrade plan, and it occurred in October 2017. The purpose of the hard fork was to improve the scalability of the network, as well as integrating private transactions.
Monero: Monero had a hard fork in January 2017 to implement a privacy feature known as Ring Confidential Transactions (RCT). It forked again in April 2018 to remain ASIC-resistant, but this was not a planned hard fork, it was a contentious hard fork.
Contentious Hard Forks
Contentious hard forks occur when there isn’t full agreement amongst the community, leading to two functioning, supported chains after the fork. There is the new chain tht was created by the fork, and also the old chain, which some community members and/or developers feel is the better chain.
Examples of Contentious Hard Forks
Monero: As mentioned above, Monero forked in April 2018 to remain ASIC-resistant, but not everyone agreed that it was the right move. This was an interesting split because it wasn’t a single group that decided to keep working with the pre-fork chain, but four different groups. These groups were all supportive of ASIC mining on the Monero chain, and so we now have Monero Original, Monero Classic, Monero-Classic, and Monero 0. Interestingly they are all working on the same blockchain and with the same coin, even though they are being run by different groups.
Bitcoin Cash: Bitcoin Cash was created by part of the Bitcoin community that wanted to increase the block size from 1MB to 8MB. The reasoning was scalability, so that more transactions could be processed more quickly, and so that user transaction fees would be lower. Because the entire community wasn’t in agreement over the need for larger block size the hard fork created the new Bitcoin Cash coin.
Spin-off Coins from Bitcoin
Because the software used to create Bitcoin is open source, anyone can use it or change it anyway they like to make it more useful. This has led to the creation of several blockchains based on the Bitcoin code, with the best known possibly being Litecoin.
Litecoin used the Bitcoin code, but made some changes to it including decreasing the block time from 10 minutes to 2.5 minutes, using the Scrypt algorithm rather than the SHA-256 algorithm, and increased the fixed coin supply from 21 million to 84 million.
Some other examples of coins that were derived from the Bitcoin code base include Dogecoin, Namecoin and Peercoin.
Free Coins from Forks
One of the incentives from hard forks is the issuance of free coins to Bitcoin holders. When the chain is duplicated and new coins are issued for the new chain, all those who held Bitcoin on the old chain are entitled to new coins from the new chain. Typically this is at a 1:1 ratio and there are several ways that the coins get distributed, including but not limited to:
- Receiving them via airdrops
- Pointing one’s respective node toward the new forked network
- Distributing the private keys to the new network
Bitcoin Hard Fork: Conclusion
Image credits: Shutterstock.
Hard forks are an accepted and necessary way to make changes when the entire Bitcoin community isn’t in agreement. While it’s true that most are legitimate, there are some that have obviously been outright scams. But we still have to support the right to develop these projects in the spirit of full decentralization and open source code. This is how Satoshi envisioned Bitcoin.
If you have a real understanding of hard forks you’ll know that it’s the responsibility of the community to police changes in the blockchain. Perhaps this is why Satoshi disappeared, so that the community would be left to work on its own, without the leadership they would have inevitably been seeking from Satoshi.
Unfortunately there’s been a great deal of misinformation spread regarding hard forks. Misinformation regarding coin distribution, implementations, and even the very nature of a hard fork. This has created distrust of any such projects in the greater Bitcoin community, but it’s important to keep a level head and understand that some projects are totally legitimate and can work to improve the functionality and features of the original code.
Even with all the controversies over hard forks there are certainly benefits to the community. For one thing, forks ensure that the community members are always able to speak their opinions. They also allow investors and miners some recourse if they are at odds with the development team.
There will always be some who despise all hard forks as not being true to the original vision of Satoshi, but we have to remember that what was given to us by Satoshi was just a beginning. He made Bitcoin open source specifically so that changes and improvements could be made, and so that the community would always have a say in what changes are made to the blockchain.
Featured image credits: Stutterstock.