
Хардфорки и софтфорки: как блокчейны меняют свои правила
Правила блокчейна не застыли навсегда. Bitcoin добавил новые типы адресов, Ethereum перешёл с майнинга на стейкинг, а небольшие сети регулярно обновляются. Но центрального сервера, который можно было бы обновить, нет. Каждый узел работает со своей копией правил, и изменить их — значит добиться согласия тысяч независимых операторов.
Два способа это сделать называются софтфорками и хардфорками. От разницы между ними зависит, продолжит ли работать старое программное обеспечение, а иногда и то, не превратится ли одна монета в две.
Правила, узлы и консенсус
Каждый полный узел проверяет каждый блок на соответствие своим правилам. Блок, который их нарушает, отклоняется независимо от того, кто его добыл. Именно это делает блокчейн трудным для обмана — и именно поэтому менять его так непросто. Если одни узлы работают по новым правилам, а другие по старым, они могут разойтись во мнениях о том, какие блоки действительны.
Софтфорк: правила строже, старые узлы продолжают следовать за цепочкой
Софтфорк делает правила строже. Блоки, действительные по новым правилам, остаются действительными и по старым, поэтому узлы, которые не обновились, продолжают следовать за цепочкой; они просто сами не применяют новые ограничения.
Крупные обновления Bitcoin были софтфорками. SegWit в 2017 году изменил способ хранения подписей, а Taproot в 2021 году добавил подписи Schnorr и новый способ фиксации скриптов. Старые узлы считали эти новые транзакции действительными, даже не понимая их, — поэтому Taproot смог появиться, не расколов сеть.
Софтфорки обычно считаются более безопасными: у тех, кто не обновляется, ничего не ломается. Обратная сторона в том, что новые функции приходится проектировать так, чтобы они укладывались в старые правила, а это может делать их сложнее.
Хардфорк: новые правила, старые узлы остаются позади
Хардфорк ослабляет или меняет правила, поэтому блоки, действительные по новым правилам, могут быть недействительными по старым. Узлы, которые не обновились, отклоняют новые блоки и перестают следовать за цепочкой.
Когда обновляются почти все, хардфорк — это просто скоординированное обновление. Многие сети проводят их по графику: крупные обновления Ethereum, сетевые обновления Zcash и обновления протокола Kaspa — это запланированные хардфорки, через которые вся экосистема проходит вместе.
Когда значительная группа отказывается обновляться, происходит раскол цепочки: две цепочки с общей историей до момента форка, которые затем расходятся.
Когда форки создают новые монеты
Расколы породили несколько хорошо известных монет:
- Ethereum и Ethereum Classic разделились в 2016 году после разногласий о том, стоит ли отменять последствия взлома DAO.
- Bitcoin и Bitcoin Cash разделились в 2017 году из-за споров о масштабировании — более крупные блоки или SegWit и другие подходы. Bitcoin Cash продолжает существовать как отдельная цепочка.
После раскола у каждого, кто владел монетами в момент форка, они есть в обеих цепочках и контролируются одними и теми же ключами. Звучит как бесплатные деньги, и иногда так и есть, но это несёт риски: атаки повторного воспроизведения (replay), при которых транзакцию из одной цепочки можно повторно отправить в другой, если цепочки не добавят защиту, а также мошеннические инструменты для «получения» монет, которые просят ваш приватный ключ. К тому же форки наследуют не только балансы — одна и та же ошибка может развиваться по-разному по обе стороны.
Что форки значат для вас
- Большинство форков не требуют от вас никаких действий. Ваши монеты остаются там, где были; ваши ключи по-прежнему их контролируют.
- Иногда кошельки нужно обновлять. Хардфорк, меняющий форматы транзакций или подписей, может привести к тому, что старое ПО кошелька будет формировать транзакции, которые сеть отклоняет. Обновляйте кошелёк в период объявленных обновлений.
- Биржи могут приостанавливать ввод и вывод средств на время форка. Это обычная мера предосторожности.
- Никогда не вводите свою фразу восстановления на сайте для «получения монет форка». Если вам нужны монеты в новой цепочке, сначала переведите основные средства на новые ключи, а затем используйте проверенный кошелёк, чтобы получить доступ к старым ключам.
- Наберитесь терпения после спорного раскола. Дождитесь, пока станет ясно, есть ли защита от повторного воспроизведения и поддержка бирж.
Форки и SSP
SSP поддерживает сети с совершенно разными подходами к обновлениям — софтфорки Bitcoin, плановые хардфорки в сетях вроде Zcash и регулярные обновления EVM-сетей. Когда обновление меняет способ формирования или подписания транзакций, SSP Wallet и SSP Key обновляются соответствующим образом.
Хороший пример — Zcash. Каждое сетевое обновление Zcash меняет значение, которое фиксируется в каждой подписи транзакции, поэтому кошельки, созданные под старые правила, формируют подписи, которые сеть отвергает. Поскольку SSP нужны две подписи, обновить под новые правила необходимо и SSP Wallet, и SSP Key, — и сеть не примет транзакцию, пока не обновлены оба приложения.
Практический вывод: держите оба приложения в актуальном состоянии, особенно в период объявленных сетевых обновлений.
Честный итог
Софтфорк ужесточает правила так, что старые узлы продолжают следовать за цепочкой; хардфорк меняет их, и обновляться приходится всем. Большинство хардфорков — это запланированные обновления без происшествий. Лишь немногие превращаются в расколы цепочки, из-за которых одна монета становится двумя.
Держателям форки редко требуют каких-либо действий: обновляйте кошелёк, с подозрением относитесь ко всему, что просит фразу восстановления, чтобы «получить» монеты форка, и дайте ситуации успокоиться, прежде чем перемещать средства во время спорного раскола.


