Вилки: Когда сеть разделяется

Концепции: What Is a Fork, Soft Fork, Hard Fork, ETH/ETC & BTC/BCH, Ethereum Forks, Coins at Fork

:::section{mins=1} Что такое форк :::

:::lead [[gloss:fork|Форк]] — это изменение правил [[gloss:blockchain|блокчейна]]. Иногда все согласны. Иногда сеть раскалывается на две. :::

:::p [[gloss:blockchain|Блокчейн]] работает по правилам, которые прописаны в программном коде каждого [[gloss:node|узла]] сети: что считать валидным [[gloss:block|блоком]], каков максимальный размер [[gloss:transaction|транзакций]], какова награда за [[gloss:mining|майнинг]]. Всё это вместе называют протоколом. Когда правила нужно изменить — происходит [[gloss:fork|форк]] (от англ. fork — развилка). :::

:::p Если все участники сети принимают изменение — это просто обновление, сеть продолжает работу. Если часть узлов отказывается принять новые правила — сеть раскалывается на две независимые цепочки, каждая живёт по своим правилам. :::

:::p [[gloss:fork|Форки]] происходят постоянно. Обновление London в [[gloss:ethereum|Ethereum]] в 2021 году изменило экономику комиссий, но сеть осталась единой. Раскол Bitcoin Cash в 2017 году создал отдельную сеть с собственной монетой. Оба события — [[gloss:fork|форки]], но с совершенно разным исходом. Именно поэтому важно различать их типы. :::

:::callout{icon=💡} Представь настольную игру, в которую играют тысячи людей. Если кто-то предлагает изменить правила, но часть игроков отказывается — появляются две версии игры. Обе работают, но уже несовместимы. :::

:::keypoints{label="Ключевые моменты"}

  • [[gloss:fork|Форк]] — это изменение правил протокола. Не технический сбой и не взлом, а запланированное (или спорное) обновление того, как [[gloss:node|узлы]] договариваются о состоянии сети
  • Плановый [[gloss:fork|форк]] происходит тогда, когда всё сообщество заранее договорилось об обновлении — все [[gloss:node|узлы]] переходят на новую версию, и сеть продолжает работу как единое целое
  • Спорный [[gloss:fork|форк]] возникает, когда часть сообщества принципиально не принимает изменения и продолжает работу по старым правилам — в результате появляются две независимые сети со своими токенами
  • Случайный [[gloss:fork|форк]] (два [[gloss:block|блока]] на одной высоте) — нормально, разрешается автоматически :::

:::details{badge=Глубже title="Fork-choice rule, natural forks и реорги"} :::p Когда два майнера одновременно находят валидный [[gloss:block|блок]], в сети на мгновение возникают две конкурирующие цепочки — это называют натуральным [[gloss:fork|форком]]. Он не запланирован и разрешается сам собой: следующий блок добавится к одной из ветвей, и она станет длиннее. Все [[gloss:node|узлы]] переключатся на неё, а короткая ветвь просто забудется. :::

:::p Правило выбора цепочки (fork-choice rule) определяет, какую ветвь считать «правильной». В [[gloss:bitcoin|Bitcoin]] это самая длинная цепочка — точнее, та, в которую вложено больше всего [[gloss:proof of work|вычислительной работы]]. В [[gloss:ethereum|Ethereum]] после перехода на [[gloss:proof of stake|Proof of Stake]] используется алгоритм LMD-GHOST: побеждает ветвь, которую поддержало больше [[gloss:validator|валидаторов]] своими голосами. :::

:::p [[gloss:transaction|Транзакции]] из отброшенной ветки не теряются — они возвращаются в [[gloss:mempool|мемпул]] (очередь ожидающих транзакций) и попадают в следующий [[gloss:block|блок]]. Именно поэтому транзакция с нулём подтверждений ещё не считается окончательной. ::: :::

:::further{label="Для углублённого изучения"}

