Открыть сервис

Софтфорк

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

Принцип работы

Софтфорк реализуется путём введения новых правил, которые сужают набор допустимых блоков или транзакций по сравнению с предыдущей версией протокола. Например, если раньше блок мог иметь размер до 1 МБ, а после софтфорка — до 0,5 МБ, то все блоки, созданные по новым правилам, автоматически удовлетворяют и старым правилам (поскольку 0,5 МБ < 1 МБ). Узлы, не обновившиеся, по-прежнему принимают такие блоки как корректные, хотя и не могут использовать новые возможности (например, проверять подписи нового типа). Если же большинство участников поддерживает новую версию, старая цепочка практически не имеет шансов нарастить длину, так как блоки, нарушающие новые правила, отвергаются обновлёнными узлами.

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

История и примеры

Биткоин и SegWit

Одним из наиболее известных софтфорков в истории криптовалют является внедрение Segregated Witness (SegWit) в сети Биткоина в августе 2017 года. SegWit изменил формат транзакций, отделив подписи (witness) от основных данных, что позволило увеличить эффективную ёмкость блока без изменения его номинального размера. Обновление было реализовано как софтфорк, поскольку старые узлы продолжали принимать блоки с новыми транзакциями, игнорируя поле witness. Для активации потребовался сигнал от майнеров, контролирующих более 95 % хешрейта.

BIP 66 и BIP 65

Другие примеры софтфорков в Биткоине — BIP 66 (2015 год), ужесточивший правила проверки подписей в формате DER, и BIP 65 (2015 год), введший новый тип скрипта OP_CHECKLOCKTIMEVERIFY. Оба изменения были обратно совместимы и не вызвали раскола сети.

Ethereum и Constantinople

В сети Ethereum софтфорки также применяются регулярно. Например, хардфорк Constantinople (2019 год) включал несколько улучшений, но одно из них — EIP 1234 — было совместимо с предыдущими версиями и могло бы считаться софтфорком, если бы не сопутствующие изменения. В целом, в Ethereum софтфорки менее распространены, чем в Биткоине, из-за особенностей модели смарт-контрактов и более частого использования хардфорков для внедрения новых функций.

Классификация софтфорков

Софтфорки можно разделить по способу активации:

  • User-Activated Soft Fork (UASF) — активация происходит по инициативе пользователей, которые запускают новую версию клиента, независимо от поддержки майнерами. Пример — попытка активации SegWit через BIP 148 в 2017 году, хотя в итоге был достигнут компромисс с майнерами.
  • Miner-Activated Soft Fork (MASF) — активация зависит от сигнала майнеров, которые должны подтвердить готовность к обновлению. Наиболее распространённый тип в Биткоине (например, BIP 9).
  • Speedy Trial — разновидность MASF с ускоренным периодом сигнализации, применённая для активации Taproot в 2021 году.

Преимущества и недостатки

Преимущества

  • Обратная совместимость: старые узлы не отключаются от сети, что снижает риск раскола сообщества.
  • Меньшая сложность внедрения: не требуется обязательное обновление всех участников, достаточно поддержки большинства майнеров.
  • Единая цепочка: в отличие от хардфорка, софтфорк не создаёт две конкурирующие сети (если только не возникает спор о легитимности).

Недостатки

  • Ограниченность изменений: софтфорк может только уменьшать или ужесточать правила, но не добавлять принципиально новые возможности, которые не были бы совместимы со старыми. Например, нельзя увеличить размер блока больше прежнего лимита — это потребовало бы хардфорка.
  • Зависимость от большинства: если менее 50 % майнеров поддерживают обновление, сеть может разделиться на две цепочки, хотя это редкий сценарий.
  • Сложность реализации: разработчики должны тщательно проектировать изменения, чтобы старые узлы не отвергали новые блоки, что накладывает технические ограничения.

Применение в других блокчейнах

Софтфорки используются не только в криптовалютах, но и в других распределённых реестрах, где требуется модернизация протокола без принудительного обновления всех участников. Например, в сети Litecoin, Dogecoin и Monero применялись софтфорки для исправления уязвимостей или внедрения новых алгоритмов. В блокчейнах с доказательством доли (Proof-of-Stake) софтфорки также возможны, но их реализация часто зависит от голосования валидаторов.

Критика и риски

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

Сравнение с хардфорком

ПараметрСофтфоркХардфорк
СовместимостьОбратная (старые узлы принимают новые блоки)Несовместим (старые узлы отвергают новые блоки)
ОбновлениеНеобязательно для всехОбязательно для всех, кто хочет остаться в новой сети
Риск расколаНизкий (если большинство поддерживает)Высокий (может возникнуть две конкурирующие сети)
Возможность добавления новых функцийОграничена (только сужение правил)Широкая (любые изменения)
ПримерыSegWit, BIP 66, TaprootBitcoin Cash, Ethereum Classic

Источники

  • Antonopoulos, A. M. (2017). Mastering Bitcoin: Programming the Open Blockchain. O'Reilly Media.
  • Narayanan, A., Bonneau, J., Felten, E., Miller, A., & Goldfeder, S. (2016). Bitcoin and Cryptocurrency Technologies. Princeton University Press.
  • BIP 9: Version bits with timeout and delay. Bitcoin Improvement Proposals.
  • BIP 141: Segregated Witness (Consensus layer). Bitcoin Improvement Proposals.
  • BIP 148: Mandatory activation of segwit deployment. Bitcoin Improvement Proposals.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →