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