If you’re familiar with open-source software development, you may have heard of something called a fork. This concept has a more specialized meaning in the crypto space, however:
Forking in crypto is a change in the consensus protocol for a blockchain. It is a change where nodes begin confirming blocks in a chain separate from the originating chain.
Let’s say a developer lists a piece of code on a platform like GitHub, which is open to the public. That is called open-source.
This means that users can create a copy of the source code for their own use. They may do this with the intention of compiling the software themselves. They may do this to add functionality that may not have not been added by the original authors of a piece of software or that may have been rejected by the original authors.
Taking this source code and building off of it independently is called Forking. It is the key to open-source’s vitality.
The nuance of crypto software lies in consensus. It is the main property of a functioning blockchain protocol. Every node operating on the network must use the same software as every other node or risk penalties and exclusion.
So let’s say you wanted to fork an existing crypto software. Due to this need for consensus, you would need to fork the entire blockchain. That is, unless you could get the majority of existing nodes to replace their software with yours, which is not always easy!
Forks occur for many reasons:
There are two types of forks in the crypto space where consensus rules are changed. Both must adhere to different outcomes that either include or exclude the participation of older nodes.
A hard fork occurs when consensus rules are loosened to accommodate certain changes to the network. These changes increase the functionality of block confirmation behavior. These changes are not backward compatible for nodes running the older software and will begin a new branch in the originating blockchain.
When the broader functionality of a network’s assets experience a change, so too do the economic properties of the asset. These changes may include:
The list goes on but one thing is certain: a new asset is needed to transact on the new blockchain.
For example: Let’s say a node running the old software were to receive a 2 MB block when it was expecting a 1 MB block. That 2 MB block would be invalid as it’s larger than the rules of the older network allow. The 2 MB block would have to be sent on a separate network.
A soft fork occurs when consensus rules are tightened to accommodate a certain change to the network. This change produces a certain functionality of block confirmation or consensus behavior. This type of fork is backward compatible for nodes running older software and allows nodes to forego the updated participation method.
To use our earlier example: Let’s say a node expects a 1 MB block but receives a 0.8 MB block. In this case, this smaller block would be seen as less than a full block but would still be accepted.
Let’s look at some examples of all these forks in practice. We’ll look at the two most popular crypto networks as they’ve gone through some growing pains to get where they are today.
In the mid to late 2010’s, Bitcoin (BTC / USDT) faced scalability issues with its path forward contested between two factions of Bitcoin users.
A proposal was made to implement Segregated Witness (SegWit) functionality in the Bitcoin software. SegWit was proposed as a change to the transaction architecture of Bitcoin. This change would store signature data as a data tree attached to the transactions and not be counted in the transaction ID. SegWit was proposed as an opt-in choice. This would be an example of a soft fork.
You can actually see the differences in your Bitcoin address: An address starting with the number one uses the legacy transaction structure while addresses starting in ‘bc1’ or the number three uses native SegWit and nested SegWit respectively.
So it went, Bitcoiners were torn between decreasing the data needed in a transaction to allow more transactions to fit into the 1 MB blocks or an increase of blocksize to 8 MB. The rejection of SegWit for larger blocks would require a hard forking of the network. In August of 2017, Bitcoin was hard forked and Bitcoin Cash was created.
In June of 2016, hackers broke into ‘The DAO’, a large treasury created as a means of providing investment to projects on the Ethereum network. The hackers stole approximately $55M USD.
Before the time of the hack, The DAO had approximately $250M USD in the treasury. Here’s how it worked:
Each member would receive 100 DAO tokens for every 1 ETH deposited into the treasury. These tokens were used to vote on whether a given investment proposal was potentially profitable or not. If the proposal passed, the treasury would automatically transfer the proposed ETH investment to a smart contract that represented the project.
The idea was similar to a hedge fund. If the project generated more revenue than the investment, the profit would be deposited back into The DAO treasury and increase the value of the DAO token.
However, the smart contract had a vulnerability that was exploited to allow the attacker to make infinite withdrawals until the treasury was emptied.
Of course this story has many details, but let’s stick to the key events. The attacking hackers fought to withdraw as much money as possible while the white-hat hackers of the community tried desperately to use the same exploit to save the treasury’s funds.
By the end of it, both factions had drained all they could but the damage was done. To fully mitigate the attack, a hard fork of the blockchain was proposed. The blockchain would be restarted from before the hack and carry on as if nothing happened. This is the current canon blockchain of Ethereum (ETH / USDT) as we know it.
Some users, however, thought this was a bad precedent and would remain on the blockchain where the hack had occurred; known now as Ethereum Classic.
Forking is generally done to improve upon a protocol. Whether the changes are good or bad is up to the community making the changes.
Since forked networks have different technical and economic properties they are fundamentally different assets. These factors will affect whether an asset will increase in value.
There is no best crypto to fork and any open-sourced project can be forked.
Ethereum 2.0 is not considered a hard fork if users adhere to the Proof-of-Stake model in the software upgrades. The Proof-of-Work version of ETH will result in a new blockchain.
Bitcoin implements hard forks generally to solve scalability problems. The issue is usually transaction per second and block size.
Vasil is a hard fork of Cardano (ADA/ USDT).
A hard fork is not backward compatible requiring a new blockchain while a soft fork is backward compatible with the old blockchain. See the above article for a more detailed explanation.