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

Остаточный риск — это та часть риска, которая сохраняется после всех разумных мер защиты и подлежит не устранению, а ограничению: уменьшению суммы под угрозой и сокращению числа случаев, когда она под угрозу попадает.

Два вида адресов и почему риск у них разный

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

Адрес от ключа выводится из приватного ключа арифметикой, без участия сети, и потому существует в каждой совместимой сети с момента её запуска, даже если вы туда никогда не заходили. Присланные средства там ваши. Доступ к ним даёт тот же ключ. Неудобство сводится к тому, что кошелёк должен уметь подключаться к этой сети и показывать её баланс.

Адрес от кода устроен иначе: он вычисляется заранее по правилам детерминированного развёртывания из адреса создателя, набора байт-кода и соли, поэтому совпадает в разных сетях лишь при совпадении всех трёх составляющих. Развёртывание при этом отдельное событие в каждой сети. Пока оно не произошло, по адресу пусто. Средства на такой адрес уходят в состояние, где распорядителя нет, и появляется он только с развёртыванием контракта.

Правило разделения сетей добавляет третий слой. Подпись транзакции по EIP-155 включает идентификатор сети, и это закрывает повтор подписанной транзакции в соседней сети, но не мешает отправить средства на ту же строку руками. Защита от повтора есть. Защиты от выбора не той сети нет. Разделение прав подписи, при котором управление заведомо лежит на коде, разобрано в материале про мультисиг-хранилище для семьи или небольшой команды.

Пять состояний адреса: где риск остаётся

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

Как проверить сети адреса и оценить остаточный риск

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

  1. Откройте адрес в обозревателе целевой сети и посмотрите, есть ли по нему код: обозреватель показывает это отдельной вкладкой или пометкой контракта рядом с балансом.
  2. Если кода нет, а в другой сети по той же строке контракт есть, считайте адрес неразвёрнутым в целевой сети и отправку туда отложите.
  3. Выясните, чем развёрнут контракт в исходной сети: фабрика детерминированного развёртывания, адрес создателя и соль определяют, воспроизводится ли адрес вообще.
  4. Проверьте, что ваш кошелёк умеет подключаться к целевой сети, и добавьте её по параметрам с официального ресурса сети, а не из всплывающего предложения на странице.
  5. Сделайте пробный перевод малой суммой и дождитесь появления её на балансе в интерфейсе, которым будете распоряжаться дальше.
  6. Оцените границу потерь: решите, какую сумму вы готовы потерять на этом маршруте, и не превышайте её до первого успешного прохода в обе стороны.
Схема из пяти шагов: открыть адрес в обозревателе целевой сети, проверить наличие кода по адресу, выяснить способ развёртывания контракта, добавить сеть по официальным параметрам, сделать пробный перевод малой суммой
Схема из пяти шагов: открыть адрес в обозревателе целевой сети, проверить наличие кода по адресу, выяснить способ развёртывания контракта, добавить сеть по официальным параметрам, сделать пробный перевод малой суммой
Идентификатор сети входит в подписываемые данные по EIP-155, и это разделяет подписи между совместимыми сетями. Детерминированное развёртывание по EIP-1014 даёт адрес из трёх составляющих: адреса создателя, соли и хеша байт-кода, — совпадение адреса в двух сетях требует совпадения всех трёх. Данные на 14 октября 2026 года по текстам EIP-155 и EIP-1014 на ресурсе eips.ethereum.org.

Резервная копия и граница потерь

Запись seed-фразы закрывает адреса от ключа и не закрывает адреса от кода: фраза восстановит подписанта, но не восстановит контракт, которого в целевой сети нет, и это разделение стоит зафиксировать письменно до первого межсетевого перевода. Лист тот же. Строк добавляется три.

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

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

Отправка средств на адрес смарт-контрактного кошелька в сеть, где контракт не развёрнут, не отменяется и не оспаривается. Транзакция подтверждена, получатель формально существует, распорядителя по нему нет — и помочь здесь может лишь развёртывание того же контракта по тому же адресу, если оно возможно.

Типовые ошибки, которые стоят денег

  • Перенос адреса смарт-контрактного кошелька в новую сеть по принципу «строка та же, значит и адрес мой», без проверки наличия кода по этой строке в состоянии целевой сети.
  • Добавление сети по параметрам из всплывающего окна на странице. Параметры бывают поддельными.
  • Вывод о поддержке сети по тому, что кошелёк показал нулевой баланс вместо ошибки: нулевой баланс означает отсутствие средств, а не отсутствие сети.
  • Крупный первый перевод по непроверенному маршруту. Пробная сумма дешевле любого разбора.
  • Расчёт на поддержку со стороны сервиса-получателя, тогда как по неразвёрнутому адресу у сервиса нет ни ключа, ни кода, ни правового основания распоряжаться.
  • Смешение видов адресов в одной записи без пометки.

Что делать, если средства ушли в сеть без развёрнутого контракта

Положение разбирается, а не отменяется, и первый шаг здесь — выяснить, воспроизводимо ли развёртывание, потому что от ответа зависит всё остальное и ничего другого на этом этапе выяснять не нужно. Деньги лежат по адресу. Распорядителя нет.

Если контракт разворачивался фабрикой детерминированного развёртывания, та же фабрика существует в целевой сети, а соль и байт-код вам известны — развёртывание повторяется, и по адресу появляется код с прежними правилами подписи. Это рабочий путь. Он требует технических действий и расходов на газ.

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

Чек-лист оценки остаточного риска

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

Частые вопросы

Как понять, мой адрес от ключа или от кода?

По обозревателю. Откройте адрес и посмотрите, есть ли по нему байт-код: у адреса от кода обозреватель показывает вкладку контракта, у адреса от ключа её нет. Второй признак косвенный: если кошелёк создавался как смарт-аккаунт и подписывает операции через точку входа, адрес почти наверняка от кода.

Средства пришли в сеть, которой мой кошелёк не знает. Они потеряны?

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

Почему один и тот же смарт-кошелёк имеет разные адреса в разных сетях?

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

Можно ли свести остаточный риск к нулю?

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

Защищает ли идентификатор сети в подписи от отправки не в ту сеть?

Нет, это другая задача. Идентификатор сети не даёт повторить уже подписанную транзакцию в соседней сети, и только. Выбор сети при отправке остаётся за человеком и его кошельком, поэтому проверка целевой сети и пробный перевод никакой подписью не заменяются.

Материалы по теме:

Первоисточники по разделению сетей и по вычислению адреса открыты. Текст EIP-155 на ресурсе eips.ethereum.org описывает включение идентификатора сети в подписываемые данные, а текст EIP-1014 там же задаёт правило вычисления адреса при детерминированном развёртывании из адреса создателя, соли и хеша байт-кода.

Вердикт

Совпадение строк между сетями — совпадение внешнее, и доверять ему нельзя. Адрес от ключа переносится куда угодно, адрес от кода живёт лишь там, где код развёрнут, и разница между ними становится видна только в обозревателе целевой сети. Остаточный риск здесь не убирается: он назначается суммой, которую владелец согласен потерять на непроверенном маршруте. Из редакционной практики: самые дорогие обращения начинались с уверенности, что адрес один и тот же во всех сетях. Разбор маршрутов и свежие случаи — в Telegram-канале Cryptium.