В основе любого блокчейн-сервиса лежит программа. Программу иногда называют кодом, иногда алгоритмом, иногда протоколом. Код блокчейна, как и свою внешность, работу и гражданство можно изменять. Делается это для того, чтобы улучшить блокчейн, добавив в его код новые функции, или, наоборот, исправить какие-то недостатки. Такие перемены называются форками. Изменения, носящие косметический характер — это и есть софтфорк: они не затрагивают ядра кода, потому они и софт.
Софтфорк не требует от сетевого узла полной замены программного обеспечения. Происходит это потому, что изменения, которые привносит софтфорк, совместимы с изначальной версией протокола блокчейна. В случае хардфорка код меняется настолько радикально, что для его поддержки ноды должны полностью обновить софт.
Лучше всего объяснить суть софтфорка можно на примере SegWit — одного из решений по масштабированию сети Биткоин.
Идея SegWit заключается в том, что если из данных о транзакциях исключить подписи и переместить их в другое место, в блок можно будет поместить гораздо больше информации. Вследствие этого пропускная способность сети увеличится и все будут счастливы. SegWit2Х предусматривал абсолютно то же, но с небольшим дополнением — сперва из блока нужно убрать подписи, а затем увеличить размер самого блока в два раза. Переход на SegWit можно было осуществить без сильного изменения кода сети. Такой апгрейд системы и называется софтфорком. А вот увеличить блок, и при этом принципиально не изменить ПО, невозможно. Такое может произойти только в случае создания нового кода — хардфорка то есть.