Что такое блокчейн-мост и почему через него опасно переводить криптовалюту

267
Что такое блокчейн-мост и почему через него опасно переводить криптовалюту

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

Главная мысль здесь немного неприятнее привычного объяснения про «перенос токенов между сетями». В большинстве случаев монета физически никуда не путешествует. Мост блокирует, уничтожает или принимает актив в одной сети, после чего другая часть системы разрешает выпустить либо разблокировать соответствующий актив в другой. Поэтому безопасность перевода зависит уже не только от двух блокчейнов. Между ними появляется третий механизм, которому приходится доказывать, что событие в первой сети действительно произошло. Именно такой дополнительный слой доверия неоднократно становился целью атак на сотни миллионов долларов.

Что происходит с монетой внутри блокчейн-моста

Начнем с классической схемы lock and mint, то есть «заблокировать и выпустить». Допустим, я хочу перенести 1 ETH из сети A в сеть B. Смарт-контракт моста принимает мой ETH в сети A и блокирует его. Затем мост убеждается, что депозит действительно состоялся, и выпускает в сети B эквивалентный токен. Такой актив часто называют обернутым токеном.

Сеть A
 
 Пользователь
      |
      | 1 ETH
      v
 Контракт моста
      |
      | ETH заблокирован
      v
 [резерв]
 
      ↓ подтверждение события
 
 Механизм проверки моста
 
      ↓ сообщение
 
 Сеть B
 
 Контракт моста
      |
      | выпуск 1 wrapped ETH
      v
 Пользователь

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

Есть и схема burn and mint. Токен в одной сети сжигают, а в другой выпускают заново. Такой вариант подходит активам, чей эмитент или протокол умеет контролировать выпуск сразу в нескольких сетях. Еще один вариант использует пулы ликвидности. Пользователь кладет актив в одном блокчейне, а поставщик ликвидности или протокол выдает эквивалентный актив из резерва в другом. Формально получается уже не столько перенос одной и той же монеты, сколько синхронизированный обмен.

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

Здесь и начинается самая интересная часть. Один блокчейн не может просто спросить другой: «Пользователь действительно положил 100 ETH?» Нужен механизм проверки. В зависимости от архитектуры такую работу выполняют валидаторы моста, мультиподпись, оракулы, отдельная сеть, легкий клиент другой цепочки либо система доказательств.

Поэтому фраза «децентрализованный мост» сама по себе почти ничего не говорит о безопасности. Я всегда смотрел бы на другой вопрос: кто и каким способом имеет право сообщить контракту в сети B, что деньги в сети A действительно заблокированы?

Почему мост может оказаться слабее самих блокчейнов

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

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

Хороший пример дал мост Ronin, связанный с Axie Infinity. В 2022 году злоумышленники получили контроль над достаточным количеством валидаторных ключей и вывели 173 600 ETH вместе с 25,5 млн USDC. Стоимость похищенных активов тогда оценивали примерно в $625 млн. Позднее ФБР связало кражу с северокорейской Lazarus Group. Мы подробно разбирали взлом Ronin, а официальное расследование ФБР оценивало похищенный Ethereum примерно в $620 млн.

Другой класс проблем показал Wormhole. В феврале 2022 года злоумышленник смог создать 120 тысяч wETH без соответствующего обеспечения. Фактически мост поверил доказательству, которому верить не следовало. Стоимость похищенных активов превышала $320 млн. В разборе атаки Wormhole хорошо видна принципиальная проблема: если проверка межсетевого сообщения дает сбой, контракт назначения способен выпустить активы, которых на исходной стороне никто не блокировал.

Можно провести аналогию с фальшивой распиской. Хранилище в городе A принимает золото и отправляет в город B подписанное сообщение «выдайте владельцу один слиток». Пока подпись невозможно подделать, система работает. Если злоумышленник научился печатать убедительные расписки, ему уже не требуется взламывать само хранилище.

Исследователи, систематизировавшие безопасность кроссчейн-мостов, находят гораздо больше вариантов атак, чем просто ошибки смарт-контрактов. Уязвимыми оказываются логика проверки сообщений, внешняя инфраструктура, закрытые ключи, обновления контрактов, оракулы, валидаторы и процедуры управления. Поэтому я бы не сводил проблему к привычному тезису «в коде нашелся баг». Архитектура сама создает сложную границу между несколькими независимыми системами.

