Fork (blockchain)

Fork (blockchain)
In blockchain, a fork is defined variously as:
"What happens when a blockchain diverges into two potential paths forward"
"A change in protocol", or
A situation that "occurs when two or more blocks have the same block height"
Forks are related to the fact that different parties need to use common rules to maintain the history of the blockchain. When parties are not in agreement, alternative chains may emerge. While most forks are short-lived some are permanent. Short-lived forks are due to the difficulty of reaching fast consensus in a distributed system. Whereas permanent forks (in the sense of protocol changes) have been used to add new features to a blockchain, they can also be used to reverse the effects of hacking such as the case with Ethereum and Ethereum Classic, or avert catastrophic bugs on a blockchain as was the case with the bitcoin fork on 6 August 2010.
The concept of blockchain technology was first introduced in 2008 by an unknown person or group of people using the pseudonym “Satoshi Nakamoto” in a white paper describing the design of a decentralized digital currency called Bitcoin.
Blockchain forks have been widely discussed in the context of the bitcoin scalability problem.
Types of forks
Forks can be classified as accidental or intentional. Accidental fork happens when two or more miners find a block at nearly the same time. The fork is resolved when subsequent block(s) are added and one of the chains becomes longer than the alternative(s). The network abandons the blocks that are not in the longest chain (they are called orphaned blocks).
Intentional forks that modify the rules of a blockchain can be classified as follows:
Hard fork
A hard fork is a change to the blockchain protocol that is not backward compatible and requires all users to upgrade their software in order to continue participating in the network. In a hard fork, the network splits into two separate versions: one that follows the new rules and one that follows the old rules.
For example, Ethereum was hard forked in 2016 to "make whole" the investors in The DAO, which had been hacked by exploiting a vulnerability in its code. In this case, the fork resulted in a split creating Ethereum and Ethereum Classic chains. In 2014 the Nxt community was asked to consider a hard fork that would have led to a rollback of the blockchain records to mitigate the effects of a theft of 50 million NXT from a major cryptocurrency exchange. The hard fork proposal was rejected, and some of the funds were recovered after negotiations and ransom payment. Alternatively, to prevent a permanent split, a majority of nodes using the new software may return to the old rules, as was the case of bitcoin split on 12 March 2013.
A more recent hard-fork example is of Bitcoin in 2017, which resulted in a split creating Bitcoin Cash. The network split was mainly due to a disagreement in how to increase the transactions per second to accommodate for demand.
Soft fork
A soft fork is a backward-compatible change to the blockchain protocol that allows new rules to be introduced without requiring all users to upgrade their software. In a soft fork, a majority of the network’s miners implement the new rules and begin following the updated version of the blockchain. The rest of the network can continue to follow the old version of the blockchain, but they will be unable to validate new blocks that follow the updated rules. Because a soft fork is backward-compatible, it does not result in the creation of a new blockchain or the splitting of the network. Instead, it allows the network to gradually transition to the new rules while still maintaining compatibility with the old rules.
Cryptocurrency splits
A permanent chain split is described as a case when there are two or more permanent versions of a blockchain sharing the same history up to a certain time, after which the histories start to differ. Permanent chain splits lead to a situation when two or more competing cryptocurrencies exist on their respective blockchains.
Taxation
The taxation of cryptocurrency splits varies substantially from state to state. A few examples include:
Australian Taxation Office (ATO)
The ATO does not classify cryptocurrency splits as taxation events. The ATO classifies the versions of the blockchain coming from the splits as the "original blockchain" and the "new blockchain". In relation to the cost base, the cryptocurrency on the original blockchain should be assigned all the original cost base, while the cryptocurrency on the new blockchain should be assigned cost base zero.
HM Revenue & Customs (HMRC)
The UK HMRC does not classify cryptocurrency splits as taxation events. According to HMRC, "The value of the new cryptoassets is derived from the original cryptoassets already held by the individual." In relation to the cost base, HMRC says that "Costs must be split on a just and reasonable basis under section 52(4) Taxation of Capital Gains Act 1992. HMRC does not prescribe any particular apportionment method. HMRC has the power to enquire into an apportionment method that it believes is not just and reasonable."
As of September 2021, it is believed that more than 2.3 million people in the UK own a cryptoasset. As these assets don't physically exist, HMRC has been forced to issue guidance stating that cryptoassets will follow the residence of the beneficial owner. So, if you live in the UK and trade cryptoassets, no matter where these assets are “held”, you will be liable to UK taxes. However, there is a growing belief that this guidance may well be challenged in the courts. This could impact future HMRC tax income from those not domiciled in the UK for tax purposes.
"
Internal Revenue Service (IRS)
The US Internal Revenue Service (IRS) classifies cryptocurrency splits as "airdrops" and as taxable events. According to the guidance published by IRS, provided the taxpayer is in possession of the keys, they are obliged to pay tax for the new cryptocurrency using the fair market value of the cryptocurrency as their income.
See also
List of bitcoin forks
Notes
References
Blockchains