:::quiz{id=q-1-5-s1 correct=1 explanation="Верно. [[gloss:fork|Форк]] — это просто изменение правил. Если все обновляются — цепочка продолжается как одна. Если некоторые [[gloss:node|узлы]] отказываются — они следуют старым правилам, создавая две отдельные но исторически идентичные цепочки."} Что такое [[gloss:fork|форк]] [[gloss:blockchain|блокчейна]]?

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

:::section{mins=2} Soft Fork :::

:::lead [[gloss:soft fork|Мягкий форк]] ужесточает правила. Старые [[gloss:node|узлы]] продолжают работать — они просто не используют новые функции. :::

:::p [[gloss:soft fork|Софт-форк]] — обратно совместимое обновление протокола. [[gloss:node|Узлы]] со старым программным обеспечением продолжают работать в той же сети — они просто не используют новые возможности. Новые правила всегда строже старых: [[gloss:block|блок]], созданный по новым правилам, принимается и старыми узлами. :::

:::p Пример: уменьшить максимальный размер блока с 4 MB до 2 MB. Для старого узла блок в 2 MB валиден — он не превышает допустимый предел. Раскола не происходит, сеть остаётся единой. :::

:::p Именно так был активирован SegWit в [[gloss:bitcoin|Bitcoin]] в 2017 году — важное обновление, которое устранило уязвимость в подписях [[gloss:transaction|транзакций]]. Его же архитектурное решение позднее сделало возможной Lightning Network — отдельную систему быстрых платежей поверх Bitcoin. :::

:::callout{icon=💡} Представь правило дорожного движения: старый знак разрешает ехать до 60 км/ч. Новый знак снижает лимит до 40. Машины едут со скоростью 40 км/ч, не нарушая ни старое, ни новое правило. Раскола нет, все едут по одной дороге. :::

:::keypoints{label="Ключевые моменты"}

  • Главное свойство мягкого форка — обратная совместимость: блок, созданный по новым правилам, принимается и старыми узлами. Старые узлы продолжают работу, просто не используют новые возможности
  • Именно поэтому мягкий форк — предпочтительный способ обновления протокола: вся сеть остаётся единой, и нет риска случайного раскола на два лагеря
  • Оба крупнейших обновления [[gloss:bitcoin|Bitcoin]] последних лет — SegWit в 2017 году и Taproot в 2021 — были реализованы именно как [[gloss:soft fork|мягкие форки]], чтобы не создавать раскола в сети
  • У мягкого форка есть принципиальное ограничение: он может только ужесточить существующие правила, но никогда не ослабить их. Если нужно расширить возможности протокола принципиально — без хард-форка не обойтись :::

:::details{badge=Глубже title="SegWit, Taproot и механизмы активации"} :::p SegWit (Segregated Witness, 2017) — ключевое обновление Bitcoin. До SegWit подписи хранились прямо внутри транзакции. SegWit вынес их в отдельную структуру — это решило сразу две проблемы: устранило уязвимость пластичности подписей (transaction malleability), которую использовали в мошенничестве на Mt.Gox, и эффективно увеличило пропускную способность примерно в 4 раза. :::

:::p Taproot (2021) добавил подписи Шнорра. Главный эффект: сложные транзакции (multisig, смарт-контракты) теперь выглядят как обычные — это улучшает приватность и снижает комиссии для сложных сценариев. :::

:::p Механизм активации мягкого форка — отдельная тема. SegWit столкнулся с блокированием со стороны крупных майнеров: по правилу BIP-9 требовалось 95% поддержки майнеров в течение двух недель. Тогда часть сообщества применила UASF (User-Activated Soft Fork). Операторы полных узлов — те, кто самостоятельно проверяет все транзакции и блоки — объявили, что с конкретной даты их узлы будут отвергать блоки без поддержки SegWit. Майнер может добыть блок, но если узлы его не принимают, блок теряет ценность. Это экономическое давление сработало: майнеры активировали SegWit. ::: :::

:::further{label="Для углублённого изучения"}