Показателен Nomad. После обновления контракта в 2022 году возникла ошибка проверки сообщений. Когда кто-то нашел способ вывести средства, другим участникам оказалось достаточно копировать рабочую транзакцию и менять адрес получателя. Началось почти коллективное разграбление моста, а потери приблизились к $190 млн. Позднее расследование получило продолжение, о котором мы писали в материале про атаку Nomad.

Пять рисков, которые я проверял бы перед переводом

  • Кто подтверждает перевод. Если решение принимает небольшой набор валидаторов, компрометация нескольких ключей способна оказаться эквивалентом взлома всего моста.
  • Где хранится обеспечение. Мосты типа «заблокировать и выпустить» могут накапливать огромные резервы. Чем больше активов лежит в одном контракте, тем привлекательнее цель.
  • Можно ли обновить контракт. Возможность быстро исправлять ошибки полезна, но административный ключ одновременно создает привилегированный путь управления. Нужно понимать, кто способен поменять код, остановить мост или вывести активы.
  • Что произойдет при ошибочном сообщении. Если ложное подтверждение сразу приводит к необратимому выпуску токенов, одна ошибка превращается в прямую потерю обеспечения.
  • Как ведет себя обернутый актив после взлома. Даже пользователь, которого непосредственно не атаковали, может получить токен, обеспеченность которого исчезла. Цена такого актива способна отделиться от цены оригинала.

Последний пункт легко недооценить. Пусть в Ethereum заблокировано 100 млн долларов обеспечения, а в другой сети обращаются соответствующие обернутые токены. Если атакующий выводит обеспечение из контракта, записи на второй стороне не исчезают автоматически. Владельцы по-прежнему видят токены в кошельках, но экономический смысл токена уже изменился. Цифровая запись осталась, полноценного обеспечения под ней может больше не быть.

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

Отдельный риск связан с пользовательскими ошибками. Поддельные сайты мостов, вредоносные разрешения смарт-контрактам и фишинговые подписи могут привести к потере активов даже при полностью исправном протоколе. Проверять нужно адрес сайта, контракт, сеть назначения, токен и разрешение, которое кошелек предлагает подписать.

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

«Без доверия» не означает «без риска»

Маркетинг любит выражение trustless bridge, которое обычно переводят как «мост без доверия». Формулировка создает впечатление, будто пользователь вообще никому не доверяет. Точнее говорить о минимизации дополнительных предположений о доверии.

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

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

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

Еще один популярный миф звучит так: «транзакции записаны в блокчейн, поэтому мост нельзя взломать». Блокчейн действительно способен надежно зафиксировать неверную операцию. Если уязвимый контракт или скомпрометированный набор валидаторов разрешил выпуск 100 миллионов фальшивых токенов, распределенная сеть честно и необратимо запишет результат атаки. Неизменяемость защищает журнал, а не правильность бизнес-логики.

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

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

Поэтому главный вопрос перед использованием моста для меня звучит не «какую комиссию возьмут?» и даже не «сколько минут займет перевод?». Сначала нужно выяснить, какое доказательство заставляет другую сеть выдать деньги и что произойдет, если механизм проверки обманут. Если ответ невозможно найти или понять, крупную сумму через такой мост я бы не отправлял.

блокчейн мост криптовалюта блокчейн-мост кроссчейн токен смарт-контракт безопасность
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
ИБ-турне 2026
22 сентября –
17 ноября

Большой ИБ-тур от «СёрчИнформ»

ИБ-конференции в 30 городах РФ и СНГ для профи и бизнеса. Узнайте, как выстраивать безопасность при нехватке ресурсов и угрозах ИИ.

Занимайте место
Реклама. ООО "СёрчИнформ", ИНН 7704306397, 18+

Юрий Кочетов

Здесь я делюсь своими не самыми полезными, но крайне забавными мыслями о том, как устроен этот мир. Если вы устали от скучных советов и правильных решений, то вам точно сюда.

Рекламодатель
ООО «СерчИнформ»
ИНН: 7704306397
searchinform.ru↗
ИИ-ассистент СерчИнформ