Ethereum is a dark forest
Знакомы ли вы с концепцией темного леса? В последнее время в моем инфополе она чаще всего звучала в контексте сериала «задача трех тел»
Если коротко, в темном лесу водятся монстры. Единственный способ выжить - либо быть самым сильным, либо не подавать признаков жизни. Подробнее на Википедии
Казалось бы, при чем тут аудит смарт контрактов?
Дело в том, что в сети эфира водятся монстры flashbots, которые слушают наши транзакции. И в случае, когда потенциальный профит превосходит затраты на исполнение, они атакуют
Таким образом атакующий вектор находится вне плоскости программного слоя, в слое самой сети. Это становится возможным, потому что:
- Все транзакции перед включением в блок попадают в mempool, так устроена сеть Ethereum. Мемпул место прозрачное, доступное для чтения
- Приоритет газа существует, увеличив газ можно поставить свою транзакцию вперед других
К чему приводит такой порядок дел
В основном к тому, что атакующий пытается закинуть транзакцию перед или сразу после интересующей его транзакции, либо провести сэндвич-атаку, когда атакуемая транзакция «оборачивается» с двух сторон в манипулятивные транзы. По такому же принципу происходит flashloan атака, писал про нее тут, только там атакующий пишет контракт, а не ловит интересующую его транзакцию в мемпуле
В случае, если в вашем контракте неправильно прописаны трансферы, например вы не проверяете кто инициализирует трансфер, флэшбот может воспользоваться этой дырой для вывода средств с контракта как только увидит такую транзакцию в мемпуле
Очень крутая статья 2020 года про то как ребята пытались вытащить 12к$, которые застряли на видном, но еще не обнаруженном флешботами месте. Спойлер: монстры вытащили ликвидность как только транза мелькнула в сети
Ужас, но не ужас-ужас-ужас
В основном флэшботы крутятся вокруг DEX, они арбитражат разность курсов и тем самым вообще-то выполняют очень важную функцию целостности цен по всему маркету.
Могут правда зацепиться за крупные транзы и внести манипулятивную составляющую, которая неизбежно возникнет при крупной сделке. Могут подсунуть не самый выгодный курс, вынудив купить по бОльшей цене.
Так же они могут первыми показывать на позиции, требующие ликвидации, получая за это бонус.
Есть экзотические атаки, трудно выполняемые в текущих условиях сети эфира, но которые вполне серьезно обсуждались до The Merge (переход с PoW на PoS) типа Fee-based forking attacks или Time-bandit attacks. На них я останавливаться не буду, по крайней мере сейчас
К посту прикладываю одну из первых системных статей по теме, она 2019 года. Какие-то части чуть устарели, но в ней классно описан математически аппарат того, как боты действуют, что лежит в основе их конкуренции и сотрудничества. Любителям теории игр будет интересно
Это первый пост вводный пост по теме flashbots, дальше будет подробнее про виды атак, про способы защиты ваших протоколов и еще больше источников и статей
https://t.me/web3securityresearch
Post #30
481
flashboys.pdf1.4 MB
- ❤ 16