paint-brush
Анатомия многоблочной атакик@rnick
Новая история

Анатомия многоблочной атаки

к Nick Ruck11m2024/10/06
Read on Terminal Reader

Слишком долго; Читать

В статье рассматриваются риски использования оракулов цены Uniswap V3 TWAP в протоколах кредитования, особенно для активов с длинным хвостом. Эти оракулы могут быть манипулированы, что приведет к значительным потерям. Для снижения рисков протоколы могут использовать альтернативные оракулы и учитывать такие факторы, как объем Uniswap и спред ликвидности.
featured image - Анатомия многоблочной атаки
Nick Ruck HackerNoon profile picture
0-item


Защита активов с длинным хвостом в протоколах кредитования от атак TWAP Oracle


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


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


Оракулы цен Uniswap V3 TWAP использовались в таких кредитных протоколах, как Inverse Finance, Rari Capital и Euler Finance. Хотя Uniswap и его оракулы V3 неоднократно упоминаются в отчете, другие оракулы TWAP могут функционировать аналогичным образом. У этих оракулов есть ряд преимуществ, таких как свободная интеграция в протоколы и меньшая зависимость от централизованного управления, но недостатки мешают широкому использованию.


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


Команда Euler Finance написала отчеты, в том числе «Манипуляция оракулами Uniswap v3 TWAP» Майкла Бентли , и опубликовала атаку на оракул. симулятор для количественной оценки рисков кредитных протоколов с использованием оракулов цен Uniswap V3 TWAP. Частью внимания в отчете является анализ манипуляции спотовой ценой по крайней мере для одного блока. Это рассмотрение также уделяется симулятору Euler Oracle Tool, показанному на рисунке 1 ниже, поскольку он отображает значения и затраты на блок до десяти блоков в сгенерированных отчетах.


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


Например, на рисунке 1 ниже показана общая стоимость ($598,85 млрд) для выполнения атаки на один блок с 20% ценовым воздействием на пару USDC/WETH с комиссией 0,3%. Из-за ограничений кредитования, таких как факторы заимствования и обеспечения (коэффициент LTV), злоумышленникам обычно нужно было бы накачать или сбросить цены намного выше 20%, чтобы добиться прибыльной атаки.


Рисунок 1 - Пул комиссий USDC/WETH 0,3 Uniswap V3 TWAP Euler Oracle Attack Simulator


Условия манипулирования ценовыми оракулами


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


Наиболее используемые активы, такие как USDC, USDT и WETH, обычно достаточно ликвидны, чтобы предотвратить атаку манипуляции оракулом TWAP, особенно для быстрых кредитов. Это более очевидно в основной сети Ethereum, поскольку большинство цепей второго уровня и других имеют сравнительно меньшую ликвидность. Кредитные протоколы обычно используют ценовые оракулы Chainlink для активов голубых фишек в любом случае, поскольку защита этих активов, которые чаще всего устанавливаются в качестве залоговых активов, стоит затрат.


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


Изображение предоставлено Uniswap Labs


Auto Router найдет лучшую доступную цену, разделив сделки по нескольким пулам. Это означает, что если злоумышленник найдет кредитный пул с существенными депозитами, который использует пул с низким объемом и низкой ликвидностью на Uniswap V3 в качестве своего оракула, атака все равно может потерпеть неудачу, если другие пулы для того же токена будут иметь высокий объем и ликвидность, поскольку следующая сделка Auto Router будет использовать арбитражную возможность. Атаке еще сложнее добиться успеха, поскольку Auto Router может также разделять маршруты других не связанных токенов.


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


Атакующему также необходимо учитывать спред ликвидности на Uniswap V3, поскольку поставщики ликвидности могут предоставлять ликвидность полного диапазона или концентрированную ликвидность. Ликвидность полного диапазона, которая добавляет токены с обеих сторон для полного диапазона цен от нуля до бесконечности, увеличивает стоимость атаки. Концентрированная ликвидность, определенный диапазон, который может быть только односторонним, может увеличивать или уменьшать стоимость в зависимости от текущей цены и распределения ликвидности в пределах диапазона. Технический директор Wonderland 0xGorilla более подробно рассказывает об этом в своей статье Манипуляция Оракулом 101 .


«Безопасный» пул Uniswap не нуждается в том, чтобы миллиарды долларов токенов были распределены по всему диапазону, чтобы ценовой оракул был безопасным. Рассмотрим рисунок 1 выше, где для перемещения цены на 20% в одном блоке потребовалось 598,85 млрд долларов, и это все равно обошлось бы почти в 200 млн долларов на десять блоков. Этот пул имеет почти 70 млн долларов общей заблокированной стоимости. Однако спред этого пула не полностью находится в полном диапазоне, так как большая часть ликвидности сконцентрирована, что может увеличить риск.


Инструмент Euler oracle также может показать, что $10 миллионов сместят цену почти на 14% вниз при стоимости $1 миллиона и почти на 56% вверх при стоимости $1,7 миллиона для этого пула. Это может быть потенциально тревожным для использования в качестве оракула, но этот пул 0,3%, вероятно, не будет основным пулом, используемым в кредитных протоколах, поскольку пул 0,05% комиссии содержит $129 миллионов в TVL и $2,4 миллиарда в 7-дневном объеме, согласно данным Uniswap.


