A fork happens when a community decides to change the blockchains’ protocol or basic set of rules. Blockchains are open source, open software and anyone can contribute to the development of the blockchain. When a community disagrees with the development of the blockchain a hard fork can be created to support the new vision for the blockchain.
Blockchains are made up of blocks of data and when a blockchain is launched, the very first transaction that ever happened in the chain can be traced back to its origin even years after launching that chain.
What Is A Hard Fork?
In the case of hard forking a blockchain, the history of the old blockchain follows but is no longer validated by the nodes of the previous blockchain. Validator nodes, validate the blocks on a blockchain and when a fork is created it has new rules. If a miner or a validator wants to validate the blocks of the new blockchain, it needs to upgrade to the latest version of the protocol software.
In the above scenario, we now have two blockchains, old and new blockchain. The old can still be validated by the validators, but if they want to validate the new blockchain, an upgrade is needed.
When a new rule is added to the blockchain’s code, it creates a fork. A fork is like a path, one path remains, but the added code created a new path, thus creating a fork.
Why Hard Forks Are Created?
When a community, team, group of people or an individual wants to develop the blockchain in a new direction a fork is needed. Hard forks are created to add new features and functionalities to a blockchain that differ from the previous blockchain.
Blockchains can also have soft forks, but in the case of hard forks, the new blockchain code differs too much from the old code and is no longer backward-compatible with the earlier blocks.
Hard forks are also a way to make cryptocurrency more secure and add features and functionalities that help innovate the space further. Cryptocurrencies like Bitcoin Cash and Bitcoin Gold are an “evolution” of Bitcoin and were made through a hard fork.
Usually, the reason for creating hard forks is because developers or crypto community members become dissatisfied with the features and functionalities that the current chain offers. Thus creating a new chain enables them to create the vision they had for the chain they previously liked and used.
What Is A Soft Fork?
A soft fork can be seen as a lightweight software upgrade for the blockchain. An upgrade that is agreed upon by the crypto community and the changes are backward-compatible with the pre-fork blocks.
When a soft fork is made, there is no new blockchain, but a single blockchain that now has upgraded features and functionalities. In a hard fork, a new blockchain is created that lives side by side with the old one. Bitcoin and Bitcoin Cash are perfect examples of this. Both live side by side but operate differently.
The soft fork requires the majority of the validators to upgrade their software to the new rules, but with the hard fork, every validator is required to upgrade to the new rules. For the soft fork to work, the majority of the mining power or validators need to run a client that recognizes the fork and the new rules set in it.
If ¾ of miners or validator nodes run the new client, then ¼ of blocks created might not follow the new rules. These ¼ blocks are valid for the old nodes but not for the new nodes.
What are nodes in crypto?
Nodes can be phones, computers, servers, or any electrical device that can run a client that validates blocks. In the case of the Solana blockchain, there are minimum hardware requirements if you aim to become a validator for the blockchain. Currently, the requirements are pretty hefty, which in a sense creates a centralized architecture for the blockchain.
Centralization comes in the form of who can become a validator for the chain? Who has enough money to buy the needed hardware and run the system 24/7? It’s also debatable if running a validator is even profitable and in the case of Solana, it might be tough to get your initial hardware investment and continuous voting expenses back.
Can You Fork A Blockchain?
Yes, you can fork a blockchain. You can fork any blockchain that has open-source code and is readily available for the public to read. Usually, the code is visible on Github and can be copied for further development.
If for example, you want to fork an Avalanche blockchain, all you need to do is go to Ava Labs GitHub and start copying the implementation and blockchain logic for a new cryptocurrency. While the base implementation might be easy to pull off, the next level of development is another thing altogether.
There’s no reason to copy Avalanche and create Avalanche V2 as that wouldn’t make any sense. Why build something that is already available? The goal of forks should be to innovate from the point that is already available to us.
Smart Contract Forks – How To Fork Smart Contracts
In the previous chapters, we went through what is a hard fork and a soft fork. However, those were related to forking a blockchain. However, blockchains like Ethereum, Fantom, Avalanche, and Solana for example have implemented functionality like smart contracts.
Smart contracts like blockchains are usually (99.9%) open-source code and anyone can check and read what the code does and what functions the smart contracts have. You can easily check any smart contract by navigating to a chain explorer e.g. Snowtrace.
When you are in Snowtrace, you can paste any token address (e.g. THOR v2) and check the Contract that the token uses to execute functions. By going to the Contract tab you can see the smart contracts source code and what programming language is used. In the THOR example, Solidity is being used.
You can easily copy the whole smart contract code by pressing the ‘copy’ button shown below:
Now that we understand how “easy” it is to fork a project (smart contract) or a blockchain, we can also understand why we have so many blockchains, but also so many smart contracts. Especially smart contract copying has gone crazy as we see new forks being created pretty much every other hour or so.
While there are blockchain forks out there, it feels like blockchain hard forking is a thing of the past, or it’s not so much about hard forking but more about soft forking. Currently, Cardano blockchain, for example, creates new functionality and features for the blockchain through hard forks. Goguen hard fork for example brought the smart contract capability to the blockchain and new hard forks are in the plan like Basho (scaling) and Voltaire (governance).
One of the biggest growth drivers for a blockchain is NFTs and P2E, but when all things considered it’s the amount of quality smart contracts and use cases a blockchain has, the more exponential the growth is.
When you see a lot of forks (a good place to track forks is the What The Fork website) or similar-looking projects being developed (Titano, Safuu, Libero, Overpowered, OTO), you should always ask yourself, is this project/protocol bringing anything new to the table.
How are the different forks and copies innovative in the area and if they can survive the bear market. There are a plethora of smart contract forks in the crypto space and the majority of them are total rubbish. Usually, the first smart contract written for a specific use case (Tomb Finance) is usually the strongest one and survives the tough times.
The later forks of smart contracts usually fail because of low adoption and innovation compared to the smart contract it was forked from.