With all the news this week about the Ethereum Constantinople hard fork, let’s take a look at the basics of hard forks and the difference between ‘contentious’ and ‘non-contentious’ hard forks.
Cryptocurrencies are fundamentally supported by blockchain technology. A blockchain is a form of distributed ledger technology which presents information in blocks of data. When transactions with crypto are made, data miners must solve cryptographic puzzles to determine the correct hash and add a block full of transactions to the blockchain. Successful miners are awarded crypto for their work.
A key part of blockchain technology is transparency. To achieve transparency, blockchains are immutable and only verified transactions can be added. To verify a transaction, people within the network must reach consensus about the transaction.
If consensus is not reached, or there is a disagreement about the future of a network, then a fork is likely to occur.
What is a hard fork?
A hard fork implies that when a change occurs in a blockchain, it will be irreversible. Typically, this is because the changes will not be backwards compatible with older versions of the blockchain. Consequently, when updates or changes are made to a blockchain, the new version will fork from the original blockchain and there will effectively be two active blockchains – the old original one and the new one that has additional, updated rules. This in turn means any users wishing to stick with the newly forked network must upgrade to the new version.
It is worth remembering that forks require a majority consensus from participants in the network. Once implemented, all participants on the network can voluntarily upgrade their software to the new version.
There are two types of forks: contentious and non-contentious.
A contentious hard fork will typically occur when there is a disagreement within a community. The two disagreeing factions will fork the chain and implement the changes they desire on their respective chains.
A non-contentious hard fork will occur when a fundamental change in the code is required to upgrade the blockchain.
The Ethereum/Ethereum Classic hard fork transpired following a major decentralised autonomous organisation (DAO) hack. DAOs are entities that operate through smart contracts. Their financial transactions and rules are encoded on a blockchain, stripping away the need to have a centralised authority governing the network.
For Ethereum, the DAO was meant to operate like a venture capital fund. It’s initial reception was incredibly positive, but there were some doubters. In short, the platform enabled people with project ideas to pitch them and potentially receive free funding from the DAO.
Any person with DAO tokens could vote on plans and would receive rewards if the project turned a profit. However, a hacker found a loophole within the code that allowed him to siphon the funds from the DAO. It was estimated that 3.6 million Ether was stolen.
Many in the Ethereum community believed that there should be a hard fork to recover the stolen funds from the DAO. A minority of the community believed in one of the core philosophies behind blockchain technology, which is that they should be immutable. As a result, a fork occurred creating ‘Ethereum’, where the stolen DAO funds were returned, and ‘Ethereum Classic’, where the minority still operate on the old blockchain.
Another famous example of a contentious hard fork happened in 2017. It arose following a dispute over scaling issues in Bitcoin. Some believed that scaling could be solved by increasing the block size from 1mb to 8mb, which in turn would decrease fees and allow for more transactions to be completed at the same time.
People who opposed this fork believed that it would bring about security issues and increase centralisation because node costs would increase. If node costs increased, it would mean that people who are richer would begin to dominate the nodes, thereby creating a network which is ran by the wealthy, and over time it would stray away from being decentralised. This goes against a founding principle behind Bitcoin’s creation – decentralisation.
Those who were in favour of increasing the block size decided to fork Bitcoin, which brought about Bitcoin Cash. Anyone with Bitcoin on the Bitcoin blockchain received the same number of Bitcoin Cash on the Bitcoin Cash network via airdrop.
What are soft forks?
There have been incidents of forking that have not resulted in a split blockchain. Instead, whilst there is an old and new version of the blockchain, the old one will usually be abandoned. Those who still run the older version can still participate on the network despite not having the new features that were implemented in the fork.
A soft fork is therefore backwards compatible and does not result in a chain split. A hard fork will split the blockchain into two, whilst retaining a common history. A hard fork will likely also change a core rule of the software.
What are non-contentious hard forks?
Some hard forks occur that are non-contentious. This typically suggests that all the fork has provided is an update and there is no disagreement within the community.
Bitcoin Cash has had several non-contentious forks, one of which implemented ’emergency adjustment difficulty’, or EDA for short.
EDA will occur if fewer than six blocks have been mined within the last 12 hours. For context, in the original Bitcoin blockchain, if the network is running smoothly, a new block of data should be mined every 10 minutes.
Other non-contentious hard forks
There are also hard forks which seek to implement protocol upgrades. These will likely have been stated on a project’s roadmap since their inception. A planned hard fork looks to upgrade and enhance the blockchain’s capabilities and features.
As a result, the entire community, spearheaded by the core developers, will transition to the upgraded version of the blockchain. This is because the update will require a change in the fundamental code.
One example of a non-contentious hard fork is Ethereum’s ‘Byzantium’ hard fork. This was a part of Ethereum’s two-phase upgrade plan and occurred in October 2017. It represented an upgrade of Ethereum’s blockchain to enable for improved scalability and the integration of private transactions.
A hard fork that is contentious is a product of a disagreement between the community, whereas a non-contentious hard fork is one that is needed to help enhance a network’s blockchain.
As this introduction to hard forks has demonstrated, there are a lot of factors that play into whether a blockchain will fork or not. It could be to reimburse victims that have been subject to a hack or to solve scalability problems. Sometimes, it is as simple as a network needing an upgrade to enhance the blockchain.
For more information and guides from Coin Rivet, click here.