Что такое хард-форк в блокчейне?
Хард-форк простыми словами
Правила блокчейна записаны в программе, которую запускают компьютеры сети, их называют узлами. Каждый узел сам проверяет новый блок по этим правилам и отбрасывает блок, который им не соответствует. Правила со временем меняют, чтобы исправить ошибку или добавить новую возможность. Новую версию программы пишут разработчики, а ставить ли её, каждый владелец узла решает сам1.
После хард-форка узел на старой версии программы проверяет новые блоки по старым правилам и отбрасывает их как неправильные2. Поэтому программу обновляют все, кто хочет остаться в общей сети, а кто не обновился, остаётся на старой цепочке блоков.
Представьте компанию друзей, которая давно играет в настольную игру по одним правилам и записывает счёт всех партий в общую тетрадь. Кто-то предлагает новое правило подсчёта очков. Если согласились все, со следующей встречи играют по-новому, и тетрадь по-прежнему одна. Если часть компании отказалась, дальше игроки садятся за два стола и ведут две тетради, у которых первые страницы одинаковые, а записи после спора разные. Хард-форк устроен так же, только вместо страниц тетради в нём блоки с переводами.
Что происходит с вашими монетами при хард-форке
Нужно ли что-то делать держателю при плановом хард-форке?
Нет. Программу обновляют владельцы узлов, кошельки и биржи, а криптовалюта остаётся там же, где была. Так было и при переходе Ethereum на валидаторов в 2022 году. С криптовалютой и кошельком ничего делать было не нужно, «старого» или «нового» ETH не бывает. Тех, кто утверждает обратное, ethereum.org назвал, скорее всего, мошенниками3.
Что будет с моими монетами после разделения сети?
Новая сеть унаследовала всю историю переводов вместе с балансами, поэтому ваши монеты есть в обеих сетях. Монеты новой сети никуда не надо переводить или «забирать», они уже в вашем кошельке, и открывает их та же seed-фраза, что и прежние. Так было, например, у владельцев кошельков Trezor при разделении сети Bitcoin в 2017 году4. Дальше монеты двух сетей живут отдельно, и перевод в одной сети в другой не виден. Что вы увидите на деле, зависит от того, где лежат монеты:
- в своём кошельке, где ключ знаете только вы, монеты новой сети видны только в приложении, которое поддерживает новую сеть. Берите известный кошелёк, который официально объявил о такой поддержке;
- на бирже монеты хранит биржа, и начислять ли клиентам монеты новой сети, она решает сама, поэтому смотрите её объявление5.
Сразу после разделения не спешите переводить монеты. Если в новой сети нет защиты от повторов, перевод в одной сети может повториться и в другой, и монеты уйдут в обеих. Подождите, пока ваш кошелёк или биржа объявит, что переводить безопасно.
Монеты, полученные при разделении сети, могут облагаться налогом. В Новой Зеландии, например, их могут облагать при получении, при продаже или в обоих случаях6. ⚖️ Как подойти к налогам в своей стране, разбирает налоговый гайд.
Как мошенники пользуются хард-форками
Мошенники предлагают «получить бесплатные монеты новой сети» и просят ввести приватный ключ (секретный код, которым кошелёк подтверждает переводы) или seed-фразу. В ноябре 2017 года так работал сайт mybtgwallet, который обещал выдать монеты Bitcoin Gold, и у тех, кто загрузил на него свои приватные ключи, украли биткоины и другую криптовалюту78.
Чем хард-форк отличается от мягкого форка
Правила можно изменить и так, чтобы старые узлы продолжали работать в той же сети. Такое изменение называют мягким форком, или софт-форком, и новые блоки при нём по-прежнему проходят проверку у старых узлов2.
Разницу удобно понять на файлах. Хард-форк похож на новый формат документа, который старая программа не откроет, пока её не обновят. Мягкий форк похож на новое правило набирать документы только одним шрифтом. Старая программа по-прежнему открывает каждый файл, просто вариантов оформления становится меньше.
| Мягкий форк | Хард-форк без разделения | Хард-форк с разделением | |
|---|---|---|---|
| Старая программа принимает новые блоки? | да | нет | нет |
| Нужно обновить программу узла? | нет | да | да |
| Сеть остаётся одна? | да | да | нет |
| Появляется новая монета? | нет | нет | да |
Почему сеть не всегда разделяется после хард-форка
У блокчейна нет начальства, которое может обязать всех обновиться, поэтому каждое изменение правил сначала обсуждают. Как участники сети договариваются о верной записи, разбирает статья что такое консенсус.
Обычно хард-форк согласуют заранее, и программы для узлов переходят на новые правила в один и тот же момент, а разделение сети из-за спора о хард-форке случается редко9. Так регулярно обновляется Ethereum, и прошедшие и запланированные обновления с датами перечислены на странице истории сети.
Если же часть участников против изменения, а другая часть всё равно его проводит, сеть может разделиться1. Дальше у каждой из двух сетей свои блоки, свои майнеры или валидаторы и своя монета. Кто добавляет блоки в сеть, разбирает статья майнеры и валидаторы.
Как сети разделялись из-за хард-форка
В 2016 году у одного проекта в сети Ethereum, программы The DAO, через ошибку в её коде вывели много ETH. Большинство участников решило поменять правила и вернуть монеты пострадавшим9. Часть участников переходить отказалась, считая, что ошибка была в одной программе, а правила сети исправны. У них продолжилась прежняя сеть без хард-форка, её назвали Ethereum Classic, а сеть с хард-форком стала сегодняшней сетью Ethereum с монетой ETH1.
1 августа 2017 года сеть Bitcoin разделилась, и появилась сеть Bitcoin Cash. Её сторонники хотели, чтобы в блок помещалось больше переводов, и новая программа подняла предел размера блока10. Каждый, у кого в тот момент был 1 BTC, получил и 1 BCH11.
15 ноября 2018 года разделилась сама сеть Bitcoin Cash, и вторая сеть получила название Bitcoin SV12.
Глубже — как принимают решения и подробности известных форков
В Ethereum предложение об изменении правил может написать любой. Его обсуждают разработчики программ для узлов на открытых созвонах1. Плановыми хард-форками Ethereum были, например, обновление London в августе 2021 года и обновление Pectra в мае 2025 года9.
Мягким форком было, например, обновление Taproot, которое заработало в сети Bitcoin 14 ноября 2021 года на блоке 709 6321314.
Из The DAO вывели больше 3,6 миллиона ETH. За хард-форк, который переводил эти монеты в программу для возврата пострадавшим, было подано больше 85% голосов, и он прошёл 20 июля 2016 года на блоке 1 920 0009. Защиту от повторов для Ethereum описали отдельным предложением EIP-155 в октябре 2016 года, чтобы перевод в Ethereum не срабатывал в Ethereum Classic15.
В Bitcoin Cash предел размера блока подняли до 8 МБ10. До блока 478 558 включительно истории сетей Bitcoin и Bitcoin Cash совпадают11.