Перейти к содержанию

Как безопасно выполнить межсетевой перевод

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

Обновлено

Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

Краткий ответ

Безопасный межсетевой перевод представляет собой цепочку доказательств, а не одно подтверждение в кошельке. Сначала определите точный актив и пригодное конечное состояние; проверьте маршрут и исполнимую котировку; предоставьте только необходимое полномочие; завершите ограниченный тест; отправьте операцию один раз; отдельно отслеживайте состояния источника, сообщения и назначения; затем сверьте точный полученный контракт, разрешения и экономический результат.

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

Чек-лист межсетевого перевода
0 / 5
0 проверено; 5 осталось

Завершение этой проверки не доказывает безопасность актива, транзакции или системы.

Как это работает

  1. Определите полномочие и конечное пригодное состояние. Запишите исходный актив, требуемые актив и протокол назначения, получателя, сумму, предельные убыток и ожидание, а также должен ли итоговый токен погашаться, торговаться или приниматься в обеспечение. Не начинайте с одного тикера.
  2. Зафиксируйте снимок маршрута по независимым официальным источникам: протокол и версию, исходный и целевой chainId или домен, шлюз, маршрутизатор, мессенджер, прокси, получателя разрешения, пару токенов, формат адреса получателя, число десятичных знаков, сырую сумму, блок и время. После каждого события провайдера chainChanged повторно проверяйте активные сеть и счет кошелька.
  3. Изучите правила доверия и восстановления для конкретного направления. Запишите требуемую финальность источника, верификатора или аттестатора, административные полномочия и обновления, приостановку и лимиты, исполнителя назначения, уникальность сообщения, пути повтора, требования, тайм-аута и возврата. Соотносите это с архитектурой моста, не выводите безопасность из названия.
  4. Составьте исполнимую котировку и реестр финансирования. Отделите основную сумму и комиссии протокола или поставщика ликвидности в токенах от газа нативной валюты в обеих сетях, проскальзывания, ценового воздействия и стоимости ожидания. Запишите время и срок котировки, емкость, минимальный выход и дедлайн; убедитесь, что полученный токен пригоден для следующего действия.
  5. Ограничьте полномочия и проведите ограниченный тест. Проверьте точного получателя разрешения ERC-20 и текущее разрешение, permit или полномочие оператора; держите газ в обеих сетях; изучите value и calldata; протестируйте тот же маршрут и получателя с заранее заданным абсолютным лимитом потерь. Успех малой суммы не доказывает емкость крупного маршрута или будущую безопасность.
  6. Перед полным переводом обновите данные о сети, счете, контрактах, балансах, nonce, котировке, разрешении, приостановке и лимитах. Отправьте исходное действие один раз и сохраните квитанцию, ID сообщения или nonce, ссылку на доказательство или аттестацию и целевую транзакцию. Отслеживайте состояния «подписано», «отправлено», «включено», «финализировано», «готово», «передано», «исполнено», «подтверждено», «сбой», «истекло» и «доступен возврат» отдельно.
  7. Диагностируйте по состоянию и сверяйте итог. Повторяйте только документированный идемпотентный шаг назначения, доказав наличие исходного действия и сообщения, отсутствие зачисления получателю и неиспользованность сообщения; никогда не повторяйте депозит или сжигание вслепую. Подтвердите точный целевой токен, фактический баланс и путь выхода, все комиссии, остаточное разрешение и незавершенные либо возвращенные требования, затем отзовите лишние полномочия и сохраните доказательства.

Разбор примеров

  • Проверка идентичности сырых единиц. Перевод 2,500.000000 USDC из проверенного токена с 6 decimals кодируется как 2,500 * 10^6 = 2,500,000,000 raw units. Использование 18 decimals закодировало бы 2,500,000,000,000,000,000,000, то есть в 10^12 раз больше нужной сырой суммы. Перед подписью нужно проверить адреса исходного токена, получателя разрешения, целевого токена и получателя.
  • Реестр выхода и экономического результата. Основная сумма равна 12,000 units, комиссия протокола — 18 units, комиссия поставщика ликвидности — 24 units; поэтому выход целевого токена равен 12,000 - 18 - 24 = 11,958 units. Исходный газ составляет 0.004 ETH, целевой — 0.0015 ETH; при 2,500 USD/ETH это $10 и $3.75. Если одна единица стоит $1, общие экономические издержки равны $18 + $24 + $10 + $3.75 = $55.75, полученное чистое благосостояние — $11,944.25, а токенный баланс остается 11,958 units.
  • Последовательные партии меняют только ограниченную экспозицию. Однократный перевод 12,000 units подвергает текущей операции 12,000 units и условно требует $9 фиксированного газа. Три последовательные партии по 4,000-unit со сверкой перед каждой следующей ограничивают текущую сумму в процессе величиной 4,000 units, но стоят 3 * $9 = $27, то есть на $18 больше. Ранее полученные мостовые представления остаются под риском, пока не погашены или не выведены.
  • Повтор целевого шага, специфичный для продукта. В примере CCTP пользователь сжигает 2,500 USDC с nonce сообщения 41; аттестация завершается, но первая целевая эмиссия откатывается, израсходовав 0.0024 ETH. При 2,500 USD/ETH это стоит $6. Убедившись в отсутствии зачисления и в неиспользованном nonce, пользователь пополняет 0.002 ETH и следует документированной процедуре CCTP для повтора эмиссии, добавляя $5; одна эмиссия зачисляет 2,500 USDC, а совокупный целевой газ составляет $11. Эту идемпотентную границу повтора нельзя переносить на другие мосты.

Риски

  • Выбор неправильного источника, назначения, chainId или домена.
  • Использование неверного маршрута, развертывания или версии протокола.
  • Переход на фишинговый интерфейс, страницу документации или аккаунт поддержки.
  • Разрешение поддельному шлюзу, маршрутизатору, мессенджеру, прокси или получателю разрешения.
  • Принятие неверного сопоставления токена или одноименного представления.
  • Отправка неправильному получателю, в неверном формате адреса, с неверной памяткой или на неверный целевой счет.
  • Неверное чтение десятичных знаков или сырых единиц.
  • Предоставление избыточного approval, permit или полномочия оператора.
  • Подписание вредоносных calldata или непредусмотренной нативной стоимости.
  • Использование устаревшей котировки, отсутствие минимального выхода или истекший дедлайн.
  • Превышение емкости маршрута, лимитов или допустимого проскальзывания.
  • Недостаток газа в исходной сети.
  • Недостаток газа для требования, повтора или возврата в целевой сети.
  • Опора на недостаточную финальность источника или реорганизованный блок.
  • Задержка доказательства, аттестации, ретранслятора или исполнителя.
  • Откат в целевой сети либо неподдерживаемый счет или токенный hook.
  • Слепой повтор депозита, сжигания или уже использованного сообщения.
  • Пропуск приостановки, обновления, смены администратора или конфигурационного дрейфа.
  • Получение неликвидного, утратившего привязку, непогашаемого или неподдерживаемого токена.
  • Ошибки в приватности, фальшивая поддержка, налоги, санкции, хранение или доказательства восстановления.

Распространенные заблуждения

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

Связанные темы

Источники

Навигация

Поиск по вики...