What is a Fork?
There is a plethora of terms one must learn to understand the crypto economy; it can seem like a new language at times. Dapps? Blockchain? Tokens? Securities tokens? Consensus? HODL? At times, it takes a dictionary and a tech-savvy teen to decode a typical crypto community post.
One term that may be giving you some trouble is forking. This term typically comes up when a new crypto asset is announced or following the result of a consensus vote, but what does it means? This article will attempt to explain why it is important to know what a fork is.
What is a Fork?
Most people see a fork as being an eating utensil, an alternative to eating with chopsticks or with your fingers. There is another sense of the word, as in a divergence in a path. A fork in the road or a fork in the river indicate that a choice must be made to proceed; should one go left or should one go right?
With blockchains, the same is true. In the simplest terms, a crypto fork is a disagreement, permanently etched in code. It represents a fight where the token or coin failed to reach consensus, and as a result, the two sides opted to act instead of “talk it out.”
A fork is what happens when the system breaks down, either intentionally or incidentally.
To understand this, one must look at how blockchains work. A blockchain is a connected series of cryptographically-encoded records. These records form a chain based on a Merkle tree where every successive block contains the encoded hash of the previous block. The consensus protocol determines which block rightfully is the successor.
A common misunderstanding with blockchains is that only one block is connected to the chain per link. The truth is that many blocks connet to the chain at each level, and each of these blocks have blocks that link to them. As mining is a competitive activity, there are many “runners-up.” As the connector to the chain is included in the new block itself, each of these blocks “connect” to the chain.
It is up to the consensus protocol to determine which of these blocks is the “official” one. The remainder – orphans – are treated differently depending on the blockchain. For bitcoin, for example, the “orphans” – or “stales” – with inferior proofs-of-work are ignored. “Orphans” in Ethereum – called “uncles” – however, are used to help improve transaction times and still receive mining rewards despite not being “official.”
“Orphans” can also be the results of a failed attempt seize control of the blockchain.
However, when the consensus protocol disagrees which block is the “official” one, forks happen. This can be because of a disagreement in a change of protocol, or because of an intentional software shift, or by malicious means. Despite the means, two “official” blocks are named. This creates two new branches, with “official” blocks being named by that branch’s version of the consensus protocol. Each of these branches can be considered a separate blockchain – depending on if the fork is “hard” or “soft” – with both sharing the blocks before the protocol change. All bitcoin clones, for example, share bitcoin’s “genesis block” as the first block of their respective blockchains.
With bitcoin, for example, there have been six forks:
- August 2015: Bitcoin Core (the network’s operating software) forked with Bitcoin XT over disagreements about block size,
- February 2016: Bitcoin Core forked with Bitcoin Classic over disagreements about block size,
- May 2017: Bitcoin Core forked with Bitcoin Unlimited over disagreements about block size;
- August 2017: Bitcoin blockchain (due to blockchain code change and not a consensus software change) forked with Bitcoin Cash over disagreements about block size,
- October 2017: Bitcoin blockchain forked with Bitcoin Gold over proposed switch from Application-Specific Integrated Circuits (ASICs) for mining to Graphics Processing Units (GPUs), and
- February 2018: Bitcoin blockchain forked with Bitcoin Private over should users be able to cloak transaction metadata.
There are “lesser” forks or intentional deviations of the Bitcoin Core software – as Bitcoin Core is open-source – to create a new coin. This includes Litecoin and Dogecoin (which is a fork of Luckycoin, which is a fork of Litecoin). Most bitcoin derivatives, however, involve new implementations of the respective blockchains.
There are four types of forks: hard forks, soft forks, software forks (permanent and temporary), and a user-activated soft fork.
The most common type of fork is a hard fork. Per Investopedia, “A hard fork (or sometimes hardfork), as it relates to blockchain technology, is a radical change to the protocol that makes previously invalid blocks/transactions valid (or vice-versa). This requires all nodes or users to upgrade to the latest version of the protocol software. Put differently, a hard fork is a permanent divergence from the previous version of the blockchain, and nodes running previous versions will no longer be accepted by the newest version. This essentially creates a fork in the blockchain: one path follows the new, upgraded blockchain, and the other path continues along the old path. Generally, after a short period of time, those on the old chain will realize that their version of the blockchain is outdated or irrelevant and quickly upgrade to the latest version.”
The most infamous hard fork is the Ethereum Classic fork. The fork involved the contentious decision to restore Ethers stolen from the DAO, a venture capital fund-running decentralized autonomous organization. “The DAO’ is the name of a particular DAO, conceived of and programmed by the team behind German startup Slock.it – a company building ‘smart locks’ that let people share their things (cars, boats, apartments) in a decentralized version of Airbnb,” blockchain strategist David Siegel wrote in an editorial. “The DAO launched on 30th April, 2016, with a 28-day funding window. For whatever reason, The DAO was popular, raising over $100m by 15th May, and by the end of the funding period, The DAO was the largest crowdfunding in history, having raised over $150m from more than 11,000 enthusiastic members. The DAO raised far more money than its creators expected. It can be said that the marketing was better than the execution, for during the crowdsale, several people expressed concerns that the code was vulnerable to attack.”
“Unfortunately, while programmers were working on fixing this and other problems, an unknown attacker began using this approach to start draining The DAO of ether collected from the sale of its tokens. By Saturday, 18th June, the attacker managed to drain more than 3.6m ether into a ‘child DAO’ hat has the same structure as The DAO. The price of ether dropped from over $20 to under $13. Several people made attempts to split The DAO to prevent more ether from being taken, but they couldn’t get the votes necessary in such a short time. Because the designers didn’t expect this much money, all the ether was in a single address (bad idea), and we believe the attacker stopped voluntarily after hearing about the fork proposal.”
The decision to restore the ethers violate a key tenet of cryptocurrency: that the code is law and actions needed to correct “lawful” actions, per the consensus protocol, should be avoided. By taking an action more than the consensus protocol, the rules of the game are being changed mid-game, opposition to the move argued. When the blockchain was changed to reverse the transaction. A vocal minority (about three percent of the community) continued to follow the original blockchain, forming Ethereum Classic.
There is no way to bring back together Ethereum and Ethereum Classic. Additionally, a user cannot negotiate between the two blockchains with the same token – the original Ethereum token split along with the blockchain. A hard fork always results in a new token and a new blockchain – even if the two blockchains share the same blocks before the split.
In the case of the DAO hack, on the original blockchain, the tokens were not restored, and the hack was considered an unethical, but legal transfer. The stolen ethers were not exchanged to ETC. The new Ethereum blockchain invalidated the transactions, restoring the tokens to their original owners.
Conversely, a reversible fork is called a “soft fork.” “In terms of blockchain technology, a soft fork (or sometimes softfork) is a change to the software protocol where only previously valid blocks/transactions are made invalid,” per Investopedia. “Since old nodes will recognize the new blocks as valid, a softfork is backward-compatible. This kind of fork requires only a majority of the miners upgrading to enforce the new rules, as opposed to a hard fork which requires all nodes to upgrade and agree on the new version.”
Unlike a hard fork, which rejects nodes that choose not to follow the consensus protocol change, a soft fork only compromises the nodes. “New transaction types can often be added as soft forks, requiring only that the participants (e.g. sender and receiver) and miners understand the new transaction type. This is done by having the new transaction appear to older clients as a “pay-to-anybody” transaction (of a special form), and getting the miners to agree to reject blocks including these transaction unless the transaction validates under the new rules. This is how pay to script hash (P2SH) was added to Bitcoin.”
The way to think about a soft node is like this: a cryptocurrency issues a new protocol rule. The individual node can opt to not follow the new rule – either intentionally or due to ignorance. If that node opts not to follow the new rule, its blocks are automatically made stale and transactions verified by it are rejected by the consensus. As stated previously, this does not stop the node’s blocks from being accepted according to the old protocol and forming a new chain. Once the node adopts the rule, however, its blocks will be recognized by the new consensus and the node’s “rebel chain” will be abandoned.
The DAO hack could have been solved by a soft fork, invalidating the affected tokens. Doing so, however, would create a worse security loophole.
Software forks – also known as a “git fork” – are intentional deviations from the consensus protocol and the operating software to develop new protocols and software or to test changes to the existing protocol. These can be temporary, as in protocol changes to the existing blockchain, or permanent, as in the development of a new blockchain.
Software forks are always suggestions. Developers cannot mandate a software fork to be embraced as changes to the consensus protocol. Software forks can be adopted or rejected at the community’s discretion.
Ethereum, for example, started as a software fork of bitcoin before permanently separating itself. It would return to bitcoin as the first ICO.
User-Activated Soft Forks
The most controversial type of fork is a user-activated soft fork, where a soft fork is pushed through without majority approval of the mining nodes, who are responsible for transaction verification. Instead, the fork seeks the approval of the consensus of full nodes. These nodes must represent an economic majority on the network. A UASF was used to push through the P2SH soft form for bitcoin (BIP16, the Pay to Script Hash). This was proposed to push through SegWit via BIP148.
“BIP148 is a UASF that is designed to cause the existing SegWit [Miner Activated Soft Fork] deployment to cause activation in all existing SegWit capable node software (which currently is 80% of the network nodes),” reads the UASF website. “How does BIP148 Work? From August 1st, 2017, miners are required to signal readiness for SegWit by creating blocks with the version bit 1. This will cause all SegWit ready nodes, which make up over 80% of the network, to activate and begin enforcement. “
“BIP148 requires support from the economic majority, particularly exchanges and wallets. If this does not occur, node software supporting BIP148 should not be run after August 1st as it will cause a chain split leading to the abandonment of BIP148. There are strong economic incentives in the Bitcoin system for nodes to cooperate and remain in consensus to prevent chain splits. If the economic majority is signalling as of August 1st, miners have many incentives to follow along. Not following along would make it difficult to sell coins mined after August 1st as the blocks would not be accepted by the economic majority. Essentially, miners would be producing an altcoin not recognized by users and exchanges, making them less useful and in lower demand.”
“Some miners could opt to ignore the BIP148 rule and attempt to split the chain, but this would require a majority of miners who would be out of consensus from the rest of the economic majority. If a majority of hash power follows BIP148, all nodes will follow the chain regardless of if they are running BIP148. Non-compliant blocks will be orphaned. All SegWit nodes will eventually activate SegWit. If a minority of the hash power (under 51%) follows BIP148, nodes running BIP148 will be fine, but those not running BIP148 will be out of consensus with the rest of the economy. In this scenario, the more of the economy that runs BIP148, the better. Miners will find it difficult to sell their coins leading economically motivated miners to start enforcing BIP148.”