Что такое софт-форк? Объяснение обновлений блокчейна.
Правила блокчейна ужесточаются, а не смягчаются, когда происходит мягкий форк. Старые узлы, пропустившие обновление, всё равно продолжают отслеживать новые блоки. Никаких проблем, никакого разделения цепочки. Вы, вероятно, сталкивались с этим термином во время обновлений Биткоина, таких как SegWit или Taproot, и задавались вопросом, чем это отличается от жёсткого форка.
Вот простая версия, без жаргона. Храните криптовалюту, запускаете ноду или просто интересуетесь, почему одни обновления вызывают хаос, а другие проходят незамеченными? Обычно все сводится к одному единственному критерию.
Что такое софт-форк в блокчейне?
Софтфорки ужесточают правила блокчейна, но никогда не ослабляют их. Блок, который бы прошел проверку по старым правилам, теперь может быть отклонен. А вот блоки, соответствующие новым, более строгим правилам? Старое программное обеспечение по-прежнему принимает их как действительные.
Вся суть здесь в односторонней совместимости. Старые узлы не понимают новые правила в деталях, да им это и не нужно. Они просто видят блоки, которые выглядят допустимыми, и продолжают работать, не обращая внимания на то, что часть того, что раньше считалось допустимым, теперь таковым не является.
Хардфорки меняют ситуацию. Они ослабляют или полностью переписывают правила таким образом, что старые узлы просто не могут их проверить. Ужесточение или ослабление — это единственное различие, определяющее, сохранит ли обновление всех участников в одной цепочке или разделит сеть пополам.
Вот более наглядная картина: свод правил сужается, а не переписывается. До форка определённый диапазон блоков считался допустимым. После этого диапазон немного сужается. Некоторые блоки, которые раньше проходили проверку, теперь отклоняются обновлёнными узлами. Однако ключевой момент заключается в том, что каждый блок, принятый по новым правилам, уже был допустим и по старым. Ничего нового не пропускается. Что-то старое просто блокируется. Именно поэтому незащищённое программное обеспечение продолжает работать, как ни в чём не бывало.
Как на самом деле работает софтфорк?
Механика процесса сводится к поведению узлов и проверке правил. В общих чертах, это выглядит так:
- Разработчики предлагают изменение, которое сужает набор допустимых транзакций или блоков, обычно для устранения ограничения или добавления новой возможности.
- Сообщество и операторы узлов рассматривают, тестируют и обсуждают предложение, часто в рамках формального процесса, такого как предложения по улучшению Bitcoin (BIPs).
- Майнеры или валидаторы начинают сигнализировать о поддержке новых правил, часто с помощью механизма, встроенного в создаваемые ими блоки.
- Как только уровень активации сигнала достигает порогового значения, обычно составляющего около 90–95% от общего числа последних блоков, новые правила начинают применяться модернизированными узлами.
- Необновлённые узлы продолжают проверять блоки, используя существующую логику. Поскольку новые правила являются подмножеством старых, блоки, удовлетворяющие новым правилам, также удовлетворяют старым правилам, поэтому необновлённые узлы принимают их без проблем.
- Сеть продолжает функционировать как единая цепочка, где модернизированные узлы обеспечивают соблюдение более строгих правил, а немодернизированные узлы молчаливо извлекают из них выгоду, не обеспечивая их формального соблюдения.
Результат: обновление в реальном времени, не требующее одновременных действий всех участников. Именно поэтому мягкие форки являются основным инструментом для большинства стандартных улучшений блокчейна. Важно подчеркнуть, что узлы, не прошедшие обновление, сами не обеспечивают соблюдение новых правил. Они просто используют тот факт, что доминирующая вычислительная мощность сети обеспечивает соблюдение этих правил для всех. Именно поэтому внедрение майнеров так важно для скорости и безопасности внедрения мягкого форка.

