- Повернутися до менюЦіни
- Повернутися до менюдослідження
- Повернутися до менюКонсенсус
- Повернутися до менюСпонсорський матеріал
- Повернутися до меню
- Повернутися до меню
- Повернутися до меню
- Повернутися до менюВебінари та Заходи
Маніпуляції з Mempool спричинили крадіжку 8 мільйонів доларів із застави MakerDAO у Чорний четвер: звіт
Нове дослідження показує, що березнева подія «Чорний лебідь» для Ethereum могла бути складним планом заробити на глобальному розпродажі.
Винос:
- У компанії Blocknative, яка зберігає дані про мемпули Ethereum по всьому світу, можливо, є пояснення атаки «нульових ставок» на MakerDAO у Чорний четвер.
- Mempool — це сховище для транзакцій, які очікують на видобуток у блоки. Під ринковим стресом вони, як правило, забиваються.
- Blocknative знайшов нескінченний потік розумних, нікчемних транзакцій у мемпулах у день атаки, очевидно розроблених, щоб ускладнити проходження транзакцій.
- Падіння цін ETH викликало аукціони застави на MakerDAO. Оскільки мемпули були забиті, учасники торгів у багатьох випадках не могли отримати ставки на цих аукціонах, що дозволяло зловмисникам WIN заставу ETH зі ставками вартістю 0 доларів.
- Зловмисники пішли з 8,3 мільйонами доларів.
Згідно з дослідженням, опублікованим у середу, хитра суєта в мемпулах Ethereum дозволила зловмисникам викрасти 8,3 мільйона доларів у користувачів MakerDAO у Чорний четвер.
Підсумовуючи: ціна ефіру (ETH) різко впав 12 березня, і мережа Ethereum була перевантажена потоком спроб транзакцій. Коли інвестори втекли до фіатних операцій, ціна ETH впала досить низько, щоб спровокувати ліквідацію застави, що зберігається на платформі кредитування MakerDAO. Ці програмні ліквідації дозволили зловмисникам піти $8,3 млн в ETH, безкоштовно, короткі позичальники та сам MakerDAO.
Затор, однак, був ключовим і цілком навмисним, за словами Blocknative, компанія, яка зосереджена на вивченні дій у блокчейн-мемпулах.
Нове дослідження припускає, що березнева подія «Чорний лебідь» для Ethereum насправді могла бути складним планом заробити на глобальному розпродажі, викликаному занепокоєнням щодо COVID-19.
«Вся ця справа означала, що [зловмисники] змогли провести понад 1000 аукціонів з нульовими ставками… і отримати базову вартість майже без власних витрат», — сказав генеральний директор Blocknative Метт Катлер в інтерв’ю CoinDesk .
Маніпуляції Mempool
Основою роботи Blocknative є mempool: тимчасове сховище на кожному вузлі Ethereum , де транзакції чекають на майнінг і завершення.
У середині березня мемпули були навмисно перевантажені марними транзакціями, як сказав Blocknative, у рамках плану WIN аукціони ETH на MakerDAO з нульовими ставками саме за таких умов.
Дійсно, Maker Foundation написав про це його посмертно опубліковано в квітні:
«Перевантаженість мережі та високі ціни на GAS спричинили затримки транзакцій і, у багатьох випадках, збої. Ці проблеми в поєднанні з безпрецедентним падінням вартості активів застали зненацька власників Maker Vault, зберігачів і пули ліквідності».
(The 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 запускає Keeper, але також кілька інших невідомих сутностей.
Зберігачі WIN ліквідацію через аукціон (описаний крок за кроком простою мовою від CoinList), тому різні зберігачі робили ставки, щоб закрити позику, і в Чорний четвер ці аукціони тривали лише 10 хвилин або кілька десятків блоків Ethereum .
Ідея полягає в тому, що ці аукціони повинен (і зазвичай це було) призвело до того, що користувачам повернули свою заставу за мінусом суми, яку вони заборгували, плюс комісію за стабільність і комісію за ліквідацію (це остання частина, яка болить). Але це не те, що сталося цього разу.
Позичальники не отримали нічого, і, фактично, MakerDAO отримав занадто мало DAI, і вся система був недостатньо забезпечений.
Основи Ethereum
Ethereum — це блокчейн, що означає, що він постійно збирає транзакції, і майнери змагаються, щоб створити блоки цих транзакцій, зашифрувати їх, зламати шифрування, а потім довести свою роботу решті майнерів, щоб WIN винагороду за блок.
Трансакції не T справжній поки вони не опиняться в видобутому блоці. І зазвичай більше транзакцій очікують, щоб потрапити в блок, ніж є місце для більшої кількості транзакцій. Ці відкладені транзакції очікують у так званому "mempool."
Mempool — ONE з тих речей, про які більшості людей насправді T потрібно думати здебільшого, за винятком того, що вони стають дуже важливими, коли ситуації стають терміновими: наприклад, коли ціна ETH падає зі скелі.
«Коли вам найбільше потрібно бути впевненим, що все відбувається впорядковано, — сказав Катлер, — це коли речі найменш надійні».
У цьому вся суть Blocknative. Фірма веде докладну рахунок mempools по всьому світу, вивчаючи те, що називається «вартістю в русі». Blocknative допомагає своїм клієнтам вирішити, чи потрібно їм бути більш агресивними в таких речах, як оплата GAS , коли все стає божевільним. Дані Mempool – це «цінність у русі»; фіналізовані дані блокчейну є значенням у стані спокою.
Найважливіше те, що майнери не можуть обробити нову транзакцію, якщо попередня транзакція T пройшла. Кожна транзакція в Ethereum з гаманця отримує номер, і 515 T пройде, якщо 514 не T (це відстежується транзакцією «nonce», мовою Ethereum). Ця послідовна реальність виявляється ключем до атаки.
Що знайшов Blocknative
Blocknative зберігає дані Mempool для Ethereum ще з початку 2018 року (також його тестові мережі та мережу Bitcoin ). Фірма вирішила поглянути на дані mempool, щоб побачити, що сталося приблизно 12 березня.
Blocknative виявив, що надзвичайно велика частка mempool була забита транзакціями з дуже низькими цінами на GAS .
Зазвичай ця частка T дуже висока, тому що користувачі насправді хочуть, щоб їхні транзакції проходили, тому вони будуть відстежувати ціни на GAS і встановлювати їх на рівнях, які, ймовірно, підберуть майнери. Але це не те, що відбувалося 12 березня. У пулі було багато транзакцій із низькими цінами на GAS . Занадто багато.
Це дозволило зловмисникам подавати «нульові ставки» на супутніх аукціонах MakerDAO з високими цінами на GAS – добре знаючи, що вони, швидше за все, можуть WIN ці аукціони проти ботів Keeper з добрими намірами, які T змогли пройти свої ставки.
Blocknative описує щось під назвою «Hammerbots». Це були б боти, призначені для створення транзакцій саме з метою засмічення mempool.
«Боти забивали mempool транзакціями, які ніколи не планувалися завершувати. Ці «Hammerbots» споживали ресурси mempool, видаючи надзвичайно високі темпи транзакцій заміни без будь-якого відповідного збільшення GAS», Blocknative написав у своєму блозі.
Крім того, ці транзакції були розроблені з великою кількістю безглуздих операцій, які можна було легко переміщати та змінювати, щоб змінити хеш, але, здавалося, не служили реальній меті.
«Ці конкретні транзакції були б особливо ефективними для споживання ресурсів Mempool», — сказав CoinDesk Кріс Мейсл, співзасновник Blocknative.
Каскадні проблеми
Отже, це перша проблема: через перевантаженість позичальникам на MakerDAO було важко додавати додаткові застави, а Keepers – проходити ставки.
«Це призвело до аномальних умов mempool, які зрештою сприяли певним транзакціям», — повідомляє Blocknative post.
Але було ще одне важливе спостереження, яке зловмисники, схоже, зробили щодо Keepers: вони, схоже, T перевіряли, чи проходили транзакції.
«Коли ви виконуєте транзакції на рахунку або адресі в Ethereum, їх потрібно замовити», — сказав Мейсл.
Як ми писали вище, якщо в записі блокчейну відсутній одноразовий номер, майнери T можуть виконувати пізніші транзакції, доки не з’явиться ONE номер із попереднім. Таким чином, пізніша транзакція застрягне, навіть якщо вона має дуже високу ціну на GAS , доки не буде завершено ONE .
Це мало дивний результат. З допису в блозі Blocknative:
«Якщо розглядати в сукупності, незважаючи на те, що обсяг транзакцій, що надходять до мемпулу, різко зріс, ціна на GAS значної частини мемпулу впала до штучно низького значення».
Коротко кажучи: зловмисники знали, що Keepers не зможуть отримати свої перші ставки, і це призведе до того, що наступні ставки «ймовірно» (за словами Катлера) зависнуть. І це спрацьовувало досить часто.
У відкритому вихідному коді, який MakerDAO опублікував для ботів Keeper, T було заходів для перевірки застряглих транзакцій.
Це створило потенційну прогалину, яка дозволила зловмиснику подати ставку з високою ціною на GAS, але ставку 0 DAI для застави, починаючи цей короткий 10-хвилинний годинник аукціону.
«Хоча автоматизовані торгові системи часто розроблені для програмного підвищення ціни на GAS для транзакцій, багато таких торгових систем погано справляються з одноразовими розривами — якщо взагалі справляються», — попереджає Blocknative.
У 1462 випадках Зберігачі не помітили, що їхні ставки застрягли в мемпулах, зловмисники виграли ставку, викравши мільйони доларів ETH і ледь не змусивши аварійно припинити роботу MakerDAO.
Відтоді MakerDAO продовжив час аукціону до шести годин. Blocknative відкрив свій набір даних про діяльність mempool для подальшого вивчення членами спільноти.
У дописі в блозі зазначено:
«Мемпул — це критично важливий, але ефемерний і часто недооцінений елемент екосистеми блокчейну. Таким чином, мемпули представляють багато «невідомих невідомих» як для розробників, так і для користувачів».
Однак у цьому випадку зловмисники вивчили код Maker's Keeper і зрозуміли, що можна знати те, чого T знають справжні Keepers.