
20 мая 2026 года злоумышленник обманул мост MAP Protocol / Butter Bridge и незаконно выпустил себе квадриллион MAPO-токенов. Из всей этой горы удалось реализовать всего лишь часть: около 52.21 ETH (~$110 тыс.) были обменяны через Uniswap и отправлены в Tornado Cash. Оставшаяся масса MAPO на адресе атакующего фактически ничего не стоит: торговля приостановлена, биржи предупреждены, а эти токены будут исключены из будущего обмена.
Что такое мост и как он работает
MAP Protocol — это блокчейн-протокол с собственным токеном MAPO. Butter Bridge — встроенный мост, позволяющий переводить MAPO между сетями Ethereum, BNB Chain и основной сетью MAP Protocol.
Мост работает так: резидент отправляет сообщение «хочу перевести N токенов в сеть X», контракт проверяет подпись и данные сообщения, выполняет соответствующее действие. Ошибка была в том, как контракт собирал это сообщение из частей.
Почему это стало возможным
Проблема — в способе объединения полей сообщения для проверки. Объясним на простом примере.
Представьте: вы проверяете товарный чек. На нём написано: «Покупатель: Иван Иванов… Товар: Молоко… Цена: 100 рублей». Вы смотрите на общую сумму чека и считаете её верной. Но не смотрите на каждую строчку отдельно: название товара, цену, дату. Кто-то подрисовал чек так, что цифры из одной строчки перетекли в другую. Сумма на вид осталась правильной, а содержание изменилось.
Точно так же работал мост. Контракт использовал функцию abi.encodePacked — она склеивает несколько полей сообщения в одну строку без разделителей, а затем хэшировал её. Проблема в том, что если цифры склеиваются без разделителей, атакующий может подобрать такую комбинацию цифр, чтобы получить тот же хэш — даже если данные внутри кардинально другие. Именно так атакующий подставил поддельное сообщение, которое прошло проверку как уже разрешённое, и получил выпуск колоссального количества MAPO.
Детали расследования: движение средств
1️⃣ На адрес атакующего 0x40592025392BD7d7463711c6E82Ed34241B64279 были зачислены 1 000 000 000 000 000 MAPO (10 в 15-й степени) — триллион токенов.
2️⃣ Из всей этой массы атакующий смог реализовать лишь малую часть: 1 млрд MAPO были обменяны через Uniswap (децентрализованная биржа) на 52.21 ETH.
3️⃣ Почти все полученные ETH ушли в Tornado Cash.
4️⃣ Оставшиеся у атакующего около 999 999 000 000 000 000 MAPO — это цифра впечатляющая, но на деле бесполезная: MAP Protocol приостановил обмен, предупредил биржи, а эти токены будут исключены из будущего обмена на новый MAPO.
Заключение
Атака на Butter Bridge — пример классической уязвимости мостов: слияние данных без разделителей открывает дверь для поддельных сообщений. Фактически реализованная сумма — 52.21 ETH. Остальные MAPO атакующего — замороженные токены, которые нельзя продать.


