Что такое хардфорк и софтфорк

fork_193.png

Форк (от английского слова fork — вилка или развилка) — явление, которое нередко сопровождает различные блокчейн-проекты.

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

Зачем нужны форки

Два момента, которые чаще всего указывают разработчики блокчейна в качестве причин форка, — это необходимость усовершенствования блокчейн-технологии и оптимизация сети. Самые распространенные изменения:

  • увеличение размеров блока с целью повышения пропускной способности (транзакций/сек.);
  • уменьшение комиссии за транзакции.

Кроме того, может быть утрачено единое видение проекта, могут возникнуть непреодолимые разногласия внутри сообщества блокчейн-проекта, и в этом случае форк также неизбежен. 

Разновидности форков

В зависимости от масштабов модификации протокола блокчейна, разделяют хардфорк (дословно с англ. — «жесткая вилка») и софтфорк (дословно с англ. — «мягкая вилка»).

  • Хардфорк — существенная модификация работы алгоритмов и кода блокчейна, в результате которой сеть либо полностью переходит на новую версию блокчейна, либо разделяется на две параллельных сети. Хардфорк часто используют для запуска новых криптопроектов (криптовалют).
  • Софтфорк — незначительное изменение протокола блокчейна, в результате которого появляется две версии протокола, существующие параллельно, то есть все узлы блокчейна работают в одной сети, но часть из них по старым правилам, а часть — по новым.  
fork_195 rus.png

Зачем нужен хардфорк

Код блокчейна может изменяться и дорабатываться: убираются существующие ошибки и уязвимости, добавляются обновления и улучшения.

Когда доработки серьезные, производится хардфорк. То есть, по сути, создание параллельной копии протокола, но с добавлением нового кода.

Хардфорки — это такая модификация, при которой узлы блокчейна (ноды) добавляют изменения, которые противоречат правилам, по которым работают старые ноды. Соответственно, новые ноды могут работать только с нодами, использующими новую версию блокчейна. Результат — блокчейн полностью переходит на новый протокол или делится на две отдельных сети: в старой действуют старые правила, в новой — новые.

Кроме того, все монеты этого блокчейна как бы раздваиваются, так как появляется новый блокчейн с новой монетой, с теми же самыми балансами на тех же самых адресах, что и в старом блокчейне. При этом биржевая ценность исходной монеты, как правило, делится на неравные доли: менее популярная монета, появившаяся в результате форка, стоит меньше более популярной исходной монеты.  

Такой подход позволяет сохранить стабильность текущего протокола блокчейна и избежать риска сбоев при обновлении.

Хардфорки проводятся для крупных обновлений, а также применяются для разрешения спорных ситуаций.

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

Участники хардфорка

Как правило, хардфорк — это результат длительных обсуждений, ведущих к консенсусу в сообществе блокчейн-проекта. Изначально выдвигается какое-то предложение, потом оно дорабатывается, тестируется и в конечном итоге реализуется.
В случае, когда обновление крупное и несет в себе не только технические изменения, но и, скажем, меняет токеномику криптовалютного проекта, обсуждение может выйти за рамки сообщества разработчиков блокчейна.

К примеру, в блокчейне Ethereum существует целая система по усовершенствованию сети (Ethereum Improvement Proposal).

Для активации хардфорка нужно не просто написать новый программный код, но и получить согласие на обновление большинства участников. Кроме разработчиков блокчейна также очень важно мнение валидаторов сети. Ведь именно от них зависит работа блокчейна, и если они будут не согласны с предложенным разработчиками обновлением, то просто не переведут на него свои вычислительные узлы.  

Важно понимать, что протокол блокчейна невозможно изменить без согласия сообщества, так как децентрализована не только сеть, но и программный уровень.

Блокчейн-проекты, образующиеся в результате хардфорков

Итак, если большинство участников блокчейн-проекта согласны с обновлением, сеть переходит на новый протокол. Если же единство мнения отсутствует, часть нод переходит на новую версию блокчейна, а часть работает по старым правилам. Результат — блокчейн разделяется на две цепи.

Для примера, крупнейшие хардфорки: Bitcoin Cash, Ethereum Classic, Merge.

Зачем нужен софтфорк

Софтфорк — вид форка, характеризующийся обратной совместимостью. То есть это такое изменение программного протокола блокчейна, после которого новые алгоритмы без проблем взаимодействуют со старыми.

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

Простыми словами: софтфорк — это такой себе апгрейд блокчейна, выполненный для улучшения его работы, когда старый и новый протоколы гармонично функционируют в одной сети.

Софтфорки не подразумевают деление блокчейна на автономные сети, выпуск новых монет или каких-то других принципиальных изменений.  

В основном софтфорки проводятся для реализации следующих задач:

  • увеличение производительности сети;
  • снижение комиссии;
  • повышение конфиденциальности блокчейна;
  • улучшение безопасности.

После проведения софтфорка участникам сети нужно обновить свое ПО, и то не обязательно, те, кто не согласен с изменениями, могут работать по старым правилам.

Софтфорки способствуют улучшению различных свойств криптовалют, устраняют ошибки в коде, стимулируют конкуренцию.

Известные софтфорки: SegWit (софтфорк биткойна, основная цель которого — увеличение размеров блока для повышения пропускной способности сети), Pay to Script Hash (P2SH) (софтфорк проводился для изменения формата биткойн-адресов), Replace-by-fee (софтфорк Litecoin, позволил участникам сети редактировать транзакции в части изменения уровня комиссии).

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