A soft fork is a change to a blockchain protocol that restricts the ruleset enforced by transaction validators. Unlike in the case of a hard fork, a soft fork gives validators the choice of whether or not to upgrade their nodes in order to enforce the soft fork changes.