Мягкая вилка против жесткой вилки: в чем реальная разница?
Вопрос о том, является ли программная или хардфорк-версия современной, возникает постоянно, и краткий ответ сводится к направлению совместимости. Программная версия сужает правила таким образом, что старое программное обеспечение всё ещё их принимает. Хардфорк изменяет правила таким образом, что старое программное обеспечение полностью их отвергает.
| Аспект | Мягкая вилка | Хард Форк |
|---|---|---|
| Правило направления | Более строгий подход, сужающий допустимые блоки. | Более мягкие или принципиально измененные |
| Обратная совместимость? | Да, старые узлы принимают новые блоки. | Нет, старые узлы отклоняют новые блоки. |
| Требуется универсальное обновление? | Нет | Да, или цепь развалится. |
| Риск разрыва цепочки | Низкий | Высокий уровень, если консенсус не достигнут. |
| Необходима координация. | Сигнализация майнера/валидатора | Полное сетевое соглашение |
| Пример | SegWit, Taproot | Разделение Bitcoin Cash и Bitcoin |
Софт-форки, как правило, являются менее проблематичным вариантом, поскольку сети не нужно единогласно и немедленно соглашаться. Хард-форки по своей природе более разрушительны, поскольку любой, кто не обновится вовремя, фактически останется с другим, несовместимым блокчейном.
Именно поэтому хардфорки часто попадают в заголовки новостей, а софтфорки — редко. Хардфорк обычно сопровождается новым тикером, новым листингом на бирже и публичными спорами о том, какая цепочка представляет собой «настоящий» проект. Софтфорк же обычно проявляется просто в увеличении номера версии в программном обеспечении кошелька, и большинство пользователей даже не замечают, что правила, лежащие в его основе, изменились.
Реальные примеры софтфорков в Биткоине и за его пределами.
Софтфорки — это не теоретическое понятие. Биткоин неоднократно использовал их для добавления функциональности, никогда не разделяя сеть насильственным путем.
- SegWit (2017): Segregated Witness изменил способ подсчета данных транзакций при определении размера блока, исправил ошибку, называемую «изменяемостью транзакций», и заложил основу для сети Lightning Network. Он остается наиболее цитируемым примером софтфорка в истории Биткоина.
- Taproot (2021): Внедрены подписи Шнорра, улучшена конфиденциальность и эффективность сложных транзакций, при этом сохранена совместимость с узлами, которые не были обновлены.
- P2SH (2012): Pay-to-Script-Hash упростил представление в блокчейне кошельков с мультиподписью и скриптов, подобных смарт-контрактам, опять же без принудительного разделения сети.
- BIP66 (2015): Ввело строгое кодирование DER для цифровых подписей, устранив техническую лазейку, которая могла привести к несоответствиям при проверке.
Каждая из этих мер ужесточала правила Биткоина определенным, целенаправленным образом, и каждая из них была внедрена без разделения сообщества на две конкурирующие криптовалюты.
Почему разработчики предпочитают софт-форки хард-форкам
При наличии выбора большинство разработчиков Bitcoin и Ethereum в первую очередь склоняются к софтфорку, и не только из-за технических предпочтений. Причины довольно практичны.
Во-первых, никто не обязан обновляться в один и тот же день. Кошельки, биржи, майнинговые пулы — все они могут мигрировать по своему собственному графику, а не гнаться за жестким сроком. В больших масштабах такая гибкость имеет огромное значение, поскольку скоординировать одновременное обновление тысяч независимых операторов — задача действительно сложная.
Кроме того, существует единство. Мягкий форк сохраняет сеть и криптовалюту в целостном виде. Не появляется конкурирующий токен. Ни одной бирже не приходится выбирать, какая цепочка является «настоящей». Ни одно сообщество не раскалывается на лагеря, спорящие о легитимности. Для платежной сети, в частности, такая стабильность имеет огромную ценность.
Обратимость тоже имеет значение. Поскольку старые узлы никогда полностью не берут на себя обязательство самостоятельно обеспечивать соблюдение новых правил, неудачный софтфорк иногда можно отменить с гораздо меньшими проблемами, чем отмена хардфорка, который уже породил вторую, независимо торгуемую криптовалюту.
Риски и ограничения софтфорков
Использование софтфорков не лишено рисков, хотя они, как правило, считаются более безопасным вариантом. Стоит знать о некоторых существенных ограничениях.
- Необновленные узлы по-прежнему проверяют блоки по старым правилам, а это значит, что они не могут самостоятельно проверить, действительно ли правильно соблюдаются условия, специфичные для новых правил, — они доверяют большинству.
- Если достаточно большая часть майнеров откажется от обновления и продолжит добывать блоки только по старым правилам, всё равно могут возникнуть спорные ситуации, иногда приводящие к фактическому расколу, даже если форк технически был «мягким».
- Сильная зависимость от сигналов майнеров означает, что активация софтфорка может зависеть от концентрации майнинговых пулов, что поднимает закономерные вопросы о том, насколько децентрализован этот процесс на практике.
- Реализация некоторых программных форков оказывается сложнее и безопаснее, чем кажется, поскольку разработчикам необходимо убедиться, что новые правила действительно являются строгим подмножеством старых, и любая ошибка в этом отношении может создать неожиданные пробелы в проверке.
Всё это не делает «мягкие вилки» опасными. Это просто означает, что «обратная совместимость» не то же самое, что «безопасность», и координация по-прежнему важна, даже когда жёсткое разделение не рассматривается.

Как происходит активация софтфорка в блокчейне
Одного нового кода недостаточно для запуска софтфорка. Кто-то должен подтвердить, что сеть действительно готова, а это задача координации.
Для этого в Биткоине использовалось несколько методов. Классический способ — это сигнализация в стиле BIP9: майнеры ставят небольшой маркер на добытые блоки, по сути, поднимая руку. «Готов». Как только достаточное количество недавних блоков, обычно около 95%, поднимают эту руку в течение заданного промежутка времени, новые правила вступают в силу. Затем следует их соблюдение.
Новые методы активации, такие как Speedy Trial и различные формы пользовательских софтфорков, появились отчасти потому, что чистая сигнализация со стороны майнеров может застопориться, если майнинговые пулы медленно реагируют или проявляют политическую неготовность. Эти альтернативные механизмы дают операторам узлов и более широкому сообществу более прямое влияние на то, произойдет ли обновление на самом деле, вместо того, чтобы оставлять решение полностью на усмотрение майнеров.
Активация Taproot в 2021 году — хорошая иллюстрация того, как эти методы могут работать вместе. В ней использовался модифицированный процесс сигнализации под названием Speedy Trial, который устанавливал более короткий, четко определенный период времени для того, чтобы майнеры могли сигнализировать о готовности, с резервным путем, который позволил бы сообществу активировать обновление даже без полной поддержки майнеров. Этот резервный путь имел меньшее значение на практике, поскольку сигнализация проходила без проблем, но его существование показывает, насколько далеко продвинулся дизайн активации со времен более ранних, чисто майнерских софтфорков Биткоина.
Заключительные мысли
Тихое, постепенное развитие, отсутствие саморазрушения — именно так развивается большинство блокчейн-сетей. Ужесточение правил вместо их ослабления позволяет сети добавлять новые функции, исправлять ошибки, работать эффективнее, оставаясь при этом доступной для тех, кто так и не обновился. Компании, выбирающие криптоинфраструктуру, должны стремиться к тому же. Улучшения, основанные на стабильном, едином фундаменте, а не на разрушительных изменениях. Plisio тоже придерживается этого принципа: стабильность, совместимость, создание, позволяющее продолжать работу, пока сети под ним постоянно меняются.