Fork (blockchain)
In cryptocurrencies, a fork is defined variously as
- "what happens when a blockchain diverges into two potential paths forward"[1]
- "a change in protocol"[2] or
- a situation that "occurs when two or more blocks have the same block height"[3][lower-alpha 1]
Forks are related to the fact that different parties need to use common rules to maintain the history of the blockchain.[1] Forks (in the sense of protocol changes) have been used in order to add new features to a blockchain, to reverse the effects of hacking or catastrophic bugs on a blockchain as was the case with the bitcoin fork on 6 August 2010[5] or the fork between Ethereum and Ethereum Classic. Notably, blockchain forks have been widely discussed in the context of the bitcoin scalability problem.
Contents
Types of forks
Forks are further 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:[1]
Hard fork
A hard fork is a rule change such that the software validating according to the old rules will see the blocks produced according to the new rules as invalid. In case of a hard fork, all nodes meant to work in accordance with the new rules need to upgrade their software.[1]
If one group of nodes continues to use the old software while the other nodes use the new software, a split can occur. For example, Ethereum has hard-forked to "make whole" the investors in The DAO, which had been hacked by exploiting a vulnerability in its code.[6] 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.[7]
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.[8]
Soft fork
In contrast to a hard fork, a soft fork is a change of rules that creates blocks recognized as valid by the old software, i.e. it is backwards-compatible.[1] As for a hard fork, a soft fork can also split the blockchain when non-upgraded software creates blocks not considered valid by the new rules.[1]
User activated
<templatestyles src="Module:Hatnote/styles.css"></templatestyles>
A user activated soft fork (UASF) is a contentious concept of enforcing a soft fork rule change without the majority support of miners.[1]
See also
Notes
References
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.