Профили ликвидности


Пользователи должны обратить внимание на различные профили спреда ликвидности, чтобы лучше понять риски депозитов на кредитных протоколах, которые используют ценовые оракулы Uniswap V3 TWAP. Графики на рисунке 2 демонстрируют различные профили ликвидности, которые пользователь может найти в пулах Uniswap.


График LP 1 ниже показывает профиль ликвидности, часто предполагаемый для пулов Uniswap V3. Ликвидность (L) обычно концентрируется вокруг текущей цены (P), но сужается дальше в каждом направлении двух токенов, Token01 и Token02.


LP 1 — Типичный пул ликвидности


LP 2 демонстрирует типичный профиль пары стейблкоинов, такой как USDC/USDT, где ликвидность чрезвычайно сконцентрирована в нескольких тиках вокруг текущей цены.


LP 2 — Типичный пул ликвидности стейблкоина


LP 3 демонстрирует, как может выглядеть полнофункциональный пул без концентрированных тиков ликвидности.


LP 3 — Полный спектр ликвидности пула


Ликвидность в LP 4 сосредоточена на стороне Token01 текущей цены, что делает ее дорогостоящей для сброса, но более дешевой для накачки, в то время как LP 5 демонстрирует противоположную картину.


LP 4 и 5 — Концентрированные пулы ликвидности


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


LP 6 демонстрирует это в действии, поскольку было бы менее затратно сбросить токен со старой цены (P1) в точке A на новую цену (P0) в точке B.


LP 6 — Изменение ценовых точек в пуле с низкой ликвидностью


Пользователи должны знать уровни ликвидности, спред и объем транзакций, если кредитный протокол использует ценовые оракулы Uniswap V3 TWAP для своих пулов. Высокоуязвимый для злоумышленника пул Uniswap будет иметь низкую ликвидность, низкий объем, ликвидность, сконцентрированную вдали от целевой цены и текущей цены, и никаких других пулов на Uniswap и других DEX или, по крайней мере, пулов с похожей структурой.


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


Анатомия многоблочной атаки


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


Как только злоумышленник определит, что он сможет получить прибыль, он может выяснить, что эффективнее — купить необходимые токены для атаки или занять их. Во-первых, он вычтет стоимость покупки токенов из прибыли от их продажи на Uniswap в ходе атаки. Это, скорее всего, будет убытком из-за проскальзывания, учитывая, что они пытаются снизить цену на пуле Uniswap с низкой ликвидностью. Однако проблема также может заключаться в том, что у них недостаточно токенов для покупки или у них недостаточно капитала для покупки достаточного количества токенов. Злоумышленник также может посчитать, что потенциальные убытки будут слишком высокими, если стоимость покупки достаточного количества токенов будет слишком высокой, если атака провалится.


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


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


Симулятор многоблочной атаки


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


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


Позиция пользователя 1 показывает максимальное количество токенов, которые злоумышленник может занять на основе внесенного им залога. Злоумышленник продаст максимальное количество заимствованных токенов в целевом пуле Uniswap и введет прибыль и новую цену в раздел Раунд ликвидации 1. Позиция пользователя 2 и последующие раунды ликвидации отображают новые значения с учетом необходимого залога для цены нового заимствованного токена.


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


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


Пользователи могут автоматизировать эту таблицу с помощью API, дополнений или разработать приложение на основе вычислений. Цель электронной таблицы — обеспечить методологию, которую сможет использовать любой человек в будущем, в случае, если API или приложение будут удалены, ограничены или изменены.

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


Multi-Block Attack Simulator содержит руководство пользователя, расчеты и пример для удобства пользователей. Пожалуйста, сделайте копию и отредактируйте синие ячейки на вкладке Simulator.


Симулятор многоблочной атаки


Выводы


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


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


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


Потенциальные решения могли бы рассмотреть объем Uniswap, спред ликвидности и количество токенов для определения риска на рынках кредитования и заимствования с длинным хвостом. Рынки, получившие более высокие рейтинги риска, могли бы быть заблокированы или ограничены до тех пор, пока больше ликвидности не будет предоставлено пулу оракулов на Uniswap. Некоторые из этих факторов были использованы в системе рейтинга оракулов Euler V1.


Другие решения разрабатываются как хуки Uniswap V4, а также обновления и пересмотры существующих протоколов, таких как Euler V2 и Bunni. Ценовые оракулы также могут стать более эффективными при использовании других типов децентрализованных бирж, таких как Time-Weighted Automated Market Makers (TWAMM) или протокола кредитования на основе книги ордеров, описанного Bedlam Research. Такие платформы, как Kamino Finance, демонстрируют ряд мер контроля рисков, включая динамический LTV, в то время как другие протоколы, включая GammaSwap, Timeswap и Ammalgam, предлагают решения без оракулов и другие решения.


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