:::quiz{id=q-1-5-s2 correct=2 explanation="Верно. [[gloss:soft fork|Мягкие форки]] обратно совместимы. Новые правила — подмножество старых. Старые [[gloss:node|узлы]] видят новые [[gloss:block|блоки]] как валидные. Разделения цепи не происходит. SegWit активирован в 2017 году без разделения [[gloss:bitcoin|Bitcoin]]."} SegWit был мягким форком Bitcoin. Что это говорит о нём?

  • Он создал новую отдельную монету рядом с Bitcoin
  • Старые узлы Bitcoin, которые не обновились перестали работать
  • Старые узлы всё ещё могли участвовать — просто не использовали новые функции
  • Он требовал от каждого пользователя обновиться в течение 30 дней :::

:::section{mins=2} Hard Fork :::

:::lead [[gloss:hard fork|Хард-форк]] несовместим со старой версией. Старые [[gloss:node|узлы]] отвергают новые [[gloss:block|блоки]]. Разногласия → две отдельные сети. :::

:::p [[gloss:hard fork|Хард-форк]] меняет правила так, что старые и новые [[gloss:node|узлы]] больше не могут работать в одной сети. [[gloss:block|Блок]], созданный по новым правилам, старый узел считает невалидным — и наоборот. Это фундаментальное отличие от [[gloss:soft fork|мягкого форка]], где обратная совместимость сохраняется. :::

:::p Если всё сообщество заранее договорилось — [[gloss:hard fork|хард-форк]] проходит незаметно. Все [[gloss:node|узлы]] обновляются до определённого [[gloss:block|блока]], старая версия постепенно выходит из сети. Именно так работают обновления [[gloss:ethereum|Ethereum]]: London, Merge, Dencun — всё это хард-форки, о которых большинство пользователей даже не догадываются. :::

:::p Если часть сообщества категорически против — возникает раскол. Те, кто не согласен, продолжают работать по старым правилам. Так образуются две отдельные сети с общей историей до точки разделения, но полностью независимым будущим. У каждой свои монеты, своя цена, своё сообщество. :::

:::howto{label="Как это понять"}

  • Форк — не баг. Это способ договориться о власти и ценностях в системе без CEO и без государства.
  • Когда сообщество не может договориться — оно разделяется. Дальше рынок голосует деньгами в какую версию правды верит.
  • ETH/ETC — не технический вопрос. Это: неизменяемость абсолютна, или люди могут отменить код в крайних случаях? :::

:::callout{icon=💡} Представь открытый стандарт — например, протокол электронной почты. Если все почтовые сервисы договорились обновить формат и перешли на него — старый уходит в прошлое, система одна. Если часть сервисов отказывается — появляются две несовместимые версии протокола. Письма между ними не доходят. :::

:::keypoints{label="Ключевые моменты"}

  • Хард-форк не совместим со старыми версиями: узел на старом программном обеспечении видит блоки, созданные по новым правилам, как невалидные — и отвергает их
  • При спорном хард-форке образуются две полностью самостоятельные сети: у них общая история до момента разделения, но с этой точки они развиваются независимо друг от друга
  • В момент [[gloss:fork|форка]] все балансы дублируются на обеих цепочках: если до разделения у тебя было 10 ETH, после ты владеешь и 10 ETH, и 10 ETC — автоматически, без каких-либо переводов
  • Риск [[gloss:replay attack|replay-атаки]]: если обе цепочки не защищены уникальным идентификатором, [[gloss:transaction|транзакция]], отправленная на одной, может автоматически исполниться и на другой :::

:::details{badge=Глубже title="Replay protection и EIP-155 (chainId)"} :::p После форка ETH/ETC в 2016 году обе сети сначала не имели защиты от повторного воспроизведения транзакций. Это означало, что транзакция, отправленная в сети Ethereum, была технически валидна и в сети Ethereum Classic. Атакующий мог взять твою подпись, скопировать транзакцию на другую цепочку и забрать твои монеты. :::

:::p EIP-155 решил эту проблему, добавив chainId — уникальный идентификатор сети — прямо в подпись транзакции. Ethereum mainnet использует chainId = 1, Ethereum Classic = 61, Arbitrum = 42161. Транзакция, подписанная для одной сети, теперь невалидна в другой, потому что подписи содержат разный chainId. :::

