Как воспроизвести простую атаку с использованием MEV. Часть 1
В этой серии постов мы рассмотрим один из распространённых способов, с помощью которого злоумышленник может атаковать уязвимый протокол с использованием MEV. Также мы покажем, как разработчикам можно корректно продемонстрировать вектор атаки MEV с помощью PoC.
Начнем с самого начала: что такое MEV?
MEV (Miner Extractable Value — «Стоимость, извлекаемая майнером», или Maximal Extractable Value — «Максимально извлекаемая стоимость») позволяет майнерам исключать, включать и изменять порядок транзакций в блоке до его добычи. После слияния Ethereum (The Merge) эта роль перешла от майнеров к валидаторам сети. Тем не менее, вектор атаки через MEV остаётся актуальным и широко распространённым в блокчейн-среде.
Существует множество способов, которыми злоумышленник может использовать MEV. Мы рассмотрим так называемую «сэндвич-атаку» (sandwich attack), которая осуществляется путём фронтраннинга и бэкраннинга транзакции обмена жертвы.
Фронтраннинг (Frontrunning)
Фронтраннинг — это техника, при которой злоумышленник умудряется разместить свою транзакцию перед транзакцией жертвы, чтобы она выполнилась первой. Это можно сделать, увеличив цену газа в своей вредоносной транзакции, благодаря чему она будет иметь приоритет над транзакцией жертвы, у которой более низкая цена газа.
Бэкраннинг (Backrunning)
Бэкраннинг — это техника, при которой злоумышленник размещает свою вредоносную транзакцию после выполнения транзакции жертвы. Злоумышленник может добиться этого, снизив цену газа в своей транзакции, что позволит транзакции жертвы получить приоритет.
Сэндвич-атака (Sandwich Attack)
При сэндвич-атаке злоумышленник отслеживает мемпул (список ожидающих транзакций) в поисках целевой транзакции, которую можно использовать в своих интересах. Как только такая транзакция обнаружена, злоумышленник отправляет две транзакции — одну до и одну после целевой, «зажимая» её, словно бутерброд. Цель такой атаки — повлиять на выполнение или результат целевой транзакции в свою пользу.
Используя методы, описанные выше, злоумышленник отправляет две транзакции — с более высокой и более низкой стоимостью газа по сравнению с транзакцией жертвы, чтобы успешно выполнить сэндвич-атаку. Альтернативно, он может отправить пакет транзакций (transaction bundle) через специализированные RPC-провайдеры, которые за плату гарантируют нужный порядок транзакций.
Такой тип атак особенно опасен в экосистеме DeFi, где транзакции с токенами, пулами ликвидности или децентрализованными биржами крайне чувствительны к порядку выполнения. Цель злоумышленника в таких случаях — манипулировать ценами активов, получать прибыль от арбитража или использовать другие уязвимости протокола в личных целях.
Далее рассмотрим, как протестировать такие транзакции в Hardhat и Foundry.
#mev
Post #1426
1.12K
- 👍 13