However, the majority of cryptocurrency forks are done on purpose. They occur when developers intentionally modify the source code to add new features, fix vulnerabilities or change the fundamental rules of network operation. Usually, the forked code is similar to the original, but with substantial modifications, which are permanent and require the network users to upgrade their software to the newest version. Sometimes intended forks create a new protocol, new digital asset, and even new community.
Cryptocurrency forks happen in various forms, though, regardless of their nature, they have a common parent protocol and share the transaction history before the split.
Table of Contents
Hard or soft?
All intentional cryptocurrency forks can be classified into two major categories: soft forks and hard forks
In essence, both hard and soft forks result from changes implemented to the source code, where a new version of the protocol is created in parallel with the old one. However, the devil is in the details, so let’s slice and dice it.
1) Soft forks – everyone is happy
A soft fork is a software upgrade that can still work with older versions. It is called backward compatibility, which means that users that failed to upgrade their software to the latest version won’t be entirely cut off from the network. Blocks created by the latest software version will be accepted by old version nodes, but not the other way round. The newer software will reject old blocks, thus forcing users to upgrade. This is a snowballing process as the more miners switch to the newer version, the longer their chain becomes, encouraging the other miners to update the software and join the mainstream.
A soft fork may be caused by changes that tighten the rules of block validation or implement additional functionality without affecting the network structure. Thus, rules reducing block size from 1MB to 500KB will create a soft fork as they imply tighter conditions. Non-upgraded users will continue to see and recognize incoming new transactions, but their blocks would be rejected by the network because they do not comply with the new block size.
A soft fork is possible only if a majority of users choose to upgrade to the new version to enforce new rules on the whole blockchain. This type of fork is considered to be temporary as the chain with the biggest hashing power eventually absorbs the shorter one. Thus, If more than 50% of miners upgrade to the latest version, then the older version will become redundant and vice versa. However, since both old and upgraded nodes accept new version blocks, the new version eventually wins.
Investor considerations: Since soft forks do not carry the double-spend risk, they are mostly dull events that go unnoticed by the crypto investment community most of the times. Merchants and users with unupgraded nodes will read and recognize both new and old version blocks, ensuring smooth network functionality.
2) Soft fork examples:
- Block size limit. Initially, Bitcoin did not have a block size limit, the restriction to 1MB was introduced through a soft fork.
- Pay-to-script-hash. This function enabled multi-signature addresses in Bitcoin’s network, thus enhancing the code without changing the structure.
3) Hard forks – this is war
A hard fork implies a change to a software protocol that makes older and newer versions incompatible. It means that newly generated blocks do not support old ones and vice versa. Users running old version will be completely separated from the network and won’t be able to participate in validating and verifying transactions. In case of a hard fork, all users have to switch to a new version to stay in sync with the network. Otherwise, if they continue operating, they will end up with an entirely different chain and different data set registered in the ledger. Two chains can concurrently exist, as long as miners are willing to support the minority offshoot.
A hard fork is needed to modify structurally essential parameters or loosen the rules of block validation. Such fundamental changes include a block size increase, the difficulty of a cryptographic puzzle, limits to additional information, etc. Thus, if a block size limit is increased from 1 MB to 3 MB, then a 2MB block will be validated by a node with the newest version of the software as it allows the bloc up to 3 MB. Nodes running older version will reject it. Furthermore, it will ignore that block and attache its new validation to the previous one, compliant with old rules. Eventually, you will end up with two chains: one with both new and old types of blocks and the other one with only old version blocks.
Hard forks can be either planned or controversial. In the first case, the update was stated in the project’s roadmap since the very beginning, which means that the whole community moves to the new chain, while the old one is abandoned. A controversial fork happens when the community members cannot agree on fundamental issues. As a result, one group introduces significant changes to the code, and thus creates a new chain with a new digital asset, based on it.
Investor considerations. Hard forks are potentially messy and plagued by double spending problem: coins spent in a new block can be spent once again in an old block as merchants and users with the old version of the software will not see the spending registered on a new chain. Even planned hard forks might lead to confusion and loss of money as due to decentralized nature of the system it is challenging to get all the nodes to switch to the newer version at the same time.
4) Hard forks examples:
- Ethereum’s Byzantium. This is a planned hard fork that occurred on Ethereum blockchain in October 2017 in compliance with general upgrading plan.
- Monero. The coin hard forked in January 2017 to implement Ring Confidential Transactions (RCT) feature, which was supposed to improve privacy and security characteristics of the coin.
- Bitcoin Cash. This coin was born due to a controversial hard fork, coordinated by community members that advocated block size increase from 1MB to 8MB.
- Ethereum Classic. This coin is based on the old Ethereum chain that was forked to reverse the adverse consequences of DAO hack attack. The new chain retained the original coin Ethereum as the majority of the community members supported it.