:::p Сегодня chainId встроен во все EVM-совместимые сети. При добавлении новой сети в MetaMask ты всегда видишь её chainId — это и есть защита от кросс-чейн replay-атак. ::: :::

:::further{label="Для углублённого изучения"}

:::quiz{id=q-1-5-s3 correct=0 explanation="Верно. Взлом The DAO похитил ~$60M. Сообщество столкнулось с вопросом ценностей: является ли код действительно неизменным (позиция ETC) или люди могут отменить его в крайних случаях (позиция ETH)? [[gloss:hard fork|Хард-форк]] отменил взлом — создав две цепи: ETH и ETC."} В 2016 году Ethereum сделал хард-форк после взлома The DAO. Какой фундаментальный вопрос встал перед сообществом?

  • Должны ли украденные средства быть возвращены жертвам — преодолевая принцип 'code is law'?
  • Должен ли Ethereum увеличить размер блока как позже сделал Bitcoin Cash?
  • Должен ли Ethereum Foundation быть распущен и управление децентрализовано?
  • Должен ли майнинг быть заменён стейкингом для экономии энергии? :::

:::section{mins=2} Знаменитые форки :::

:::lead [[gloss:bitcoin|Bitcoin]] разделился на BTC и BCH. [[gloss:ethereum|Ethereum]] — на ETH и ETC. Каждый раскол — история идеологического конфликта. :::

:::p В 2016 году [[gloss:smart contract|смарт-контракт]] The DAO собрал около $150 млн от тысяч инвесторов — это был первый масштабный эксперимент с децентрализованным управлением капиталом. Хакер обнаружил уязвимость в коде и воспользовался ею для вывода около $60 млн. Технически это было законно по правилам самого контракта — код делал именно то, что в нём было написано. :::

:::p Сообщество оказалось перед выбором, у которого не было правильного ответа. Одни говорили: блокчейн должен быть неизменяем, «код — это закон», и никакое большинство не вправе отыграть назад чужие потери. Другие возражали: система создана людьми для людей, и позволить краже остаться в силе означает предать доверие тысяч участников. Большинство проголосовало за форк и откат кражи — так появился Ethereum, который мы знаем сегодня. Меньшинство отказалось принять это решение и продолжило работу на оригинальной цепочке — это Ethereum Classic. :::

:::p В 2017 году Bitcoin раскололся по другой причине — спора о том, как масштабировать сеть. Одна сторона настаивала на увеличении размера блока прямо в основной цепочке: больше транзакций в каждом блоке — выше пропускная способность. Другая предлагала сохранить блок маленьким и решать проблему через дополнительные слои поверх Bitcoin — SegWit и Lightning Network. Два лагеря годами не могли найти компромисс. В итоге сторонники больших блоков запустили Bitcoin Cash с блоком 8 MB. Позже Bitcoin Cash сам раскололся, выделив Bitcoin SV — и спор продолжился уже внутри нового сообщества. :::

:::callout{icon=💡} «Code is law» («Код — это закон») — принцип, согласно которому смарт-контракт работает строго по написанному коду, и никто не вправе вмешаться, даже если код содержал ошибку. Ethereum выбрал прагматизм: сообщество может вмешаться в крайней ситуации. Биткоин-философия придерживается противоположной позиции. Ни одна из позиций не является объективно правильной — это вопрос ценностей сообщества. :::

:::keypoints{label="Ключевые моменты"}

  • Форк Ethereum в 2016 году поставил вопрос без однозначного ответа: должен ли блокчейн оставаться абсолютно неизменным — или сообщество вправе исправить последствия реальной кражи?
  • Раскол Bitcoin в 2017 году отразил реальный технический спор: увеличивать пропускную способность внутри основной цепочки или строить дополнительные слои поверх неё — и этот вопрос до сих пор не имеет единого ответа
  • Рыночная капитализация отражает поддержку сообщества: ETH доминирует над ETC ~130:1
  • Спорные форки могут повторяться: BCH → BSV показал, что расколы не заканчиваются :::

