Софт форк

Софт-форк происходит, когда цепочка криптовалют подвергается «временному расхождению». Мягкая вилка (а именно так переводится с английского soft fork)— это изменение в программном протоколе, в результате которого только ранее действительные блоки или транзакции становятся недействительными.

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

Протокол блокчейна

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

Блокчейн обычно работает в соответствии с заранее определенными правилами, известными как протоколы блокчейна, с которыми соглашаются все участвующие одноранговые узлы (узлы) в сети. Эти правила состоят в следующем:

1. Инструкции по аутентификации и управлению транзакциями в сети;

2. Алгоритм, определяющий механизм, с помощью которого все участвующие узлы в сети будут взаимодействовать друг с другом;

3. Интерфейс прикладного программирования (в некоторых случаях).

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

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

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

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

Soft fork vs hard fork

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

Про Хард форк мы писали в статье про Биткоин и Биткоин Кеш

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

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

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

Хардфорки могут быть результатом разделения сообщества блокчейнов, как это было в случае с Bitcoin Cash в 2018 году. Это произошло в результате разногласий в сообществе блокчейнов Биткойн по поводу размера блока и масштабируемости. Напротив, софт-форки обычно могут быть разрешены по взаимному согласию и включают более сплоченные настроения в сообществе блокчейна. 

soft vs hard fork

Как работают софтфорки

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

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

Для реализации софт-форка большинству майнеров необходимо запустить клиент (программу), распознающий форк. Короче говоря, чем больше майнеров будут соблюдать новые правила, тем более безопасной станет сеть после форка. Например, если три четверти майнеров признают форк, то остальная четверть блока не обязательно будет следовать новым правилам. Однако они останутся действительными для старых узлов, которые не знают о новых правилах, но будут игнорироваться новыми узлами.

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

Почему происходят софтфорки

Можно сказать, что софтфорк — это «косметическое», не фундаментальное изменение. Он изменяет или добавляет функции, фактически не вмешиваясь в структуру блокчейна, и может происходить по разным причинам, таким как изменение алгоритма консенсуса или некоторые изменения/обновления программного обеспечения.

Когда большинство майнеров при обновлении сети используют свои вычислительные мощности для обеспечения соблюдения новых правил, это называется софтфорком, активируемым майнером (MASF).

Существует также активируемый пользователем софтфорк (UASF). Именно здесь координируются полные узлы для обеспечения соблюдения новых правил без поддержки майнеров. 

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

Примеры софт-форков

Soft fork использовали как наиболее распространенный вариант обновления блокчейнов Биткойн, поскольку считается, что они представляют меньшую вероятность разделения сети. Предыдущие примеры успешных софт-форков включают обновления программного обеспечения, такие как BIP 66 (отвечающий за проверку подписи) и P2SH (изменение форматирования адреса Биткойн).

  • BIP (34, 65 и 66) были установлены в блокчейне Биткойн посредством сигнализации майнера с использованием количества версий блока. По сути, новые правила консенсуса были предложены для использования в блоках с более высоким номером версии, чем преобладающая версия блока, уже используемая в сети. 
  • P2SH или PAY-TO-SCRIPT-HASH — это патч, добавленный в блокчейн Биткойн в 2012 году и изменяющий способ проверки транзакций. Чаще всего это адреса в биткойнах, начинающиеся с «3» вместо «1».
  • SegWit , или SEGREGATED WITNESS, был программным форком, используемым для увеличения скорости транзакций Биткойн. Поскольку новый блок транзакций добывается в среднем каждые 10 минут, основная идея заключалась в том, чтобы увеличить количество транзакций, которые можно включить в каждый блок. SegWit освободит место в каждом блоке, которое затем можно будет использовать для включения дополнительных транзакций. Это было сделано путем удаления открытого ключа из блока вместе с подписью, связанной с каждой транзакцией, и отправки их по другому каналу обмена сообщениями. Поскольку публичный ключ и подпись занимают почти 60% всего размера транзакции, отправка их по отдельности может удвоить количество транзакций в каждом блоке. Вот почему этот подход был назван Segregated Witness, поскольку «свидетель» (подпись) был отделен (отправлен отдельно) от транзакции.

Вывод о софт форках

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