What is a Hard Fork? Common Crypto Terms Explained
Sep 10, 2021
If you’ve been learning about cryptocurrency recently, it is very likely you have heard or read the term “hard fork” at some point. But what exactly is a “fork” in cryptocurrency? And why is the term so popular?
As we answer these questions, we will learn (or remind ourselves) of some other popular words within the vocabulary of the blockchain industry.
The Immutable Blockchain
This term stems from the structural make-up of a cryptocurrency’s network. Cryptocurrencies typically live on a decentralised network most of us know as a “blockchain”. This blockchain is “immutable”, meaning it is unchangeable, and an unchangeable database of information is extremely challenging for computer software to modify, especially if that software is decentralised!
A blockchain’s network runs on what is called “nodes”. Each node is essentially the entire runtime codebase- the source code that the blockchain runs on- as well as a copy of the blockchain itself. This makes each node a database of transactions or information, as well as an independent verifier of all incoming transactions and blocks.
These nodes are structured in this way to ensure no single entity has control of the network and tries to implement new changes to the protocol that would benefit them. The more nodes supporting the network, the more decentralised and secure it is. If one node goes down for whatever reason, the thousands of others will continue running, ensuring the system runs without a hitch. There is no single point of failure which many technology driven entities suffer from.
While this structure can initially seem quite revolutionary (which it certainly is), it is also a nightmare when it comes to software upgrades! For upgrades to the runtime codebase to happen, every single node on the network needs to implement it.
Let’s look at Bitcoin as an example of this…
There are currently over 50,000 different nodes* running the Bitcoin protocol and supporting the network. Each one of these 50,000 nodes (or computers), would need to be notified of any impending upgrade, agree to the upgrade, and then deploy it. That’s quite the administrative nightmare.
Despite the nightmare that it is, such upgrades get done and the network keeps on running with remarkable efficiency. The same can be said for other open sourced blockchains such as Ethereum, Monero, ZCash, Polkadot, and others. So let’s go through the process, using Bitcoin as an example…
1. A user (or group of users) will propose an upgrade to the protocol (This is called a Bitcoin Improvement Proposal - or BIP).
2. This proposal will be discussed by the community on its various communication platforms, like forums, or even digital e-meetings like Zoom.
3. If the community is in agreement, a communiqué would be sent out to the wider community in order to notify them of the upcoming upgrade, and their need to download the upgraded runtime codebase
4. Based on the community discussion, the community will decide at which block the upgrade is to be implemented.
5. When that block arrives, all notified node operators activate the software upgrade, and the protocol is now running the improved version (Bitcoin is currently v.0.21.1 - at time of writing).
This above example is known as a “soft fork”. But why the term “fork”?
That’s because the blockchain needs to be directed to a new set of blocks with improved code. You see, the Bitcoin protocol produces blocks every 10 minutes (in other blockchains it could be different - like Ethereum being every 15 seconds), and so with 50,000 nodes, it goes without saying that not everyone will have seen the notifications about the upgrades. Therefore at the block the new software is to be implemented, blocks with the old code will be created - therefore, we have two chains, aka a ‘fork’ in the chain.
If it is an upgrade where nobody disagreed, it is known as a “soft fork”. The old blockchain continues on a few other nodes who didn’t know about the other upgrade (and therefore they become redundant and will only become active supporters of the network until they upgrade again) while the new blockchain running on the nodes of all the activators of the improved protocol is the “actual chain”. Take a look at this diagram below:
The above example is actually using the Block Numbers set for the latest primary upgrade to the Bitcoin protocol labeled as “Taproot”. This upgrade will be deployed at Block 709,632 and includes a number of improvements including privacy and scaling features. Remember that blockchains produce new blocks (like new pages in the ledger) at a specific time, in Bitcoin’s case every ten minutes. When block 709,632 comes around, the Bitcoin protocol will run on the newly proposed upgraded software. All nodes and miners that fail to implement this upgrade software will merely become redundant, and in order to be supporters of the network again will need to upgrade to the new software accordingly, eventually killing off the old, redundant blockchain entirely.
Hard forks are a little more serious. They come about when the community can’t come to agreement, and a sizable portion of the community breaks away from supporting the original software. They then run a different version of the upgraded software but based on the same protocol.
This happened in July 2017 when a number of the Bitcoin community proposed what is known as “SegWit”, which allowed for new features to be built on top of the Bitcoin protocol (known as Layer 2 features). A portion of the community believed second layer features weren’t part of Bitcoin’s original plans, and so suggested different block sizes instead - therefore allowing the features to be part of the layer 1 protocol, without the need for layer 2 solutions.
This disagreement was a serious one, and after SegWit was implemented in a Soft Fork at block 477,120 on 23 July 2017, those wanting increased block sizes decided they would implement a software upgrade of their own, and whichever blockchain received the most support would be forever known as the “original Bitcoin”. The upgrade was set for block 478,558 on 1 August 2017.
At that very block, this new software of larger block sizes was activated, and some network supporters ran this protocol with new features, while most of the network supporters continued to run the previous protocol. Eventually, it became clear that the vast majority of exchanges, miners, node operators and software developers had supported the previous version of the protocol (with the standard block size of 1 megabyte), and this continued to be known as “Bitcoin” (now known in software circles as “Bitcoin Core”). However, the newly upgraded protocol with larger blocks of 8 megabytes still had thousands of supporters globally, and therefore became known as “Bitcoin Cash”. And so, both Bitcoin and Bitcoin Cash share the same blockchain history from block 478,557 - but after that, their blocks and subsequent transactions and even runtime codebase is different.
Below is a diagram illustrating the event of Bitcoin’s hard fork into Bitcoin Cash:
This is arguably the most famous Hard Fork to date, but it has happened on a number of occasions in the blockchain community, and is a result of open source software. Without a centralised form of government to make the final decision, the official status of a particular upgrade/fork really does come down to “democratic consensus”.
While soft forks happen in other blockchains all the time, hard forks have also happened on numerous occasions with the likes of Ethereum (see ETC) and Dogecoin (see Lucky Coin!) among others. Privacy coin, ZCash, is actually a hard fork of Bitcoin itself!
Exchanges around the world still support many of these forks, simply as new coins, We here at MultiBank io support both Bitcoin as BTC, and Bitcoin Cash. Remember, if you have any questions, hit us up in the support channel, or feel free to drop in to one of our Social Media channels!
It’s almost time to start trading MultiBank io's platform. Sign up to our mailing list on the home page and be informed about when we launch!
Remember, proper diligence and sound judgement should be used in evaluating the risks associated with these activities. Trading cryptocurrency carries significant risk and losses can exceed deposits. Refer to our Terms and Conditions and disclosure material.