Форк — изменение правил сети, приводящее к расхождению версий программы. Слово описывает и техническое обновление, и раскол сообщества — разница в том, совместимы ли новые правила со старыми.

Мягкий и жёсткий

Мягкий форк сужает правила: блоки, созданные по новым правилам, остаются действительными для старых узлов. Сеть не делится, обновление желательно, но не обязательно. Жёсткий форк расширяет правила: старые узлы новые блоки не принимают. Если обновились все — сеть просто перешла на новую версию; если нет — образуются две цепочки с общей историей.

Что происходит при расколе

Балансы дублируются: владелец монет до раскола получает их в обеих сетях. Отсюда и риск атаки повтора транзакции — подпись из одной цепочки может оказаться действительной в другой, если не введён идентификатор сети.

Как принимаются такие решения

Через управление вне блокчейна: обсуждение, реализация в коде, добровольное обновление узлов. Голосования держателей монет здесь обычно нет — согласие выражается тем, какую версию программы запускают операторы. Отдельный случай — форк DAO, где расходятся не правила сети, а организация.