:::details{badge=Глубже title="The DAO hack: reentrancy и irregular state change"} :::p Атака на The DAO использовала уязвимость повторного входа (reentrancy). Смарт-контракт позволял выводить средства через функцию withdraw(). Проблема была в порядке операций: сначала контракт отправлял ETH, и только потом обновлял баланс. Хакер написал контракт, который при получении ETH снова вызывал withdraw() — до того, как баланс успевал обнулиться. Так он снял средства многократно за одну транзакцию. :::

:::p Ethereum ответил «нестандартным изменением состояния» (irregular state change) — единственным случаем в истории, когда состояние блокчейна было изменено не через транзакцию, а прямо в коде клиентов. По сути, разработчики написали в программу исключение: «на блоке X переместить эти средства обратно». Это и стало точкой раскола: сторонники неизменяемости отказались принять такое вмешательство и остались на оригинальной цепочке — Ethereum Classic. :::

:::p Reentrancy-уязвимость по-прежнему одна из самых распространённых в смарт-контрактах. После атаки на The DAO стандартной практикой стал паттерн checks-effects-interactions: сначала проверяй условия, затем меняй состояние, и только потом делай внешние вызовы. ::: :::

:::further{label="Для углублённого изучения"}

:::quiz{id=q-1-5-s4 correct=2 explanation="Верно. Взлом The DAO вынудил делать выбор без объективно правильного ответа. «Code is law» говорил, что результат взлома легитимен по правилам самого контракта. Противоположная позиция — что система, созданная людьми, не должна позволять краже остаться в силе. Раскол произошёл потому, что ни одна сторона не убедила другую — обе остались при своём, и образовались две цепи."} Почему произошёл раскол ETH/ETC? Что точнее всего описывает суть разногласия?

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

:::section{mins=2} Обновления Ethereum :::

:::lead [[gloss:ethereum|Ethereum]] обновляется через плановые [[gloss:hard fork|хард-форки]]. Все заранее договариваются — раскола нет. Каждое обновление имеет своё имя и номер [[gloss:block|блока]] и набор EIP (предложений по улучшению протокола). :::

:::p Каждое обновление Ethereum скоординировано заранее. Клиенты — это различные реализации протокола Ethereum (Geth, Nethermind, Besu, Erigon), написанные разными командами на разных языках программирования. Все они договариваются о конкретном номере блока, начиная с которого действуют новые правила. После этого блока старые версии просто перестают быть совместимы с сетью. :::

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

:::p Самый яркий пример — The Merge 2022 года. [[gloss:ethereum|Ethereum]] перешёл с [[gloss:proof of work|Proof of Work]] на [[gloss:proof of stake|Proof of Stake]] за один [[gloss:block|блок]], не останавливая сеть и не теряя средств пользователей. Это потребовало несколько лет координации между десятками команд: разработчиками исполняющих клиентов, клиентов [[gloss:consensus|консенсуса]], стейкинг-провайдеров и бирж. Небольшая группа несогласных попыталась продолжить работу по старым правилам, выделив цепочку ETHW — но она практически не получила экономической активности. В этом и есть сила планового [[gloss:fork|форка]]: когда подавляющее большинство действует согласованно, альтернативная цепь становится маргинальной. :::

:::callout{icon=💡} Плановые форки Ethereum — как обновления ОС на телефоне. Все обновляются, старая версия уходит, телефон продолжает работать. Никто не называет это «разделением» — потому что все договорились заранее. :::

:::keypoints{label="Ключевые моменты"}

  • В отличие от Bitcoin, который предпочитает мягкие форки, Ethereum использует плановые хард-форки как основной способ обновления протокола — и делает это регулярно, раз в несколько месяцев
  • Обновления Ethereum традиционно называют в честь городов: Homestead, Byzantium, London, Dencun. Каждое содержит набор EIP (Ethereum Improvement Proposal) — принятых предложений по изменению протокола
  • The Merge в 2022 году стал крупнейшим техническим событием в истории Ethereum: сеть перешла с Proof of Work на Proof of Stake за один блок — без остановки и без потери средств пользователей
  • Дорожная карта Ethereum включает несколько параллельных этапов: Surge — масштабирование через sharding, Scourge — снижение влияния MEV, Verge — упрощение верификации через Verkle-деревья, Purge — очистка исторических данных для облегчения узлов :::

