Манипуляция ценой в собственном пуле лишила протокол 10,7 ETH
16.09.2026 CoinKyt Company
3 мин
share button
14 сентября 2026 года злоумышленник искусственно разогнал цену токена SPIRAL в пуле протокола Spiral, внёс его в залог по завышенной стоимости и получил займ в ETH. Чистый ущерб составил около 10,7 ETH. Расследование «КоинКит» анализирует, как именно сработала атака и куда ушли средства.

 


Введение


Spiral
— это протокол кредитования в сети Ethereum. Пользователи могут вносить токены в качестве залога и получать взаймы другие активы. Размер займа зависит от стоимости залога.

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

Залог
— это актив, который пользователь оставляет в протоколе как гарантию возврата займа.

 


Ход инцидента


1️⃣ Злоумышленник потратил 54 ETH на покупку 141 059 токенов SPIRAL через пул ликвидности. Эта крупная покупка резко подняла текущую цену токена в пуле.

2️⃣ Он передал купленные токены в протокол Spiral как залог. Система оценила их стоимость по новой, завышенной цене.

3️⃣ Протокол выдавал займ в размере 40% от оценки залога. Из-за искусственно раздутой цены злоумышленник получил право занять значительно больше ETH, чем реальная стоимость его токенов.

4️⃣ Чтобы обойти защиту, он использовал шесть разных кошельков. Защита проверяла, не совершал ли конкретный кошелёк обмен или заём в текущем блоке. Новый кошелёк проходил проверку, хотя цена в пуле уже была сдвинута предыдущей покупкой.

5️⃣ В результате было получено около 64,7 ETH. Вычтем затраты на покупку токенов (54 ETH) — чистый ущерб для протокола составил примерно 10,7 ETH.

 


Почему это стало возможным


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

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

Защита noSameBlockSwap проверяла только конкретный адрес отправителя: совершал ли этот кошелёк операции в текущем блоке. Она не отслеживала общее состояние пула и не блокировала операции с завышенной ценой. Использование нескольких кошельков позволило обойти эту проверку.

 


Детали расследования: движение средств


Полученные ~64,7 ETH поступили на адрес злоумышленника:
0x859E69A29244a10800a34Ee66919426C02afa2F0

Оттуда средства были переведены на адрес:
0xB201d197a7c2c0c1319165F6c11124593D090cdb
где и были разделены:

  • 40 ETH отправлены в миксер Tornado Cash — сервис, который скрывает источник средств;
  • 28,7 ETH направлены на депозитный адрес Fixed Float — криптовалютного обменника, после чего ушли на горячий адрес сервиса.

 


Заключение


Инцидент в Spiral показал, что оценка залога по текущей цене внутреннего пула без усреднения по времени делает протокол уязвимым для манипуляций. Защита, направленная только на проверку конкретного адреса, не спасла от атаки с нескольких кошельков.