Originally published in the NOWPayments blog
In short, blockchain forks represent a split in the blockchain network. That means that their codes can be accessed by everyone. In other words, anyone can change or improve the code. The ability to offer such changes is an integral concept of cryptocurrencies, which results in new software updates within the blockchain.
Forks take place when various miners’ software gets misaligned. In this scenario, it is up to the miners to choose the blockchain which they will operate on afterward. Should they not come to a decision, then two versions of the blockchain get created. These types of fork events, also result in the cryptocurrency price being more volatile.
The major decision-makers in terms of network processes are key players. When it comes to most cryptocurrencies, there are three subsets of participants.
Miners, developers, and full node users. They all contribute to the network. While light nodes such as wallets are used a lot on the network, they don’t contribute to the development processes of the blockchain network.
They are in charge of creating and introducing updates to the code. For many cryptocurrencies, any developer can contribute to the process. The code has open access, so anyone interested can offer modifications for other developers to consider.
The miners are in charge of securing the network. They operate the code of the cryptocurrency and dictate the blocks that need to be added to the blockchain. In the Bitcoin network, for instance, miners achieve this via the Proof of Work protocol, and they are rewarded for their efforts in the form of a block and fees.
Full node users
They are regarded as the backbone of a crypto network. The full node users validate, send, and receive blocks and transactions on the network. They also maintain a copy of the blockchain.
These roles often overlap. For instance, some people are developers as well as full node users, or miners and full node users at the same time. Some even are responsible for all three functions. Most of the cryptocurrency users don’t do any of these. Instead, they are light node users and only offer centralized services connected to the cryptocurrency and its blockchain.
From the description above, it is safe to assume that developers and miners make the decisions for the networks. Developers are tasked with creating the code, and without them, there would be no software to run and no new features to add and bugs to fix. Miners, on the other hand, secure the network. Without a healthy mining competition, the blockchain could be hijacked or run to the ground.
However, these two categories can’t attract the rest of the network into doing their biddings. This is because a lot of the power lies in the full nodes. This is because users have the option to choose the software they are running. The blockchain network is designed to ensure that no single entity holds too much power over the others. And this is the true definition and importance of the decentralized nature of cryptocurrencies.
For blockchain forks to happen, people need to offer changes to the software protocol. In most cases, the forks are associated with the creation of new tokens. This is because you can only create new cryptocurrencies is either to develop them from scratch or to fork them from existing crypto blockchainBrand-new tokens are created very often. To do that, one needs to create and change an existing code so that a new token can appear.
A completely new blockchain network is to be built, with new customers that have to be attracted to it. For example, Litecoin first started as a clone of Bitcoin. But there were some changes made to its code, which resulted in the coin becoming most popular.
The other method is to fork an existing blockchain to create a new token. With this method, developers make changes to an existing blockchain. When this happens, there would be two versions of the blockchain network. An example of this is the creation of Bitcoin cash, as it was created following differing opinions about the future of Bitcoin.
Add new functions
The blockchain software code is updated or upgraded often. Since they are public blockchains, they are developed by people all over the world. The improvements are made, issues are resolved, and newer versions of the software are released when the time is right.
Fix security issues
Since cryptocurrencies and their blockchain technologies are still new, they are constantly subject to new researches. Hence, new versions are rolled out, and updates are made to fix security issues that affect them.
This is not something that is prone to happen, but the crypto community can invalidate any transaction proven to be malicious.
There are three types of forks:
- Hard forks
- Soft forks
- Accidental forks
What is a hard fork?
A hard fork occurs when the software that runs on the full nodes to function as a network participant is modified.
The changes are such that the new blocks mined are guided by new rules in the blockchain protocol and are not considered valid by the older version of the software. When a hard fork occurs, a new currency is created. An example of the hard fork is Ethereum and Ethereum Classic, Bitcoin, and Bitcoin Cash. An equal amount of the new currency is distributed amongst the full nodes who chose to upgrade or to update their software to ensure that there is no material loss. Such hard forks usually generate conflict within the cryptocurrency community.
The final decision to join the newer or older chain depends on the full nodes. If a node chooses the new chain, then the software has to be upgraded to help carry out newer transactions. Meanwhile, the nodes that wish to stick to the older blockchain don’t have to upgrade their software.
For example, the new Casper upgrade in the Ethereum network will move the consensus protocol from a type of Proof of Work (PoW) to a type of Proof of Stake (PoS). The Ethereum nodes that install the Casper update will start using the new protocol, with others being unable to continue doing so.
What is a soft fork?
In the case of a blockchain soft fork, the changes made to the software that runs on the nodes to function as a network participant leads to new blocks been mined, and the new rules are considered by the older version of the network software. The soft fork is also called backward-compatibility.
For instance, the SegWit update on the Bitcoin network added a new class of addresses called the Bech32. The new addresses didn’t invalidate the existing P2SH addresses on the Bitcoin network. As such, a node using the P2SH address can carry out a valid transaction with a node using the Bech32 type address.
What is Temporary Fork / Accidental Fork?
The final type of fork is the temporary or accidental fork. This happens when several miners mine a new block at approximately the same time, and the network can’t accept the choice of the new block. Some miners will accept the block mined by one miner, which will lead to another chain of blocks from that point onward. Also, others can agree on the alternative blocks and will lead to a new chain of blocks. This type of situation usually comes up because it takes a limited time for the information to be spread in the entire blockchain network.
Thus, conflicting opinions can exist regarding the natural order of events. In the temporary fork, two or more blocks will have the same block height. However, with accidental forks, the issues are resolved naturally as one of the chains dies out since the majority of the full nodes choose the other chain to add new blocks.
For instance, temporary blocks can occur more frequently than the other types of forks since the event that triggers it is mining or a block by more than one party at the same time.
Blockchain forks have become a crucial part of the crypto space as they are used for various functions. They are used to making upgrades and changes to the blockchain networks, making it possible to improve them in the long run.