btc→xmr 15.40xmr→btc 0.0642eth→xmr 4.65btc→usdt 8,169ltc→xmr 1.19best offer per pair · tick 60s
главная / блог / chainflip-tron-memo-exploit

Взлом Chainflip в TRON на $736 тыс.: как одну подписанную транзакцию выплатили дважды

автор Milan Voss · опубликовано · Оригинал на английском

Главное

  • 12 сентября 2026 года атакующий вывел 736 442,17 USDT из хранилища в TRON протокола Chainflip — кроссчейн-обмена — шестью несанкционированными выплатами.
  • Приём: в TRON Chainflip читает инструкции свопа из memo, прикреплённого к транзакции. Атакующий прикрепил новое memo к транзакциям, которые валидаторы Chainflip уже подписали. ПО сочло это неудавшимся свопом и сделало возврат поверх обычной выплаты — один и тот же вывод был оплачен дважды.
  • Chainflip приостановил сеть, исправил ошибку и к 16 сентября возобновил свопы на остальных маршрутах. Убыток пока несут поставщики ликвидности в USDT в TRON: их балансы обнулены, а причитающееся записано в блокчейне. Сроки выплат не раскрыты.
  • Для тех, кто меняет без KYC, урок — о риске протокола, а не о проверках: ошибка в том, как один маршрут читает инструкции, может заморозить или опустошить этот маршрут — независимо от позиции протокола по блокировке адресов.

Что такое Chainflip

Chainflip — кроссчейн-протокол обмена: он переносит стоимость между блокчейнами вроде Bitcoin, Ethereum, Solana и TRON без обёрнутых токенов и традиционных мостов. Поставщики ликвидности вносят активы в хранилища, которыми управляет набор валидаторов, и свопы рассчитываются из этих хранилищ. TRON — с нативным TRX и USDT в TRON (TRC-20) — заработал в Chainflip в середине июня 2026 года.

Что произошло, по порядку

дата (UTC)событие
август 2026Chainflip локализует отдельную попытку взлома логики кроссчейн-сообщений и возвратов в Ethereum; потерь у пользователей нет.
10 сентябряUSDT в TRON добавлен в Chainflip Lending.
12 сентября, 01:44–03:10Атакующий выводит USDT из хранилища TRON: восемь попыток за около 90 минут, начиная с малых сумм и примерно удваивая; шесть дают несанкционированные выплаты. Chainflip замечает, когда последующие выплаты USDT начинают не проходить, и приостанавливает свопы.
13 сентябряChainflip публикует отчёт об инциденте: потеряно 736 442,17 USDT, уязвимость — в его собственной обработке memo в TRON, остальные средства в безопасности.
16 сентябряСвопы и котирование возобновляются в остальной сети, TRON исключён.
17 сентябряПлан перезапуска: балансы поставщиков ликвидности в USDT в TRON обнуляются, причитающееся каждому копируется в отдельную запись в блокчейне.

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

Как работала ошибка с memo

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

В этом различии вся суть:

  1. Валидаторы Chainflip подписывают выплатную транзакцию в TRON — обычный вывод поставщика ликвидности.
  2. Пока она не рассчитана, атакующий прикрепляет новое memo к уже подписанной транзакции. Memo не входит в то, что утвердили валидаторы.
  3. ПО Chainflip, наблюдая за переводом, читает memo как инструкцию: своп, который не удался.
  4. Оно делает возврат за этот «неудавшийся своп» — поверх вывода, который уже выплатило.

Повторите шесть раз — и 736 442,17 USDT нет. Исправление Chainflip ограничивает, какие переводы TRON могут нести инструкции свопа в memo.

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

Кто платит

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

Один пользовательский своп на 115 654,41 USDT, который не удалось выплатить во время инцидента, остался в хранилище и описан как подлежащий выплате после перезапуска. Chainflip также пометил украденные средства у бирж и других сторон на случай, если они всплывут.

Chainflip и Bitget: два разных сбоя

Через две недели после Chainflip централизованная биржа Bitget потеряла около $387,5 млн — и часть этих денег была отмыта через кроссчейн-протоколы. Эти два инцидента часто упоминают вместе, но они разные:

Chainflip (12 сентября)Bitget (24 сентября)
Что этоКроссчейн-протокол обменаЦентрализованная биржа с KYC
Потери736 442,17 USDTоколо $387,5 млн
Слабое местоКак протокол читал memo в TRON после подписанияВнутренняя система подтверждений, доступ через zero-day в стороннем ПО
Ключи украдены?НетНет
Кто несёт убытокПоставщики ликвидности USDT в TRON (возмещение ожидается)Защитный фонд Bitget

В обоих случаях ключей не касались. Отказал код, который решает, когда их использовать. Наш полный разбор случая Bitget: Взлом Bitget: как $387,5 млн прошли через кроссчейн-свопы.

Что это значит, если вы меняете без KYC

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

  • Проверяйте маршрут, а не только протокол. Протокол может работать, пока маршрут одной сети приостановлен или исключён.
  • Не отправляйте во время паузы. Если протокол объявил об инциденте, дождитесь его сообщения «возобновлено», прежде чем вносить депозит.
  • Всегда указывайте адрес возврата, где интерфейс это позволяет.
  • Ликвидность — это заём протоколу. Если вы предоставляете ликвидность, вы несёте ошибки протокола — как теперь поставщики USDT в TRON в Chainflip.

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

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

Сколько украли у Chainflip? 736 442,17 USDT — из хранилища Chainflip в TRON, шестью несанкционированными выплатами 12 сентября 2026 года. Chainflip утверждает, что остальные средства не пострадали.

Как работал взлом Chainflip в TRON? В TRON Chainflip читает инструкции свопа из memo, прикреплённого к транзакции. Атакующий прикрепил новое memo к транзакциям, которые валидаторы Chainflip уже подписали; ПО Chainflip сочло это неудавшимся свопом и сделало возврат поверх обычной выплаты, так что шесть выводов были оплачены дважды.

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

Chainflip снова работает? Chainflip сообщил, что свопы и котирование возобновились в остальной сети к 16 сентября 2026 года, а маршрут TRON на тот момент был исключён. Проверьте статус маршрута, прежде чем отправлять USDT в TRON.

Это то же самое, что взлом Bitget? Нет. Bitget, централизованная биржа, потерял около $387,5 млн, когда атакующие обманули его внутреннюю систему подтверждений. Потеря Chainflip возникла из-за ошибки в том, как его протокол читал memo в TRON. Оба случая показывают, что слабое место часто — код вокруг ключей, а не сами ключи.

Источники

У нас нет коммерческих отношений с Chainflip. Статья обновляется, когда Chainflip публикует полный разбор или план выплат.