:::details{badge=Глубже title="EIP process, AllCoreDevs и Ethereum Roadmap"} :::p EIP (Ethereum Improvement Proposal) — это официальный процесс предложения изменений в Ethereum. Любой может написать EIP, но путь до реализации долгий: Draft → Review → Last Call → Final. Ключевые технические изменения (Core EIPs) требуют одобрения на AllCoreDevs — еженедельных созвонах всех команд, разрабатывающих клиенты Ethereum. Формального голосования нет: решения принимаются через грубый консенсус разработчиков. :::

:::p Дорожная карта Ethereum состоит из нескольких параллельных этапов. The Merge (завершён в 2022) — переход с Proof of Work на Proof of Stake. The Surge — масштабирование через rollup-сети и danksharding, цель: более 100 000 транзакций в секунду. The Scourge — борьба с централизацией MEV и стейкинга. The Verge — переход на Verkle-деревья для более лёгкой верификации состояния. The Purge — удаление исторических данных для снижения нагрузки на узлы. The Splurge — прочие улучшения. :::

:::p Важно понимать: дорожная карта не фиксирована. Приоритеты меняются, сроки сдвигаются, некоторые этапы идут параллельно. Ethereum не имеет единого «CEO», который принимает решения — это координация тысяч людей. ::: :::

:::further{label="Для углублённого изучения"}

:::quiz{id=q-1-5-s5 correct=1 explanation="Верно. Технически хард-форк — это несовместимость правил: старые узлы не могут проверять новые блоки. Раскол происходит только если значительная часть сообщества продолжает работать по старым правилам. Ethereum согласовал The Merge со всеми командами клиентов за месяцы до события, и хотя небольшой PoW-форк (ETHW) всё же появился, он практически не получил экономической активности — на практике сеть осталась единой."} The Merge в Ethereum (2022) технически был хард-форком. Но сеть не раскололась на две цепи. Почему?

  • Потому что The Merge был технически мягким форком, а не жёстким
  • Потому что все команды клиентов и подавляющее большинство сообщества договорились заранее — никто не остался на старой PoW-цепочке
  • Потому что хард-форки никогда не вызывают раскол сети
  • Потому что Ethereum Foundation заставил всех перейти :::

:::section{mins=2} Твои монеты :::

:::lead Плановый [[gloss:fork|форк]] — ничего не нужно делать. Спорный [[gloss:hard fork|хард-форк]] — у тебя автоматически появляются монеты на обеих цепочках. :::

:::p При плановом [[gloss:hard fork|хард-форке]] тебе не нужно делать ничего. [[gloss:wallet|Кошельки]] вроде MetaMask или Rabby обновляются сами, биржи переключают свои [[gloss:node|узлы]] в фоне. Активы остаются теми же — просто теперь сеть работает по новым правилам. Большинство пользователей замечают плановый [[gloss:fork|форк]] только по новостям. :::

:::p Спорный [[gloss:hard fork|хард-форк]] работает иначе. В момент разделения твои монеты одновременно существуют на обеих цепочках — потому что обе цепочки делят одну и ту же историю до точки форка. Один [[gloss:private key|приватный ключ]] открывает доступ к обеим. Если до [[gloss:fork|форка]] у тебя было 10 ETH — после ты владеешь и 10 ETH, и 10 ETC. Никуда переводить ничего не нужно: монеты на второй цепочке уже твои. :::

:::p Главная опасность в этот момент — поспешные действия. Без правильной защиты [[gloss:transaction|транзакция]], отправленная в одной сети, может быть автоматически воспроизведена в другой ([[gloss:replay attack|replay-атака]]). Лучшая стратегия в первые дни после спорного [[gloss:fork|форка]] — не делать ничего и дождаться, пока ситуация прояснится. :::

