Bitcoin and its Forks
In the world cryptocurrencies, we often hear about a fork, a hard fork, or even a soft fork to denote a variety of things. Today we will try to demystify this terminology by studying the comprehensive history of Bitcoin forks.
What is a fork?
The word fork is an English word meaning “branch”, or “fork”. The term is especially used in software development to refer to a program derived from source code: for example, LibreOffice is an offshoot of OpenOffice.
In the world of cryptocurrency, the word “fork” can sometimes also be understood in the sense that Litecoin and Dash are forks of the Bitcoin source code. Unfortunately, this term covers two other meanings, and all of this can be confusing.
“Fork” is a branch of the chain
The first meaning of the word fork is a branch from the blockchain. This type of branching occurs regularly in Bitcoin, and is perfectly normal and safe, especially when two miners simultaneously find a block on their side. The two blocks found are completely valid, but the nodes of the network (considering, for example, that only the first block received is correct) do not have the same vision of the chain, which creates a conflict in the network and instantly separates it.
The situation resolves quickly when a new block is discovered: then the network selects the longest chain (the chain with the largest accumulated amount of work), and the isolated block becomes invalid.
Network conflict caused by a common branch of the chain
But the branching of the chain can also be caused by the incompatibility of the consensus rules, that is, the rules that determine the validity of transactions and blocks used by nodes. Then we talk about a hard fork or a “hard” branch: then the separation becomes permanent, the two chains are doomed to coexist, and each continues to work.
Changing the Consensus rules
Under the metonymy, the term fork has come to mean any modification of the consensus rules that can lead to a branching of the chain, and a permanent separation of the network. Note that this is possible, and that these updates will not necessarily lead to an effective branch afterwards.
In this sense, a hard fork is an update without backward compatibility, which forces all nodes of the network to update themselves during the change, risking not recognizing the new chain as correct. A hard fork can be extensive, that is, it can expand the rules of consensus: an example of this is the problem of increasing the maximum size of the blocks of the PTS. But it can also be two-sided, creating incompatibility on both sides, which is usually chosen by developers.
On the other hand, a soft fork is a change that is backward compatible for non-mining network nodes and that is likely to be forked only if it is not supported by most mining capacities. The soft fork is necessarily restrictive: it is a limitation of the consensus rules, since there may be a reduction in the block size limit or the addition of a new rule.
Non-conflict forks
Consensus forks can be divided into three different categories: they may arise by chance, they may be updated with the almost unanimous consent of the community, or they may cause controversy when they are the subject of discussion. All these forks can be found on Coinmarketrate.com , in a detailed description.
The history of BTC is marked by these three types of forks. We’ll talk about the first two categories first before focusing on the third one, which naturally generates the most noise.
Random branching
During its existence, Bitcoin has experienced two unforeseen forks that led to the branching of the chain and the separation of the network.
The first random branch was dated August 15, 2010 and is known as the “value overflow incident overflow”. This manifested itself as a memory overflow error, which allowed the creation of several billion BTC in one transaction! Subsequently, the problem was solved with the help of a soft fork, which canceled the block containing the erroneous transaction.
Thus, about 51 blocks would have been invalidated due to the application of the patch: hence, this branch would have lasted about 8 hours and 30 minutes.
The second accidental branching occurred on March 11, 2013 as a result of an update of the database system that moved from Berkeley DB to LevelDB. BerkeleyDB used the default limit (“lock limit”), which LevelDB did not comply with: therefore, migration, unfortunately, was a hard fork.
Updates
Many changes to improve the protocol were applied to Bitcoin in the early years of its existence. Most of these updates have taken the form of soft forks.
First of all, one of the first major updates of BTC is the reduction of the block size limit, which was initially secretly set at 32 MB, and since September 12, 2010 has been reduced to 1 MB by Satoshi Nakamoto himself.
Then, a little later, the cult update was that the P2SH address type (BIP16) was integrated into the PTC: this format facilitates the implementation of smart contracts. This is the first soft fork activated by miners (MASF), whose application depends on reporting.
Then, to illustrate the fact that the update does not always go perfectly, we can turn to a soft fork that requires compliance with the signature encoding standard “sPecial Coding Rules” (BIP66), which was applied on July 4, 2015.
Some miners did not update the protocol despite the fact that they signaled their consent, and mined 6 blocks, violating the new rule. They were eventually invalidated by the principle of the longest chain.
Finally, 3 major updates were carried out, which ultimately facilitated the implementation of the Lightning network. OP_CHECKLOCKTIMEVERIFY (BIP65) opcode was implemented in 2015 to allow the use of absolute time locks in the Bitcoin programming language.
In 2016, it was the turn of the OP_CHECKSEQUENCEVERIFY code and other improvements (BIP68, BIP112, BIP113) to integrate relative time locks. The SegWit version (BIP141) correcting transaction flexibility was finally implemented on August 24, 2017.
The next update is Taproot, expected in November of this year.
Forks for litigation
However, changes in the rules of consensus do not always occur harmoniously: they can become a source of conflict and divide the community. Thus, the controversial branches of Bitcoin were created in these conditions of turbulent governance, that is, due to the difficulties faced by various participants in reaching an agreement.
These splits have arisen, in particular, due to the debate about the scalability of the asset. In the period from 2013 to 2017, the question arose about how scaling should occur: should it occur mainly in the chain (as discussed from the very beginning) or should it occur mainly outside the chain with the help of superimposed solutions, such as the Ligthning network?
History shows that the vast majority in the crypto community chose the second alternative and that Bitcoin is expected to exit the chain today. But that wasn’t always the case, and the scalability debate was a source of great tension in the community before coming to a more stable situation today.
Effective splits
Let’s now move on to the actual split. The most famous example is probably Bitcoin Cash, which separated from the main network on August 1, 2017 due to the refusal to switch to SegWit (which is considered too complicated), and due to the desire to significantly increase the transaction capacity of the chain.
This two-way hard fork, dubbed the “user activated hard fork” (UAHF), allowed to increase the size limit to 8 MB and change the signature method. The BCH protocol was followed by two main implementations: Bitcoin ABC at the source of the fork and Bitcoin Unlimited, adapted to this new set of rules.
After the hard fork, Bitcoin holders ended up owning BCH in the same proportion: that’s why if you owned BTC before the hard fork, you had the same amount of BCH after it. The project has achieved some success, in particular, thanks to the cancellation of SegWit2x, which brought back many people who want to increase network bandwidth, such as Roger Ver.
But the split did not end there: after 11 months, the VSN network was split again. It continued to exist, but, on the other hand, Bitcoin SV (“Bitcoin Satoshi Vision”) was born.
Again, this separation was caused by a protocol management issue: part of the community was really against the update, which was supposed to happen on the same day, and included a new OP_CHECKDATASIG (OP_CHECKDATASIG), and the canonical order of transactions.
So BSV was born. This branch of Bitcoin, represented by the flamboyant and outrageously scandalous personality Craig Wright, aims to restore the alleged “vision of Satoshi Nakamoto” by restoring the basic protocol. Scale Scale Protocol supporters, who are convinced that the protocol scales perfectly from the very beginning, and oppose the supporters of the BCH who believe that the protocol must be significantly changed in order for it to have a chance to scale.
Note that these various divisions are far from being equal to Bitcoin from an economic point of view: the price of BCH today is 3% of the price of BTC, and the price of BSV is 1.5%.
Opportunistic forks
Observing the success of the BCH, there have been many “opportunistic” Bitcoin forks in two years. The first of them is Bitcoin Gold, created on October 24, 2017. Unlike BCH and BSV, Bitcoin Gold is a system that has taken over the base code and the register of Bitcoin owners on block 491 407.
Bitcoin Gold was introduced as an offshoot of the bitcoin-ASIC resistance, and its mining is carried out using a GPU.
After that there were several more forks, but they were not successful.
Thus, the history of Bitcoin is full of events, simply called forks, whether they are ordinary, random, coordinated or controversial.