Bitcoin Forks: Protocol Changes, Upgrades, and Radical Changes on the Blockchain
In cryptocurrency, when one blockchain becomes divided into two blockchains, a fork occurs. This type of split in a blockchain network happens when an update is made to the blockchain protocol but not all of the network participants, or nodes, agree to adopt it.
A fork occurs when one blockchain is divided into two blockchains. This type of split in a blockchain network happens when an update is made to the blockchain protocol but not all of the network participants, or nodes, agree to adopt it. Blockchains can experience two main types of forks — a soft fork or a hard fork. In this article, we’ll explore why forks happen, and specifically, the difference between a Bitcoin soft fork and Bitcoin hard fork.
What is a Blockchain Fork?
To understand blockchain forks, it is helpful to first discuss the structure and function of blockchains. Cryptocurrencies are built on a revolutionary technology, called blockchain, which functions as a decentralized, public ledger of transactions. When cryptocurrency transactions occur, they are grouped into what’s known as a block. Then, one by one, new blocks are processed, or verified, and added to the blockchain sequence — creating a chain of blocks.
In traditional banking, when you send funds from your bank account to your friend’s bank account, the bank acts as a central authority, deducting the funds from one account and adding them to another, ensuring the sender has sufficient funds to make the transaction. On the blockchain, the governing authority is decentralized. Network participants, called nodes, must individually verify new blocks of transactions and come to a network consensus about the new distribution of funds.
Nodes play an important role in verifying new transactions and ensuring that funds end up where they are supposed to without being spent twice, also known as double-spending. The nodes of a cryptocurrency network are responsible for carrying out this specific process of verification which is governed by the network’s protocol. In other words, the Bitcoin network is the sum total of all the decentralized nodes that carry out the Bitcoin protocol.
When a protocol is updated, the individual nodes upgrade and accept the new changes. If some of the nodes reject the changes, then a crypto fork takes place. Sometimes the update in question is more or less optional, and sometimes it’s mandatory. The optional type of fork is known as a soft fork, and the mandatory type is known as a hard fork.
What Is a Bitcoin Fork?
Network scalability problems provide an excellent opportunity to illustrate the difference between a Bitcoin soft fork and a Bitcoin hard fork. Around 2015, Bitcoin encountered trouble scaling its transaction capacity to match the rapid growth of its user base. As more users began exchanging bitcoin, the network got bogged down with increasingly large transaction volumes, ultimately slowing down their overall processing time. The concern was that eventually, Bitcoin transactions might take days or weeks to clear if nothing was done to speed up the process, which could also require users to pay higher fees in order to accelerate transactions. Neither scenario was ideal, and this became known as Bitcoin’s scalability problem.
One of the proposed solutions to the scalability problem was called Segregated Witness (SegWit). SegWit functions by uncoupling signature data — proof of ownership of a specific cryptocurrency — from Bitcoin transactions and rearranging that data in each block more efficiently, thus increasing transaction speed. SegWit is what is known as a soft fork, rather than a hard fork. Soft forks are what happens when a change to the protocol’s software does not disrupt the core operation of the network.
Because a soft fork involves a non-mandatory update, each node on the network can choose whether or not to update their individual copy of the protocol, and in either case, all of the nodes in the network can keep interacting with each other. For example, rejecting Bitcoin’s SegWit update did not result in a new blockchain or a new cryptocurrency (unlike the hard fork that created Bitcoin Cash, which we’ll touch on later). Nodes that accepted the SegWit protocol update are still running Bitcoin software that is compatible with nodes that did not. A soft fork is backwards compatible.
In contrast, hard forks occur when the update is so fundamentally different from the previous version that the protocol is no longer backwards compatible. A notable example is the Bitcoin Cash (BCH) hard fork that took place in August of 2017. The BCH hard fork aimed to tackle Bitcoin’s scalability problem but took a very different approach than SegWit. In 2017, some of Bitcoin’s core developers wanted to increase Bitcoin’s maximum block size from 1MB to 8MB. The 8MB update meant that most nodes, which were configured and powered to mine a 1MB block size, couldn’t quickly or affordably upgrade to start mining 8MB blocks. This disparity caused a philosophical rift in the Bitcoin community and rather than try to force an upgrade to the existing protocol, a hard fork was implemented and a new cryptocurrency — Bitcoin Cash — was launched.
In the case of hard forks, nodes that accept the update are migrated to a new blockchain. The coins on the new blockchain, which are awarded to successful miners, are separate and unique from the original ones. When Bitcoin Cash was created, it spawned a unique Bitcoin Cash blockchain with its own BCH cryptocurrency.
When a hard fork happens, the blockchain is duplicated in its entirety before the fork event, meaning that whoever owns the original cryptocurrency would be given an equal amount of the new cryptocurrency. In the case of the Bitcoin Cash hard fork, that is exactly what happened.
Why Do Bitcoin Forks Happen?
Forks can be accidental, but that rarely happens. An accidental fork occurs when two miners mine a block at almost the exact same time. This type of fork is resolved after the addition of subsequent blocks. When one of the two blockchains grows to be longer than the other, the network abandons the shorter chain, whose blocks become known as orphaned blocks.
Sometimes an intentional fork is implemented to repair or resolve the history of a protocol in response to a catastrophic bug or hack. For example, in 2016 a third-party application on the Ethereum blockchain (known as The DAO) was hacked, and millions of dollars of ether was stolen. To erase the hack from Ethereum’s ledger (and thus return the money to its original owners), Ethereum developers implemented a hard fork. The newly created ledger, which eliminated the hack and returned the stolen ether, became the “main” Ethereum blockchain, and a version of the ledger containing the hack became the Ethereum Classic (ETC) blockchain. While a majority of users (such as many who were targeted by the hack) preferred the version of Ethereum that erased the hack, some users preferred to continue using the original ledger in the form of ETC (in many cases because of strong convictions that blockchains should remain immutable).
More often than not, intentional forks arise from a community’s proactive desire to add a new feature — or otherwise drastically alter or improve the functionality of an existing blockchain. In the case of the Bitcoin Cash (BCH) hard fork, the desire to dramatically increase the network’s ability to verify transactions more quickly was the primary impetus. This concern is reflected in the structure of BCH, with its increased block size and accelerated transaction speed. Everything else about Bitcoin’s protocol was still deemed desirable, so rather than start a new blockchain from scratch, the creators of BCH spurred a hard fork that implemented the block size changes they desired, but kept everything else in terms of BTC’s original structure. Along similar lines, many other cryptocurrency projects have originated as hard forks innovated off of the codebase of major cryptocurrencies such as Bitcoin, Ethereum, Dash (itself a Bitcoin fork), and more.