В технологии блокчейн жесткие и мягкие форки — это два различных метода обновления и совершенствования сетевых протоколов. Они имеют существенные различия в реализации, влияя на структуру и работу сети блокчейн.
Жесткий форк — «жесткий форк» относится к изменению правил, при котором новая версия сети больше несовместима со старой версией, что приводит к двум ветвям блокчейна (параллельным и независящим друг от друга).
Мягкий форк — «мягкий форк» относится к изменению правил, при котором узлы, реализующие новые правила, по-прежнему могут взаимодействовать с узлами, которые не приняли изменения. Новая версия сети остается совместимой со старой версией.
Жесткий форк | Мягкий форк |
Например, 2016 DAO | Например, 2017 Segwit |
Старая версия несовместима с новой сетью. | Новая сеть совместима со старой. |
Различные протоколы | Одинаковые |
Анализ ситуаций
Жесткий форк Мягкий форк
Например, если половина сетевых узлов хочет увеличить размер блока с 2 МБ до 3 МБ, отправка блока объемом 3 МБ узлам старой версии приведет к отказу, поскольку узлы старой версии имеют правило, предписывающее максимальный размер блока 2 МБ. В этом сценарии сетевой протокол разветвляется на два, каждый из которых использует разные валюты. Все балансы счетов клонируются из исходных записей в новую цепочку. Пользователи, имевшие 20 BTC до форка, будут иметь счет с 20 BTC и еще один с 20 новыми BTC в обеих цепочках.
Например, если исходный размер блока составляет 2 МБ, а теперь половина сетевых узлов вводит новое ограничение на размер блока 1 МБ и считает более крупные блоки недействительными, узлы старой версии по-прежнему могут получать или транслировать блоки. В этом случае новая сеть может охватывать все узлы, не будучи ограниченной версиями правил. Segregated Witness (SegWit) в Bitcoin является примером мягкого форка. Этот форк хитроумно ввел новый формат для блоков и транзакций. Узлы, которые не были обновлены, могут продолжать получать информацию о блоках, но не участвуют в проверке новых транзакций.
