It is highly probable that you have come across the word ‘fork’ in bitcoin news, as well as on online forums such as the Bitcoin SubReddit and BitcoinTalk and wondered what it means. Moreover, as a consequence of the ongoing debate on the block size, the word is making even more frequent appearances on these forums.
It happens to be one of those Bitcoin terms that would easily make you an outsider to a Bitcoin discussion.
You would, however, be surprised to learn that what ‘forking’ is not any much complicated. It is, in essence, the branching of the blockchain.
Of course, you cannot wrap your head around this concept until you understand the basics of how Bitcoin works, especially the blockchain.
And this is how that happens;
Every 10 minutes, all Bitcoin transactions taking place are bundled into a block. These blocks linked through a timestamp signing, form a chain (blockchain), which goes back to the first block ever created (mined). The timestamping makes it impossible to alter any part of it once the network confirms it.
Incomplete change of protocol hampers consensus
Before a new block is added to the blockchain, the Bitcoin network has to reach a consensus on based on predetermined rules. These rules are inbuilt in the Bitcoin core software, which every node in the Bitcoin network runs.
However, it is not at all times that a consensus is reached. Occasionally it does not happen, and two or more blocks are formed from the same bundle of transactions. This leads to branching or forking of the main chain to form two or more outgrowth chains.
In essence, if more blocks are added to each of the branches, the network does not only get two or more versions of the public ledger but also, in extreme cases, currencies.
Commonly, forks are caused by a change in the rules for mining blocks in the Bitcoin core software. This often happens as an unintended, especially, when some nodes in the Bitcoin network upgrade to a newer version of the bitcoin core software while others have not. Hence, the two sides of the system end up using different rules to mine.
A fork could be accidental or deliberate
For instance On March 11, 2013, a fork happened when the bitcoin network was trying to upgrade from Versions 0.7 to 0.8 of the Bitcoin Core software. The problem was quickly resolved by having all nodes downgrade to Versions 0.7.
There are cases, however, where forking is deliberate. This happens especially when the intention is to create an altcoin or if there is a disagreement within the core development team, and by extension the bitcoin community, on the direction the currency should take.
Ideally, every time two or more ledgers come up, some must die (be orphaned) to leave only one. This is achieved by all nodes on the network choosing the branch of the blockchain to mine next blocks on top of.
During the life of a fork, transactions could be included in the two or more ledgers. Therefore to the ordinary Bitcoin user might not observe or experience any significant changes.
However, merchants and exchanges will need to take measures to guard against double spend. It is possible, during this time, that some transactions will be collected are recorded in a block that will eventually become invalid and are not in the branch that will win.
The blockchain forking is of two kinds; hard forking and the soft forking.
A hard fork is one where nodes still running on an older version of the bitcoin core do not recognize the blocks mined by the newer version of the software. In other words, the change to the Bitcoin protocol is not backwards-compatible.
Indeed, this form of forking is the most likely to lead to a different set of blockchain and ultimately separate currencies.
It is important to note that when the word hard work is used it does not necessarily mean that the blockchain is splitting into two. It is also used to indicate that a change in the Bitcoin protocol may require all nodes in the network to upgrade.
Otherwise, those running on the old version will recognize as invalid blocks mined by those operating in the new version of the software, and the vice versa.
In contrast with the hard fork, a soft fork is where the upgraded version of the bitcoin core is compatible with the previous version. In this case blocks mined by the old version of the bitcoin core software do recognize as valid those mined by the newer version of the software. In other words, the changes made to the Bitcoin protocol are backwards-compatible.