From a technical perspective, an accidental or temporary fork is a split in the blockchain that occurs when two or more valid blocks have the same.
In proof-of-work-based (POW) blockchain systems, this happens when two or more miners solve the POW algorithm at nearly the same time. As both miners find the correct nonce (the solution to the proof of work), they immediately broadcast their “winning” blocks to their neighboring nodes in the network, which then propagate the block they first received further down the line across the network.
Because of how the protocol rules in distributed blockchain systems are set up, each node that receives a valid block must incorporate it into their copy of the blockchain, prolonging the blockchain by one block. However, when just milliseconds later, the same node sees another valid block at the same block height, it can’t do anything but reject it because it has already found and incorporated a valid block extending the same parent block.
Now, there wouldn’t be any problem with this if all nodes in the network saw and incorporated the same block at the same block height at the same time. However, blocks propagating across the network arrive at different nodes at different times. For example, suppose two mining nodes, one in the US and one in China, find two valid blocks, one “blue” and one “red,” at the same block height. Both the blue and the red blocks are valid in so far as they both contain a correct solution to the proof of work, and both blocks extend or build on top of the same parent block.
When the two miners broadcast their winning blocks to the network, the nodes geographically closer to the US miner will see the blue block first, while the nodes geographically closer to the Chinese miner will see the red one first. The nodes that saw the red block first will incorporate that one into their copy of the ledger and immediately start mining candidate blocks referencing the red block as the parent. Simultaneously, the nodes that saw the blue block first will do the same with their respective block — they’ll accept the blue block as valid, reject the red block when they see it and start mining candidate blocks referencing the blue block as the parent.
This effectively leads to a temporary situation where two different copies of the blockchain — one where the last block in the chain is the red block, and another where the last block is the blue one — are competing with each other to become the new and only “true” blockchain with the greatest cumulative difficulty or expended hashing (mining) power behind it. In other words, the network will for a brief moment consider two inconsistent copies of the blockchain as valid.
These situations, called forks or splits in the blockchain, are typically resolved within one block (in Bitcoin’s case, that’s ~10 minutes). As one part of the network’s mining power is building on top of the red block as the parent, the other part is focused on building on top of the blue block. Even if both mining groups’ cumulative hashing power is almost equal, the chances are that one group will find the next winning block before the other and will propagate it across the entire network. When that happens, all mining nodes will accept the new block as valid, causing the whole network to re-converge on a single chain (the one with the most cumulative hashing power behind it) and once again start building on top of it.
While these types of forks are the most technically challenging to understand, it’s critical to know that they occur all of the time and happen involuntarily. They transpire for purely technical reasons, resolve within seconds or minutes, and are entirely unnoticeable from a user experience perspective.
Soft Forks vs. Hard Forks: What’s The Difference?
When people discuss forks in the cryptocurrency space, they usually refer to soft forks or hard forks and rarely technical or involuntary/accidental forks. These types of blockchain forks are less common than temporary forks but have significantly greater importance for cryptocurrency users.
what is A Blockchain Fork?
In this context, the term blockchain fork refers to a deliberate update of a particular cryptocurrency protocol. A soft fork is a backward-compatible protocol update, while a hard fork is a backward-incompatible protocol update.
Okay, so what does this mean?
What is a Soft Fork: A backward-compatible fork
A backward-compatible fork update introduces changes to the software code or the protocol rules that do not sever the functional continuity with its previous version. In other words, a soft fork is an optional update or an update where the non-upgraded nodes can still interact with the upgraded ones after the change.
What is a Hard Fork: A backward-incompatible hard fork
On the other hand, a backward-incompatible hard fork update introduces changes to the protocol that causes a disruption or a discontinuity with the previous version. In a hard fork update, the old non-upgraded nodes can’t interact with the upgraded ones. As a result, the blockchain diverges into two potential paths forward and splits permanently, producing two distinct networks: one with the old rules and one with the new.
Both soft and hard forks represent intentional changes to the protocol made for many reasons. These include minor or major bug fixes, reversing the effects of hacks, and community disagreements as to the best path forward. Typically, soft forks are used to introduce changes that tighten up some of the protocol rules, while hard forks often loosen up some of the rules implemented in the protocol.
However, the best way to understand soft and hard forks is through real-world examples.
Example of a Soft Fork
The SegWit Update
The most popular example of a soft fork is the Segregated Witness (SegWit) update introduced to the Bitcoin network on August 23, 2017. SegWit was born out of the need to scale or increase Bitcoin’s transaction throughput capacity. The proposed solution was simple yet elegant: reduce the size of the transactions and simultaneously increase the maximum block size capacity to improve the number of transactions included in each block.
Initially, Bitcoin was designed with a block size limit of 1 MB. Considering that one block is mined approximately every 10 minutes and that the average transaction size is ~500 bytes, this means that Bitcoin initially had a maximum potential throughput capacity of roughly 2000 transactions per block. The SegWit update enhanced Bitcoin’s throughput by increasing the block size/weight limit to 2 MB and decreasing the size of the average SegWit transaction by ~60%. It accomplished this by segregating the signature (the witness) associated with each transaction from the transaction data and sending it through a different messaging channel.
The beauty of the Segregated Witness update is that it allowed non-upgraded nodes to validate SegWit blocks and transactions without any issues, thus not triggering a hard fork or a permanent split of the Bitcoin blockchain.
Example of a Hard Fork
Hard forks or permanent backward-incompatible blockchain updates can be classified into two broad categories: planned hard forks and contentious hard forks.
A planned hard fork
A planned hard fork is a protocol update that doesn’t result in a permanent split in the blockchain, unlike the contentious hard fork. Planned hard forks are always announced promptly with a high degree of consensus within the community and core developers regarding the project’s path forward.
Because the community reaches consensus before the hard fork is scheduled, the result is a situation in which the entire community moves onto the new upgraded protocol and completely disregards the old one.
Monero’s Hard Fork
A notable example of a planned hard fork includes Monero’s RingCT hard fork, which occurred in January 2017. In this case, because the update was non-contentious, the hard fork didn’t result in a split within the community, and there was no creation of a new coin. Instead, the project simply updated its protocol and added a new privacy-enhancing feature known as Ring Confidential Transactions or RingCT.
A contentious hard fork
On the other hand, contentious hard forks occur when there are long-lasting unaddressed disagreements between the various stakeholders of a particular cryptocurrency’s community. The disputes can arise between the project’s lead developers, the miners, or the network users. For example, users may lobby to add specific features believing they’ll result in a superior blockchain. Simultaneously, miners could strongly oppose such changes as these may negatively impact their mining operations and profits. A hard fork or a permanent split can also occur if there are strong disagreements between the project’s lead developers.
While there are many great examples of contentious hard forks within the crypto industry, two cases, in particular, stand out: the split between Bitcoin (BTC) and Bitcoin Cash (BCH) and the one between Ethereum (ETH) and Ethereum Classic (ETC).
The Split Between Bitcoin and Bitcoin Cash Explained
The Bitcoin Cash hard fork is the best-known example of a contentious hard fork. This large split within the Bitcoin community was preceded by lengthy debates on the best way to scale Bitcoin moving forward.
One part of the community dubbed the “big blockers” argued in favor of increasing the block size limit to 8 MB. They believed this would solve Bitcoin’s immediate transaction throughput capacity issues. In contrast, the other part of the community or the “small blockers” strongly opposed this proposition, arguing that this would inevitably lead to greater mining centralization. The debates went on for several years until eventually, on 1 August 2017, the big blockers took matters into their own hands, forked the Bitcoin blockchain, and created their own cryptocurrency with 8 MB-sized blocks called Bitcoin Cash.
Bitcoin’s market capitalization at the time of writing is ~$880 billion, while Bitcoin Cash’s market cap is ~$10 billion.
The Split Between Ethereum and Ethereum Classic Explained
Another notable example of a contentious hard fork is the Ethereum Classic split of July 20, 2016. In this case, the hard fork’s main reason was the infamous DAO hack of June 17, 2016, that resulted in the loss of ~3.6 million Ether, valued at around $50 million at that time. A significantly larger portion of the community pushed for an irregular state change implementation that would effectively roll back the blockchain and erase the DAO theft effects. In contrast, a minority of the community was philosophically opposed to this change and wanted to preserve the immutable nature of the Ethereum blockchain. The two parties couldn’t settle their differences. Eventually, Ethereum’s core developers and the majority of the community went ahead with the hard fork. Simultaneously, the small minority who opposed the rollback didn’t upgrade their software and continued mining the old version of the blockchain, now known as Etheruem Classic (ETC).
What is the significance of the Ethereum London Hard Fork?
Continue reading on Why is Ethereum’s London Hard Fork a Big Deal
Like regular computer or mobile applications, decentralized blockchain systems also require occasional updates. Soft and hard forks are the only way to do this. They allow decentralized systems to make changes, fix bugs, and add new features as they continue to develop without relying on central authorities.
Even contentious hard forks, which can seem very disruptive in the short term, are net-positive for the cryptocurrency space in the long run. Without the vast plethora of diverse and opposing opinions, the crypto industry wouldn’t be what it is today. And what better way to test these hypotheses than to try and see if they work in the real world?