If you’ve been a member of the cryptocommunity for more than a couple of weeks, you’ve probably heard the term ‘hard fork’ thrown around. A lot of people may be wondering, what that exactly means. Perhaps you’ve heard of the most popular hard fork, Bitcoin Cash, and you’ve got a brief idea of its meaning.
The goal of this article will be to simplify the concept of a ‘hard fork’ in an easily understandable manner and help you dissect and digest the different hard forks that exist, what they mean, and how they happen. This article will also do its best to present the definition of a hard fork in the most nonbiased manner possible.
The formal definition of a hard fork in blockchain is:
A permanent divergence from the previous version of the blockchain, and nodes running previous versions will no longer be accepted by the newest chain.
Unfortunately, it’s not quite that simple. So, let’s take it back to the basics for a moment.
The fundamental concept of blockchain technology, as created by Satoshi Nakamoto when he made Bitcoin, is that decentralization would occur via a distributed ledger. So, in other words, everyone on the network would have a copy of all the transactions that were made. If Jim sends 10 coins to Sarah, everyone has this information.
People obtain these copies by running a node. A node is a connection point. Basically, to set up a node, one would just download the necessary software and connect it to the Bitcoin network. Once connected, nodes receive an updated version of the ledger with ALL payments ever made. All of these transactions are stored on something called a blockchain.
The rules of the chain are enforced by full nodes. This is an important fact to remember when examining and studying hard/soft forks and their occurrences. Miners are free to mine any type of blocks that they want, it is up to the full nodes to validate those blocks. However, if there is just one full node or even a small percentage of full nodes that validate blocks that a majority of miners are mining on, then there is an imminent risk of a chain split.
Another critical piece of information one must understand to really ‘get’ how hard/soft forks are created is the fact that full nodes are needed to enforce consensus rules on the blockchain. If miners choose to mine blocks that do not abide by these rules, then the full nodes will reject the block.
There is also a difference between consensus and consensus rules. Consensus merely refers to the adherence of nearly-all full nodes to the consensus rules of the network.
Below are some of the consensus rules on the Bitcoin network:
- Block Size
- Proof of Work
- Bitcoin Reward per block
And many more…
How do hard forks occur?
The concept of a hard fork is somewhat similar to that of a software fork. However, the implications for Bitcoin are a bit more pronounced. Check out the graphic posted below:
This is a good, basic example of what a blockchain should look like conceptually. It is linear, so order is extremely important here.
Bitcoin was designed with a specific code by Satoshi (founder of Bitcoin) and others, which dictated the consensus rules that were discussed above. Every block that is added to this ‘chain’ abides by said rules.
A hard fork occurs when these consensus rules are expanded through different software. For example, when Bitcoin Cash was created, it loosened the rules on block size, making it a hard fork. SegWit is an example of the rules being constricted. So, a restriction of the block size would represent a soft fork.
See below to get a better visual conception of how this process manifests itself:
As stated in the definition in the beginning, this divergence is permanent and there is no longer any compatibility between the two.
Generally, there are two different ways which a hard fork can occur. It can either be: Contentious or planned.
As their names suggest, both entail entirely different things. A planned hard fork means that the creators/developers were all in agreement as to how the coin would be forked. When this occurs, there is no split in the chain. This is because all of the nodes have agreed to upgrade to the latest version of the coin’s client that possesses the rule change.
There will be a split in the chain if all nodes do not adhere to the new rules set by the hard fork implementation. This chain will more than likely die off without enough economic support. Therefore, planned hard forks are usually under little to no threat unless there is an invisible negative sentiment — which is an unrealistic scenario.
If there was disagreement in the community about the path of a coin, like Bitcoin, for example, then a contentious hard fork would occur. The most notable example of this is the creation of Bitcoin Cash, which we will explain in more detail later in this article. Given the nature of blockchains, hashing power, and hard forks, there must be a fair amount of support for the hard fork for it to be economically viable in the long-term.
Hard forks, by definition, are always incompatible with the original chain. Thus, a hard fork will always be irrevocable and permanent. However, it is worth noting that the original chain will always be compatible with the hard fork chain by definition.
Typically, a contentious hard fork occurs when some of the nodes – which previously mined on the old network – decide to switch to the new chain; this ultimately splits the mining community into two camps, one which now follows the rules of the new chain and another one which continues to adhere to the old one.
Here is a great graphic that shows what this would look like:
Hard forks pose a systemic risk to Bitcoin
As the graphic above shows, when a contentious hard fork is created, there are two running versions of the blockchain. This is something that any coin would want to prevent at any costs for the following reasons:
- Blockchain reorganization
- TX being confirmed by the wrong chains
- Political/Social Turmoil Within the Community Regarding the “real” and the “fake”
And many others…
Another facet of hard forks, which is a bit more complex to explain, is that users will receive “free” coins. However, since everything is digital in nature, this is a phenomenon that’s hard to create an analogy for in an accurate way. Essentially, when a hard fork occurs, all previous TX made on that chain are considered legitimate.
Even future blocks that are created with legacy rules would technically still be considered legitimate (unless otherwise coded to not accept any of the legacy blocks). Therefore, money that prior could be spent on the hard fork ledger as well as the original ledger simultaneously – effectively giving one “free” coins.
What’s the current status of previous/impending hard forks for Bitcoin?
Technically, the earliest Bitcoin hard fork occurred in 2013. However, this was a planned hard fork and not meant to be contentious.
Our goal in this section will, however, be to give an overview of all contentious hard forks that occurred, cover their proposed changes, provide the logic behind said changes, and explore their resulting impact, if any.
#1 – Bitcoin XT (2015) – BIP101
In many ways, Bitcoin XT served as the prelude to the eventual Bitcoin Cash hard fork. The manifestation of the Bitcoin XT hard fork was borne out of the age-old debate in the Bitcoin community regarding scalability. As many in the community had noted as early as in 2010, the usability of Bitcoin would be threatened without some tangible change was made to the consensus rules.
Philosophically and technically, this argument elicited a variety of different viewpoints, arguments, and criticisms. Some individuals felt that the best way to increase the scalability and usability of Bitcoin would be to increase the block size. If you used Bitcoin in December of 2017, you probably noticed that the fees were exorbitantly high.
The reason for this was because there was not enough room within the blocks for miners to include all the TX that were being sent to the network. This meant that increasingly higher fees had to be paid in order to incentivize the miners to include one’s TX to be included. In some cases, TX fees needed to be in excess of $20 if one wanted a realistic opportunity to have their TX confirmed.
Many in the Bitcoin community saw the inevitability of this fate years prior. Thus, many had advocated for increased block size. However, there were was a stronger segment of the community that was against such increases. This increase, they argued, would harm the stability of the network because it would reduce the # of full nodes on the network.
Why would they think that?
This criticism was actually noted directly in the BIP101 through the statement:
As noted earlier, only full nodes can validate blocks. By increasing the block size, one must also increase their computer/device’s memory and technical capacity. Opponents to the increase of Bitcoin’s block size argued that this increase in capacity would reduce the number of full nodes on the network, subsequently making the network less secure.
Below is an image detailing the requirements necessary to run a full node:
Proponents of the increase in block size argued that the increase in technology over time would mitigate these necessary increases in computing power and network capabilities of those who wished to run a full node.
Bitcoin XT was launched before the Bitcoin network had truly reached a boiling point on this issue.
Mike Hearn, the most outspoken advocate for the increase in block size at that time, spearheaded the Bitcoin XT movement. However, Gavin Andresen also joined forces with Mike Hearn later on and they both partnered up to develop Bitcoin XT.
Who are Mike Hearn and Gavin Andresen?
For those unfamiliar with those two names, both Mike Hearn and Gavin Andresen were instrumental in assisting the development of Bitcoin from its earliest stages. Gavin Andresen, who’s noted for a number of things, is perhaps most famous for being the last person that Satoshi ever talked to.
Before Satoshi’s departure, Gavin, in many respects was the ‘point person’ for Satoshi in the weeks prior to his eventual disappearance. After Satoshi died, Gavin also took up the torch as the de facto ‘leader’ and ended up assembling individuals that would make the first incarnation of the ‘core’ team.
Hard Fork rules
According to another Howtotoken article that covered this issue briefly, the hard fork rules established by Bitcoin XT was an increase in the block size from the limit (still in effect) of 1 MB to 8 MB. However there are many other notable changes were introduced within the BIP101 as well. Namely:
- “The maximum size shall be 8,000,000 bytes at a timestamp of 2016-01-11 00:00:00 UTC (timestamp 1452470400), and shall double every 63,072,000 seconds (two years, ignoring leap years), until 2036-01-06 00:00:00 UTC (timestamp 2083190400).”
- “Deployment shall be controlled by a hash-power supermajority vote (similar to the technique used in BIP34), but the earliest possible activation time is 2016-01-11 00:00:00 UTC.”
- “This BIP proposes replacing the fixed one-megabyte maximum block size with a maximum size that grows over time at a predictable rate.”
According to Mike Hearn in his exit article from the Bitcoin world (which had a monumental impact on the community and signaled the “blowing up” point of this argument), he initiated the Bitcoin XT hard fork for the following reasons:
The reception from the community was poor at best. Mike Hearn summarized some of these community reactions in his exit article:
Brief research provides some strong evidence that any and all dissension against any block size increasing alternatives to Bitcoin was both fiercely and aggressively attacked, shunned, condemned, ridiculed, and excommunicated in the community. The vast majority of these measures were implemented by Theymos (a member of the community since 2010, who runs the Bitcoin reddit, Bitcointalk, and Bitcoin.org). Here are some examples of this censorship below:
- Theymos threatens to remove Coinbase entirely from /r/Bitcoin on Reddit as well as the bitcointalk forums if it dares support Bitcoin XT (alternative chain created by Gavin and Mike with bigger blocks to test community support for the idea).
- Petition to remove Coinbase from the ‘Choose Your Wallet’ page on GitHub for endorsing/running Bitcoin XT nodes.
- Shutting down all of the Bitcoin XT nodes.
- There is an active keyword list of words/topic/phrases that are automatically removed from the Bitcoin subreddit.
- Reddit CEOs ponder whether Theymos should be removed as moderator due to his active censorship of conflicting/competing ideas.
- More general information/dissection of Theymos’ censorship habits.
Ironically, at the time of writing, Vitalik issued a statement approximately 10-12 hours ago denouncing the censorship of different internet hubs that host Bitcoin as ‘deplorable’.
There were also multiple publications around the time of the hard fork release that reported that Bitcoin XT nodes and users were attacked en masse to disrupt the project.
However, to state that the community was devoid of support for Bitcoin XT would be inaccurate. There are numerous reports that attest to the relatively strong support behind the concept. Several corporations signaled their support for the project and many developers and miners were on board as well, in addition to Coinbase.
Without digging too much into unsupported theory, one could at least conclude that there was a segment of the Bitcoin community that not only strongly disliked the Bitcoin XT project but possessed enough power to effectively impede the progress of Bitcoin XT.
As you probably guessed from everything that was stated above, Bitcoin XT was effectively destroyed. At the time of writing, there are only 11 Bitcoin XT nodes in service.
If you look closely, you can see that there was very solid momentum at its onset, then the number of operating nodes crashed down by 60% before eventually being all but defunct by the middle of 2016, less than a year from implementation.
Despite the failure of Bitcoin XT, this did not discourage the community from attempting yet another hard fork of Bitcoin.
Mike Hearn actually alluded to this in his farewell piece:
Born in 2016, much of the same sentiment that manifested Bitcoin XT was also prevalent in Bitcoin Classic, as Mike Hearn noted above.
The website itself, www.bitcoinclassic.com, still possesses the coin’s original initiative. See the screenshot from the homepage below:
In terms of the developers, the site states:
Bitcoin Classic was an international team co-operating on development and distribution of free, open source software tools that build and support the Bitcoin network
- In terms of changes to the consensus rules, Bitcoin Classic introduced a more tempered block size increase of 2MB rather than the initial 8 MB proposed by Bitcoin XT.
- In addition, it modified the TX format to something called ‘FlexTrans’ to address the issue of transaction malleability (something that SegWit is supposed to address as well).
- ‘Xthin-blocks’ was a new implementation that was designed to address the ‘block propagation’ issue still present in Bitcoin today.
Bitcoin Classic eventually introduced the idea of block-size voting, which relies on the principle of a variable block size.
However, in the end, the project was shut down voluntarily in favor of advocating for the Bitcoin Cash project, which the development team states that it believes will fulfill Satoshi’s original vision as expressed in his whitepaper release.