:::callout{icon=💡} Представь библиотеку с двумя входами, которые делят одни и те же книги до определённой даты. После разделения у каждого входа появляются свои новые книги. Если у тебя был ключ до разделения — он открывает оба входа. Твои старые книги есть в обеих библиотеках. :::

:::keypoints{label="Ключевые моменты"}

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

:::details{badge=Глубже title="Replay protection, разделение UTXO и политика бирж"} :::p При форке BTC/BCH в 2017 году защиты от replay-атак изначально не было в самом протоколе. Чтобы безопасно разделить монеты, нужно было вручную создать транзакцию, которая будет валидна только в одной сети. Для Bitcoin (UTXO-модель) это называют «splitting UTXO»: сначала отправить BTC на новый адрес — это создаст выход (UTXO) только в сети BTC, которого нет в BCH. Потом работать с BCH отдельно. :::

:::p Для Ethereum (account-модель) ситуация проще: после добавления chainId в EIP-155 транзакции автоматически привязаны к конкретной сети. ETH/ETC-форк случился до EIP-155, поэтому пользователи того времени рисковали. Сегодня все новые EVM-форки получают уникальный chainId с самого начала. :::

:::p Политика бирж при спорных форках непредсказуема. Крупные биржи обычно поддерживают оба токена, но решают сами когда и как. Некоторые замораживают вывод на время форка. Часть маленьких токенов вовсе не листится. Если тебе важно получить оба токена — держи средства в собственном кошельке до и во время форка. ::: :::

:::further{label="Для углублённого изучения"}

:::quiz{id=q-1-5-s6 correct=1 explanation="Верно. После [[gloss:hard fork|хард-форка]] обе цепи делят одну историю до [[gloss:block|блока]] форка. Твой [[gloss:private key|приватный ключ]] валиден на обеих. Самохранение (аппаратный кошелёк) гарантирует что ты автоматически получаешь обе монеты. Политика бирж различается."} У тебя есть ETH на аппаратном кошельке когда происходит спорный хард-форк. Что ты получаешь?

  • Нужно выбрать какую цепь поддержать и потерять средства на другой
  • Автоматически монеты на обеих цепочках — один приватный ключ управляет обоими
  • Ничего — нужно перевести на биржу до форка, чтобы получить обе монеты
  • Только новую монету — старая сжигается в процессе форка :::

:::section{mins=1} Чеклист :::

:::lead План действий полностью зависит от типа форка. :::

:::p То, что нужно делать при форке, полностью зависит от его типа. Большинство форков не требуют никаких действий — они происходят незаметно в фоне. Кошелёк обновляется сам, биржа переключает узлы, баланс и транзакции остаются прежними. Узнать о таком форке можно только из новостей. :::

:::p Иначе обстоит дело при спорном [[gloss:hard fork|хард-форке]], который создаёт новый токен. Здесь есть что терять и что выиграть, и именно в такие моменты пользователи чаще всего совершают дорогие ошибки: отправляют [[gloss:transaction|транзакции]] без защиты от [[gloss:replay attack|replay-атак]], переходят по фишинговым ссылкам под видом «срочного обновления», доверяют монеты биржам, которые потом отказываются поддержать новый токен. :::

:::p Самое важное правило — не торопись. Форки никуда не исчезают. Новые токены можно получить через несколько недель после разделения. Спешка порождает ошибки, а ошибки в блокчейне необратимы. Все практические шаги ниже сводятся к одной мысли: подожди, пока сеть стабилизируется, а потом действуй осознанно. :::

:::keypoints{label=Чеклист}

  • ЕСЛИ ЭТО ПЛАНОВЫЙ ХАРД-ФОРК (Dencun, Shanghai, Pectra)
  • ✅ Ничего не делать — MetaMask и биржи обновляются автоматически
  • ✅ Просто ждать — всё пройдёт незаметно
  • ✅ В самокастодии: убедитесь, что кошелёк обновлён до блока форка
  • ЕСЛИ ЭТО СПОРНЫЙ ХАРД-ФОРК (появляется новый токен)
  • ⚠️ Не отправляй транзакции сразу после форка — жди стабилизации 24–48 часов
  • ✅ Проверь наличие [[gloss:replay attack|replay protection]] (chainId) — без неё одна подпись работает на обеих цепочках
  • ✅ Узнай позицию биржи — будет ли зачислен новый токен?
  • ✅ Чтобы получить обе стороны — держи монеты на своём кошельке до форка, не на бирже
  • ✅ После стабилизации — coin split: отправь монеты на разные адреса на каждой цепочке :::

