As many of you might be reading through the panic stories of what’s going to happen to Bitcoin on August 1st 2017. Most common terms you hear on these articles is Soft Fork, Hard Fork, UASF(User Activated Soft Fork), Segwit2x. We, at confusedcoin have decided to help you folks to explain a little about forks.
What is a Fork
A fork: common man thinks about a ‘fork‘ from cutlery and slightly computer related guy thinks of a ‘seperation’.
The term fork, which is used in myriad of places in the crypto-currency world might keep you wondering what this fork actually is.
When say, diverse participants are made to agree on common rules, a technical event called the fork happens. Say, when blockchain moves forward and diverges into 2 different paths, a fork happens. This divergence may be due to different reasons like a networks transaction history or a new software rule which decides on what could make a transaction valid.
This fork happens often when two people mining at nearly the same time find a block. The subsequent blocks get added to one which solves the ambiguity but when the litter forms the longest chain, the latter block gets abandoned or orphaned.
The event of fork can also happens outside the network when people who are handling the network introduce new rules to decide for the transaction’s validity.
This concept of fork is already happened many times in the bitcoin industry, terms like the hard fork and soft fork are the terms we often hear.
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 will force the old version to upgrade to the new version.
When there is a new version or an upgrade release or done to a software, it introduces new rules which might turn out to be incompatible with the network. This cause a hard fork.
Say you are introducing a new rule, adding one more to the already existing rules might make all the new transactions invalid, since the block which is running on old transaction wouldn’t recognize the new upgrade. This is considered to be a hard fork.
A hard fork can be implemented when there is a security risk in the older versions and has to be corrected. This will force all the older version to upgrade to the new security upgrades.
Soft forks are used to implement new and upgraded functionalities that are backwards compatible.
A soft fork can also occur at times due to a temporary divergence in the blockchain when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.
Now assume with a software upgrade, you decide to reduce the size of the block. The previous non upgraded block will continue to mine and accept new transactions, but if it continues to mine taking in new transactions, it might diverge into another hard fork (split), this cause one block to continue while other just gets orphaned out. This in turn requires major hash power within the network.
Soft forks cannot be reversed without a hard fork since a soft fork by definition only allows the set of valid blocks to be a proper subset of what was valid pre-fork.
Soft fork has seen many successful software upgrades till date as it says its lower risk from splitting the network.