- Вернуться к меню
- Вернуться к менюЦены
- Вернуться к менюИсследовать
- Вернуться к менюКонсенсус
- Вернуться к менюПартнерский материал
- Вернуться к меню
- Вернуться к меню
- Вернуться к менюВебинары и Мероприятия
Манипуляции с Mempool позволили украсть $8 млн залога MakerDAO в «черный четверг»: отчет
Новые исследования показывают, что мартовское событие «Черный лебедь» для Ethereum могло быть сложным планом нажиться на глобальной распродаже.
Вывод:
- Компания Blocknative, которая хранит данные о мемпулах Ethereum по всему миру, может объяснить атаку «нулевой ставки» на MakerDAO в «черный четверг».
- Мемпулы — это хранилище транзакций, ожидающих майнинга в блоки. В условиях рыночного стресса они, как правило, засоряются.
- В день атаки Blocknative обнаружил бесконечный поток хитроумных, бесполезных транзакций в мемпулах, очевидно, предназначенных для того, чтобы затруднить прохождение транзакций.
- Падение цен ETH спровоцировало аукционы обеспечения на MakerDAO. Поскольку мемпулы были забиты, участники торгов во многих случаях не могли провести ставки на этих аукционах, что позволило злоумышленникам WIN обеспечение ETH с ставками на сумму $0.
- Нападавшие скрылись с 8,3 миллионами долларов.
Согласно исследованию, опубликованному в среду, хитроумная афера в мемпулах Ethereum позволила злоумышленникам украсть 8,3 миллиона долларов у пользователей MakerDAO в «Черный четверг».
Подведем итог: ценаэфир (ETH) резко упал 12 марта, и сеть Ethereum была перегружена потоком попыток транзакций. Поскольку инвесторы бежали в фиат, цена ETH упала достаточно низко, чтобы вызвать ликвидацию залога, хранящегося на кредитной платформе MakerDAO. Эти программные ликвидации позволили злоумышленникам уйти с 8,3 млн долларов в ETH, бесплатно, короткие позиции заемщиков и самого MakerDAO.
Однако, по словамБлокирующий, компания, занимающаяся изучением действий в мемпулах блокчейна.
Новое исследование предполагает, что мартовское событие «Черный лебедь» для Ethereum на самом деле могло быть сложным планом нажиться на глобальной распродаже, вызванной опасениями по поводу COVID-19.
«Вся эта история означала, что [злоумышленники] смогли провести более 1000 аукционов с нулевой ставкой… и получить эту базовую стоимость практически без каких-либо расходов из собственного кармана», — рассказал генеральный директор Blocknative Мэтт Катлер в интервью CoinDesk .
Манипуляция мемпулом
В основе работы Blocknative лежат мемпулы: временное хранилище на каждом узле Ethereum , где транзакции ждут своего майнинга и завершения.
По словам Blocknative, в середине марта мемпулы были намеренно перегружены бесполезными транзакциями в рамках плана по WIN на аукционах с нулевыми ставками для ETH на MakerDAO именно в таких условиях.
Действительно, Фонд Maker написал об этом вего посмертныйопубликовано в апреле:
«Перегрузка сети и высокие цены на GAS стали причиной задержек транзакций, а во многих случаях и сбоев. Эти проблемы в сочетании с беспрецедентным падением стоимости активов застали владельцев Maker Vault, хранителей и пулы ликвидности врасплох».
(Фонд Maker Foundation сослался на CoinDesk , ссылаясь на указанную выше запись в блоге, и отказался от дальнейших комментариев по этой истории.)
Очевидно, многие пользователи Ethereum задаются вопросом, было ли само падение цены ETH каким-то образом сфабриковано, но этот вопрос выходит за рамки расследования Blocknative. Злоумышленники могли быть готовы воспользоваться резким падением цены ETH; было ли само падение цены сфабриковано, остается неизвестным.
Тем не менее, Blocknative обнаружила то, что, по всей видимости, является тестовым запуском механики атаки 8 марта, факт, который исследовательская фирма T описывает в своем отчете.
«Интересное совпадение, что испытание и атака произошли всего в течение четырех дней друг от друга», — сказал Катлер CoinDesk. «[Но] у нас T никаких доказательств того, что это что-то иное, кроме оппортунизма».
В любом случае, злоумышленники воспользовались некоторыми очень тонкими сведениями об Ethereum и MakerDAO. «Они в основном использовали некоторые методы, которые никогда не встречались ранее», — сказал Катлер.
Подробнее об этих методах позже. Сначала нам нужно рассмотреть несколько основ о MakerDAO и Ethereum.
Основы MakerDAO
MakerDAO известен как создательDAI (DAI), децентрализованная стейблкоин в настоящее времялюбимый фермерами урожай. DAI создается с помощью долга. Пользователи размещают ETH или другие криптоактивы в качестве залога на платформе Maker , чтобы затем вывести часть стоимости этих активов в форме совершенно новых DAI.
Чтобы вернуть залог, пользователи должны вернуть DAI , которые они одолжили, плюс любые проценты, накопленные по кредиту (на языке MakerDAO это «комиссия за стабильность», но это просто переменная процентная ставка). MakerDAO обеспечивает цену DAI , ликвидируя залог, если его стоимость падает ниже минимального порога для поддержания надлежащего обеспечения. Для ETH это 150%, но большинство пользователей вносят намного больше ETH , чем минимум.
Таким образом, если курс ETH составляет 200 долларов США, а пользователь внес 1 ETH , чтобы занять 100 DAI, ликвидация T произойдет, если ETH не упадет ниже 150 долларов США.
Но в «черный четверг» цена ETH упала.почти 100 долларовс $193, что вызвало множество ликвидаций.
Кстати, ликвидацию может проводить кто угодно с помощью ботов, называемых «Хранителями». Сам MakerDAO использует Хранителя, но также это делают и несколько других неизвестных организаций.
Хранители WIN ликвидацию через аукцион (описано пошагово простым языком)от CoinList), поэтому разные Хранители делали ставки, чтобы закрыть заем, и в Черный четверг эти аукционы длились всего 10 минут или несколько десятков блоков Ethereum .
Идея состоит в том, что эти аукционыдолжен(и обычно так и было) привело к тому, что пользователи получили обратно свое обеспечение за вычетом суммы, которую они должны, плюс комиссия за стабильность и комиссия за ликвидацию (именно последняя часть и напрягает). Но этоне то, что произошло на этот раз.
Заемщики не получили ничего, и, по сути, MakerDAO получил слишком мало DAI, и вся системабыл недостаточно обеспечен.
Основы Ethereum
Ethereum — это блокчейн, то есть он постоянно собирает транзакции, а майнеры соревнуются за составление блоков этих транзакций, их шифрование, взлом шифрования, а затем доказательство своей работы остальным майнерам, чтобы WIN награду за блок.
Транзакции не T настоящийпока они не окажутся в добытом блоке. И обычно существует больше транзакций, ожидающих попадания в блок, чем места для новых транзакций. Эти отложенные транзакции ждут в том, что называется "мемпул."
Мемпулы — это ONE из тех вещей, о которых большинству людей T нужно думать большую часть времени, за исключением случаев, когда ситуация становится неотложной: например, когда цена ETH резко падает.
«Когда вам больше всего нужно быть уверенным в том, что все происходит упорядоченно, — сказал Катлер, — это когда все наименее надежно».
В этом и есть суть Blocknative. Фирма ведет подробныйучетная запись мемпулов по всему миру, изучая то, что он называет «стоимостью в движении». Blocknative помогает своим клиентам решить, нужно ли им быть более агрессивными в таких вещах, как оплата GAS , когда дела идут не так. Данные Mempool — это «стоимость в движении»; финализированные данные блокчейна — это стоимость в состоянии покоя.
Важно то, что майнеры не могут обработать новую транзакцию, если предыдущая транзакция T прошла. Каждая транзакция на Ethereum из кошелька получает номер, и 515 T пройдет, если 514 не T (это отслеживается «nonce» транзакции на языке Ethereum). Эта последовательная реальность оказывается ключом к атаке.
Что обнаружил Blocknative
Blocknative хранит данные mempool для Ethereum с начала 2018 года (а также его тестовые сети и сеть Bitcoin ). Фирма решила взглянуть на данные mempool, чтобы узнать, что произошло около 12 марта.
Blocknative обнаружил, что необычно высокая доля мемпула была забита транзакциями с очень низкими ценами на GAS .
Обычно эта доля T очень высока, потому что пользователи на самом деле хотят, чтобы их транзакции проходили, поэтому они будут отслеживать цены на GAS и устанавливать их на уровнях, которые, скорее всего, будут подхвачены майнером. Но это не то, что происходило 12 марта. В пуле было много транзакций с низкими ценами на GAS . Слишком много.
Это позволило злоумышленникам подавать «нулевые ставки» на залоговых аукционах MakerDAO с высокими ценами на GAS , прекрасно понимая, что они, скорее всего, WIN эти аукционы у благонамеренных ботов Keeper, которые T смогли провести свои ставки.
Blocknative описывает нечто под названием «Hammerbots». Это боты, предназначенные для создания транзакций именно с целью засорения мемпула.
«Боты завалили мемпул транзакциями, которые никогда не должны были быть завершены. Эти «молотоботы» потребляли ресурсы мемпула, выдавая чрезвычайно высокие показатели замещающих транзакций без какого-либо соответствующего увеличения GAS», — Blocknative написалв своем блоге.
Эти транзакции были дополнительно разработаны с большим количеством бессмысленных операций, которые можно было легко перемещать и изменять, чтобы варьировать хэш, но, по-видимому, они не служили никакой реальной цели.
«Эти конкретные транзакции будут особенно эффективны при потреблении ресурсов мемпула», — рассказал CoinDesk Крис Мейсл, соучредитель Blocknative.
Каскадные проблемы
Итак, вот первая проблема: перегрузка заемщикам на MakerDAO стало сложно добавлять дополнительное обеспечение, а хранителям — проводить ставки.
«Это привело к аномальным условиям в мемпуле, которые в конечном итоге благоприятствовали определенным транзакциям», — сообщается в сообщении Blocknative.
Однако злоумышленники, по-видимому, сделали еще одно важное наблюдение относительно Keepers: похоже, они T проверяли, проходят ли транзакции.
«Когда вы совершаете транзакции по счету или адресу в Ethereum, они должны быть упорядочены», — сказал Мейзл.
Как мы писали выше, если nonce отсутствует в записи блокчейна, майнеры T могут принимать последующие транзакции, пока не пройдет ONE с предыдущим nonce. Таким образом, более поздняя транзакция застрянет, даже если к ней прикреплена очень высокая цена GAS , пока не пройдет ONE .
Это имело странный результат. Из записи в блоге Blocknative:
«В совокупности, несмотря на то, что объем транзакций, поступающих в мемпул, резко возрос, цена на GAS значительной части мемпула рухнула до искусственно низкого значения».
Короче говоря: Атакующие знали, что Keepers не смогут провести свои первые ставки, и это приведет к тому, что последующие ставки "вероятностно" (по словам Катлера) застрянут. И это срабатывало достаточно часто.
Открытый исходный код, опубликованный MakerDAO для ботов Keeper, T содержал мер по проверке зависших транзакций.
Это создало потенциальный разрыв, который позволил злоумышленнику подать заявку с высокой ценой на GAS , но с нулевым DAI в качестве залога, что положило начало короткому 10-минутному аукционному отсчету.
«Хотя автоматизированные торговые системы часто разрабатываются для программного увеличения цены GAS в транзакциях, многие из таких торговых систем не очень хорошо обрабатывают пропуски nonce — если вообще обрабатывают», — предупреждает публикация Blocknative.
В 1462 случаях Хранители не замечали, что их ставки застревали в мемпулах, злоумышленники выигрывали ставки, крали миллионы долларов в ETH и едва не приводили к аварийному отключению MakerDAO.
С тех пор MakerDAO продлил время аукционадо шести часов. Blocknative открыл свой набор данных об активности мемпула для дальнейшего изучения членами сообщества.
В сообщении в блоге отмечается:
«Пул памяти — это важный, но недолговечный и часто упускаемый из виду элемент экосистемы блокчейна. Таким образом, пулы памяти представляют множество «неизвестных неизвестных» как для разработчиков, так и для пользователей».
Однако в этом случае злоумышленники изучили код Maker's Keeper и поняли, что можно узнать то, чего T знают настоящие Keeper.