:::keypoints{label="Ключевые моменты"}

  • Большинство форков не требуют от тебя никаких действий — кошельки и биржи обрабатывают плановые обновления автоматически в фоновом режиме
  • Главное правило при спорном форке — ждать. Форки не исчезают. Именно спешка в первые часы приводит к потере средств через replay-атаки и мошеннические сайты
  • Если хочешь получить оба токена при спорном форке — держи монеты в своём кошельке до форка, биржа может заморозить выводы или вовсе не зачислить новый токен
  • Обновляй кошелёк и узел только из официальных источников. Объявления о форках — излюбленный повод для фишинговых атак, которые маскируются под срочные обновления :::

:::details{badge=Глубже title="Разделение UTXO, проверка chainId и гигиена форков"} :::p Для цепочек на основе UTXO (как [[gloss:bitcoin|Bitcoin]]) после спорного [[gloss:fork|форка]] твои монеты существуют как идентичные UTXO на обеих цепочках. Процедура «coin split» чисто разделяет их. Безопасный способ: сначала отправить небольшую сумму на новый адрес в цепочке A. Это создаст UTXO только в цепочке A. Теперь оставшиеся монеты в цепочке A доказуемо отделены от монет в цепочке B. Только после этого можно свободно проводить транзакции. :::

:::p Для цепочек [[gloss:ethereum|Ethereum]]-типа стандартом стала защита chainId из EIP-155. Перед любой [[gloss:transaction|транзакцией]] в [[gloss:wallet|кошельке]] проверь chainId — он должен соответствовать той сети, в которой ты считаешь, что находишься. Типичные значения: Ethereum mainnet = 1, Ethereum Classic = 61, Arbitrum = 42161, Polygon = 137. Несовпадение означает, что транзакция не уйдёт куда ты ожидаешь — или, хуже, повторится в непредусмотренной цепочке. :::

:::p Правила гигиены при [[gloss:fork|форке]]. Первое: скачивай обновления [[gloss:node|узла]] и [[gloss:wallet|кошелька]] только из официальных репозиториев, где возможно — проверяй подписи. Второе: никогда не подписывай [[gloss:transaction|транзакции]] по письмам или сообщениям, которые якобы касаются форка — это фишинг. Третье: в день форка держи некритичные монеты в холодном хранилище. Четвёртое: подожди минимум 24–48 часов после форка перед любыми несрочными транзакциями — за это время активируется защита от replay-атак и схлынет мошенническая активность. ::: :::

:::quiz{id=q-1-5-s7 correct=2 explanation="Верно. Биржи могут поддержать новый токен или не поддержать, и даже если поддержат — часто замораживают выводы на несколько дней. Если новый токен важен для тебя, самостоятельное хранение до форка — единственный способ гарантировать доступ к обеим сторонам. Но сразу после форка с транзакциями не торопись — дождись активации защиты от replay-атак."} На завтра объявлен спорный хард-форк. Твои монеты на централизованной бирже. Что безопаснее сделать сегодня?

  • Продать всё — форки всегда обваливают цену
  • Не делать ничего — биржа автоматически зачислит оба токена
  • Перевести монеты на свой кошелёк до форка, если важно получить новый токен
  • Сразу после форка отправить транзакции, чтобы проверить работает ли новая цепь :::

:::callout{icon=💡} Подготовка к форку — как предполётный чеклист. На высоте 10,000 метров не импровизируют. Шаги одни и те же каждый раз — но только если выполнить их до вылета, а не после. :::

:::further{label="Для углублённого изучения"}