Language certainly is an important part of the life of a human. The Sapir-Whorf hypothesis states that the structure of a language determines or greatly influences the modes of thought and behavior characteristic of the culture in which it is spoken. In my study of mathematics, we would often joke that we were really studying language.
In all areas of language, we need clear definitions. The same holds true for math; every concept of mathematics needs to be clearly defined. Without clear definitions, we are forever doomed to nonsensical communication. Some proofs require clear definitions of new objects.
Language can also be used to obfuscate, complicate, or hide information. Presenting information in a confusing or contradicting way can influence an argument, and ultimately be used to try to control the thoughts of others. The current prevailing monetary system is riddled with terms that deliberately hide what’s really being done. New monetary systems should avoid duplicating this aspect of their central banking predecessors; transparency and clarity should be valued traits.
Currently, I find that the meaning of the word fork is either not clear to people or purposely being blurred. The meaning of fork that I find blurred is the same meaning the word has when describing a fork in the road. A fork is a situation where one path or way becomes two paths going in different directions. An open source programing project could fork when it is found that there is another purpose that it could apply to. A project could also fork when there is a disagreement of which way it should go. Forking is the ultimate “Why not both?”
The word fork can also apply to a blockchain. Any block in a chain has a previous block and a next block. When there are two possibilities for the next block, that could be considered a fork. Usually, it’s called a fork in the chain if people are actively building on both possible blocks. If there is a next block which is ignored, that is usually called an orphan block. If an orphan block has a handful of blocks built on top of it but is abandoned, it’s called an orphan chain.
The word fork can also be applied to a protocol. A protocol is “a set of conventions governing the treatment and especially the formatting of data in an electronic communication system.” Any blockchain is governed by a protocol. It is perhaps unfortunate that the word fork is also used to describe a change in the protocol.
The protocol of a blockchain currently is enforced by people running software that stores the whole chain. A computer on the network running this software is called a node. Each node communicates with the others and collectively they enforce the protocol. Most confusion about forking is on this level: the forking of a protocol.
Forks in a protocol can be divided into two types: hard forks or soft forks, though I would say that the difference between them seems to have become blurred. The difference between hard forks and soft forks for me, at least, has always been: A hard fork requires all participating nodes to upgrade or change, while a soft fork requires some nodes to change or upgrade, but can still work with existing nodes that do not upgrade or change for any reason. If a protocol changes in a way where it’s not backwards compatible, then it’s a hard fork.
One example of a hard fork in the Bitcoin protocol was the introduction of multi-signature addresses, which require two or more people to agree to spend any funds at the address. The original client would not recognise these addresses or transactions from them; their introduction required a hard fork in the protocol. No one objected to this change and the old protocol without multi-sig ability was abandoned. Another example of a hard fork happened when Ethereum decided to invalidate transactions from the failed DAO contract last July. Some people considered these transactions to be similar to stealing and this was the motivation for this fork. A minority disagreed with this protocol change, and now there are two active forks in the Ethereum chain: Ethereum (ETH) and Ethereum Classic (ETC).
An example of a soft fork was the reduction in Bitcoin transaction fees from 0.01 BTC to 0.0005 BTC. An early rule in the Bitcoin protocol was that transactions that did not qualify for a free transaction needed at least a fee of 0.01 BTC. Nodes enforced this restriction by not rebroadcasting transactions that did not meet this criterion. This fork was rolled out in two stages. The first stage was a program that would rebroadcast the lower fee transactions, but only construct transactions with the higher 0.01 limit. The second stage was a program that would rebroadcast and create the 0.0005 BTC transactions. As long as the new client was likely to connect to one of the newer nodes and some miners accepted these transactions both protocols could work side by side with the network functioning as intended.
An example of a chain fork from Bitcoin history is when the formatting used to store the blockchain changed. These changes allowed nodes to store and access the blockchain more efficiently. This change required a re-syncing of the nodes from scratch, but there were no protocol changes. (That is, there was no change in the way nodes talked to each other or to the rules they enforced.) However, there was an unforeseen bug in the old client that caused a block considered valid by the newer nodes to be misinterpreted by the old nodes. The result was old nodes built on a different fork of the chain. This fork was unscheduled and caused many people to be uncertain about Bitcoin, at least for a spell. With the current Bitcoin network congestion, such an unscheduled fork could have more severe consequences.
The cryptocurrency community throws the word fork around a lot, and in different contexts. But in the examples given above, only the Ethereum/DAO fork actually meets my original definition for the word fork: “a situation where one path or way becomes two paths going in different directions.” This creates an environment where confusion can result. A better solution would be to create or select new words to describe events like these where the path may be redirected, but not necessarily “forked” from one path into two.
Want to get all the latest cryptocurrency news & fintech updates?
Tune in to the Neocash Radio podcast EVERY Wednesday night and
RETWEET ALL THE THINGS @NeocashRadio!