Blockchains need improvements and updates to improve their characteristics, all without interrupting the operation of the network or causing compatibility problems, to achieve this, there are Soft Forks, a small software update that allows users to continue operating even if they are not updated .
Lto blockchain as any type of software requires updates to continue working. With the updates, new improvements can be implemented in the network. These updates, if they do not alter the rules that break the operation of the previous version of the software, are called Soft Forks.
A Soft Fork is nothing more than an update to the program code that manages a blockchain to add a change, usually new functionality or bug fixes. But to be a soft fork it must remain compatible with the old blockchain.
It allows all participants to have implemented the new code or cannot operate on the network. Allowing them to operate with new blocks but without having the new improvements implemented by the update. If one of the network participants did not upgrade to the new version of the program, they could continue checking blocks without any problem.
For example, the update processes in Bitcoin are disclosed first in the BIP (Bitcoin Improvements Proposals - Bitcoin Improvement Proposals). Once approved, subsequent implementation is up to the developers of the Bitcoin clients.
Soft Fork Types
There are two types of Soft Fork which are:
- When most miners upgrade to enforce the new rules. This is called Soft fork activated by miner (MASF).
- When nodes. They coordinate to enforce the new rules, without the support of the miners. This is called User activated soft fork (UASF).
How does a Soft Fork work?
Soft forks are an update to how certain parameters of the blockchain are handled. All this without altering the basic rules of its operation. In this way, certain parts of the protocol are changed so that the updated nodes reject previously valid transactions. But nodes with old software validate both old and new format transactions. This makes it easier for the updated nodes to continue their work on the network.
However, this behavior makes the implementation of soft forks more complex. Developers must take care of compatibility with older software. Otherwise, they run the risk of mistakenly altering the entire network.
Let's take the Bitcoin update from Segregated Witness or SegWit. This was officially activated in block 481822 with a network acceptance of 99.95%. It is estimated that in February 2018 more than 30% of transactions are based on SegWit.
SegWit was a proposal from the company Blockstream and it has been widely implemented. Not only in Bitcoin but it has also been implemented in Litecoin and Vertcoin, among others. One of the reasons for creating this update is to minimally fix your Scalability that Bitcoin currently presents.
Even though not all Bitcoin nodes support SegWit yet, the network still works perfectly. This is because this soft fork is compatible with older software versions of full nodes.
In summary, soft forks are difficult to program and do not require consensus for their implementation. This often ends up fragmenting the level of software update on the network nodes, resulting in an undesirable scenario.