In relation to blockchain technology, a soft fork involves introducing changes to a blockchain’s underlining protocol or software that are minor in nature.
A fork, in programming terms, is just a modification to the code.
These software updates can take the form of new blockchain functionality, upgrades to network performance, enhancements that correct security issues, or even changes to the consensus rules that govern how blocks are created and validated on a blockchain.
Forks are necessary for providing decentralized blockchains a way to make changes to the blockchain since there isn’t a central authority governing all aspects of blockchain development and evolution.
Software changes can be minor in scope or they can dramatically alter the original ruleset that governs how a blockchain operates.
A soft fork is a minor change to the blockchain software that can easily be implemented into the existing blockchain without affecting or changing any of the old rules that existed before the fork.
This makes a soft fork backward-compatible, meaning that node operators who don’t upgrade their software can still interact on the same blockchain with node operators who do upgrade.
Network participants – developers, miners, and other node operators – who don’t upgrade will still find new blocks created after the fork as valid.
Since soft forks deal with minor changes only, soft forks don’t require all miners and node operators on the network to agree to run the new fork.
Only a majority is needed, making it faster to implement soft fork upgrades without causing significant issues with the entire node community.
After a hard fork occurs, two distinctly separate blockchains operating on their own now exist. Nodes that performed the hard fork are on one blockchain with the new rules, and the nodes that didn’t perform the hard fork remain on the original blockchain with the original rules.
There is no communication between the hard fork nodes and the non-hard fork nodes after.
The two networks will run in parallel, but any new blocks are that created will only exist on their respective blockchain.
An example of a real-world soft fork on the Bitcoin network is the Segregated Witness (SegWit) fork.