
Софт форк – это “легкое” обновление программного обеспечения, на котором работает блокчейн. После проведения этого мероприятия большинство алгоритмов остаются прежними. Проводится лишь незначительное изменение настроек, исправление ошибок либо улучшение функций. При этом новые монеты не создаются, а сообщество не переживает значительных изменений.
Основное преимущество софт форка в том, что предлагаемые обновления не противоречат существующим настройкам. Они могут быть приняты лишь частью сообщества. Поэтому одна часть блокчейна может продолжать работать без изменений, а другая – перейти на новые правила. Другими словами, алгоритмы остаются обратно совместимыми.
Также это дает возможность валидаторам принимать обновления не сразу, а постепенно. Участники, которые не перешли на новое программное обеспечение, по-прежнему могут проверять и подтверждать транзакции. Но нужно учитывать, что это может влиять на функциональность необновленной ноды.
Для примера можно взять софт форк, когда по новому алгоритму размер блока уменьшается с 1000 Кбайт до 800 Кбайт. Майнер, который не обновился, будет видеть, что входящие транзакции действительны. Но когда он попытается добыть новый блок (1000 Кбайт), его попытка будет отклонена сетью. Это означает, что у пользователей есть стимул принять обновление, хоть они и не обязаны этого делать.
Хард форк – это процесс существенной модификации блокчейна. В этом случае разработчики не меняют текущий протокол, а создают его копию, в которую добавляют новый код. Если участники сообщества принимают изменения блокчейна, они переходят на обновленную версию.
Благодаря такому принципу можно сохранить стабильность проекта и избежать риска сбоев. Существующий блокчейн продолжает работать в обычном режиме до тех пор, пока не будет активирована его новая версия.
После хард форка могут быть изменены важные характеристики проекта. Например, токеномика, правила эмиссии, способы распределения и т. д. Именно поэтому хард форкам предшествуют длительные обсуждения целей и методов их достижения. Изменения, которые противоречат базовым настройкам, могут быть приняты, только если их поддержат все ноды.
В зависимости от реакции валидаторов на предложенные обновления, хард форки бывают двух типов:
При поддержке всего сообщества. Все майнеры соглашаются принять изменения и обновить свое ПО. В результате проект начинает работать по новым правилам, а параллельный блокчейн не запускается.
При частичной поддержке сообщества. В этом случае только часть майнеров соглашаются принять изменения, остальные продолжают работать по установленным алгоритмам. В результате сеть раскалывается на две параллельные цепочки – с новым и старым программным кодом.
Во втором случае будут созданы две отдельные криптовалюты, которые становятся не совместимыми друг с другом. У каждой из них будет свое сообщество, которое может их менять и дорабатывать.
Таким образом, хард форки можно использовать для запуска новых проектов либо для достижения консенсуса в сообществе относительно масштабных изменений.
Как правило, криптовалюта имеет открытый исходный код, то есть его может просматривать и редактировать любой желающий. В этом заключается один из основных принципов децентрализации.
Таким образом, под фразой «разработчики обновляют протокол» не обязательно имеется в виду, что это делают создатели проекта. Изменить базовый код может любой участник сообщества, который умеет — или даже не умеет — это делать. Более того, кто угодно может инициировать проведение софт форка или хард форка. Для этого ему достаточно установить соответствующее программное обеспечение на своем компьютере.
Но если валидаторы не поддержат эту инициативу, то транзакции с обновленными настройками не попадут в общую сеть. Проще говоря, это будет криптовалюта, которую использует только один человек. Она не будет иметь никакой ценности.
продолжение....