Атака на экосистему DeFi с помощью флэш-кредитов для развлечения и прибыли
Аннотация Флэш-кредиты - это недавно разработанная конструкция смарт контрактов на блокчейне, позволяющая выдавать займы, которые действительны только в рамках одной транзакции и должны быть погашены до конца этой транзакции. Эта концепция привела к ряду интересных возможностей для атак, некоторые из которых
недавно использовались (февраль 2020 г.). Мы анализируем эти два вектора атак на флэш-кредиты DeFi с огромной рентабельностью инвестиций (свыше 500 000%). Мы продолжаем формулировать поиск параметров атаки на основе флэш-кредитов как задачу оптимизации состояния, лежащего в основе состояния DeFi и блокчейна Ethereum. Наши результаты показывают, как две ранее выполненные атаки могут быть усилены для получения прибыли в 829.5k USD (вместо 350k USD) и 1.1M USD (вместо 600k USD) соответственно. Продолжайте читать легко дальше, а для получения всех подробностей мы хотели бы обратиться к
нашему документу.
Флэш-кредиты - новое детище DeFi на the BlockВ традиционной экономике, когда кредитор предоставляет кредит заемщику, всегда существует риск того, что заемщик может не выплатить долг. Это подводит нас к следующему вопросу:
Есть ли возможность выдавать кредит без риска неуплаты долга?
Флэш-кредит, взятый из пула ликвидности, использован и погашен в рамках одной транзакции.
Здесь в игру вступают флэш-кредиты на основе блокчейна. Флэш-кредит - это кредит, действительный только в рамках одной транзакции блокчейна. Флэш-кредиты не выполняются, если заемщик не погасит свой долг до окончания транзакции. Это происходит, потому что блокчейн-транзакция может быть отменена во время ее выполнения, если условие погашения не выполняется.
Активы для флэш-кредиты берутся из пула смарт-контрактов, финансируемого публично. На настоящий момент некоторые из крупнейших пулов флэш-кредитов предоставлены
Aave и
dYdX, стоимость каждого из которых превышает 20M USD. Aave взимает процентную ставку в размере 0,09%, в то время как смарт-контракт dYdX требует только выплаты плюс 1 Wei в качестве комиссии.
Мы собрали данные флэш-кредита за период с 8 января 2020 года по 26 февраля 2020 года с полным архивом ноды Ethereum, собирающей все журналы событий из
смарт-контракта Aave. Обратите внимание, что Aave был запущен только в начале января 2020 года. Всего мы наблюдаем 105 кредитов, и большинство флэш-кредитов взаимодействуют с системами кредитования / обмена DeFi (например, Compound, Dai, MakerDAI, Uniswap). Транзакционные издержки флэш-кредита (например, gas) кажутся значительными (иногда превышающие 4M gas по сравнению с 21k gas при обычной транзакции эфира). Полную информацию можно найти на Рисунке 5 в
сопроводительном документе.
Сценарии использования флэш-кредита
Но для чего действительно нужны флэш-кредиты? Основываясь на отзывах сообщества и наших собственных размышлениях, мы выделили четыре варианта использования флэш-кредитов: арбитраж, wash трейдинг, залоговый обмен и флэш-минтинг.
АрбитражПолучив флэш-кредиты, трейдер может проводить арбитраж на различных DEX без необходимости держать денежную позицию или подвергаться риску волатильности. Трейдер может просто открыть кредит, провести арбитражную сделку и выплатить ссуду плюс проценты. Кто-то может утверждать, что флэш-кредиты делают арбитраж безрисковым, однако риски уязвимостей смарт-контрактов остаются.
Пример арбитража 18 января 2020 года флэш-кредит в 3137,41 DAI у Aave для проведения
арбитражной сделки на AMM DEX Uniswap. Для подготовки арбитража DAI конвертируется в 3137,41 SAI с использованием
миграционного контракта MakerDAO. Арбитраж преобразует SAI в 18,16 ETH с помощью SAI / ETH Uniswap, а затем немедленно конвертирует 18,16 ETH обратно в 3148,39 DAI с помощью DAI / ETH Uniswap. После арбитража 3 148,38 DAI возвращаются Aave для выплаты кредита плюс комиссии. Эта транзакция стоит 0,02 ETH газа. Обратите внимание, что даже несмотря на то, что отправитель транзакции получает 3,29 DAI от арбитража, эта конкретная транзакция не является прибыльной.
Wash трейдингДругой потенциальный вариант использования флеш-кредита - это wash трейдинг.
Объем торговли активом - это показатель его популярности. Поэтому предполагается, что наиболее популярные активы будут продаваться больше всего - например, Биткойн на сегодняшний день имеет самый высокий объем торгов (до 50 млрд долларов США в день) из всех криптовалют.
Мошеннические биржи или трейдеры могут вводить в заблуждение других трейдеров, искусственно завышая торговый объем актива для привлечения интереса. Согласно
отчету о наблюдении за рынком Blockchain Transparency Institute, с сентября 2019 года 73 из 100 крупнейших бирж на Coinmarketcap осуществляли "wash трейдинг" более чем 90% своих активов. Wash трейдинг ценными бумагами считается незаконной в соответствии с законодательством США.
Wash трейдинг на централизованных биржах может осуществляться с небольшими затратами и, возможно, даже без реальных активов. В тоже время на DEX необходимо, чтобы wash трейдеры держали и использовали активы. Флеш-кредиты могут устранить это «препятствие», чтобы снизить затраты на проценты, торговые комиссии и комиссии за транзакции. Wash трейдинг попытка увеличить 24-часовой объем рынка ETH / DAI Uniswap на 50% будет стоить, например, около 1298 долларов США (с флеш-кредитом от dYdX).
Пример Wash трейдинга2 марта 2020 года
флэш-кредит в размере 0,01 ETH, заимствованный у dYdX, провел две двусторонние сделки (сначала конвертировал 0,01 ETH в 122,1898 LOOM, а затем конвертировал 122,1898 LOOM обратно в 0,0099 ETH) на Uniswap ETH / LOOM. рынок. Объем торгов на рынке ETH / LOOM за сутки увеличился на 25,8% (с 17,71 доллара США до 22,28 доллара США) в результате проведения двух сделок.
В нашем документе мы подробно рассмотрим два других варианта использования флэш-кредитов, а именно обмен залогового обеспечения и флэш-минтинг.
Флэш-кредита, разбор полетовДалее мы наблюдаем две состязательные сделки, памп и арбитраж и одну атаку с помощью манипуляции оракулом.
Памп и арбитражТранзакция по флеш-кредиту, выполненная 15 февраля 2020 года, за которой последовали 74 транзакции, принесла прибыль в размере 1 193,69 ETH (350k USD) при комиссии за транзакцию в 132.36 USD (совокупная сумма 50 237 867 gas, 0,5 ETH). Сначала мы обсуждаем детали этой транзакции, а затем переходим к объяснению, как злоумышленник мог получить прибыль, превышающую 8829.5k USD (числа в прямоугольниках на рисунке ниже соответствуют оптимальным параметрам атаки, которые мы находим, а неокругленные числа выбраны противником).
Суть этой торговли включает в себя маржинальную торговлю на DEX (bZx) для увеличения цены WBTC / ETH на другом DEX (Uniswap) и, таким образом, создает возможность арбитража. Затем трейдер заимствует WBTC, используя ETH в качестве обеспечения (на Compound), а затем покупает ETH по «более низкой» цене на искаженном (Uniswap) рынке DEX. Чтобы максимизировать прибыль, злоумышленник затем конвертирует «дешевый» ETH для покупки WBTC по рыночной цене, которой не манипулируют, в течение двух дней после флэш-кредита. Затем злоумышленник возвращает WBTC (в Compound), чтобы выкупить обеспечение ETH. На следующем рисунке показана эта сделка, состоящая из двух частей. Для простоты мы опускаем преобразование между WETH (торгуемой версией ETH по стандарту ERC20) и ETH. Полная информация изложена в
документе.Памп флэш-кредита и арбитражная атака.
Манипуляции с ОракуломНиже мы обсудим детали второй сделки по флэш-кредиту, которая приносит прибыль в размере 2381,41 ETH (около 650k USD) в рамках
одной транзакции, выполненной 18 февраля 2020 года, с учетом комиссии за транзакцию в размере 118,79 USD. Мы снова обнаруживаем, что выбранные параметры атаки были неоптимальными и представляем параметры атаки, которые вместо этого принесли бы прибыль в размере 1.1M USD. Для этой атаки противник задействует три разных биржи для одной и той же рыночной пары sUSD / ETH (резерв Kyber-Uniswap, Kyber и Synthetix). Две из этих бирж (Kyber, Kyber-Uniswap) действуют как оракулы цены для кредитной платформы (bZx), у которой противник заимствует активы.
Ценовой оракул: одна из целей экосистемы DeFi - не полагаться на доверенные третьи стороны. Эта предпосылка применима как к хранению активов, так и к дополнительной информации, такой как цены на активы. Таким образом, одним из распространенных методов определения цены актива является использование информации о ценах на DEX в сети (например, Uniswap). Одним из недостатков этого подхода является опасность манипулирования ценой DEX.
Обзорный инжиниринг атаки: Суть этой сделки - манипуляция оракулом с использованием флэш-кредита на пару активов sUSD / ETH. Манипуляция снижает цену sUSD / ETH (с 268,30 sUSD / ETH до 106,05 sUSD / ETH на Uniswap и 108,44 sUSD / ETH на Kyber Reserve). На втором этапе злоумышленник получает выгоду от снижения цены sUSD / ETH, занимая ETH под залог sUSD. Полную информацию снова можно найти в
документе.
Атака с помощью манипуляций с оракулом.Генерация оптимальных параметров атаки DeFiОчевидно, что нужно найти нетривиальные (i) пути атаки, которые использовали злоумышленники, и (ii) определить оптимальные параметры для использования атак в полной мере. Поэтому мы обращаемся за помощью к методам ограниченной оптимизации, которые помогут нам достичь оптимальных параметров атаки.
Параметризованный оптимизатор DeFi.Чтобы использовать оптимизацию ограничений, мы сначала моделируем различные компоненты, которые могут участвовать в атаке DeFi. Мы количественно формализуем каждую конечную точку, предоставляемую платформами DeFi, как функцию перехода состояний S '= T (S, p) с ограничениями C (S; p), где S - данное состояние, p - параметры, выбранные противником, а S '- состояние выхода. Состояние может представлять, например, как состязательный баланс или любой внутренний статус платформы DeFi, в то время как ограничения устанавливаются требованиями к выполнению виртуальной машины Ethereum (например, баланс Ether объекта никогда не должен быть отрицательным числом) или правила, определенные соответствующей платформой DeFi (например, флэш-кредит должен быть погашен до завершения транзакции плюс комиссия за кредит). Обратите внимание, что при количественной оценке прибыли мы игнорируем выплаты процентов / комиссий по кредиту и комиссии за транзакции Ethereum, которые в нынешних атаках DeFi незначительны. Ограничения применяются к входным параметрам и выходным состояниям, чтобы гарантировать, что оптимизатор выдаст (для модели) допустимые параметры. Мы ссылаемся на документ для получения полной информации.
Продолжение...