Трейдеры, использующие блокчейн Ethereum для заключения сделок, например на бирже Uniswap, могут столкнуться с тем, что кто-то другой заработает на их идее, пока транзакция будет ожидать подтверждения. О соответствующих рисках рассказал партнер инвестиционной фирмы Paradigm Дэн Робинсон.
Someone accidentally locked up some tokens in an Ethereum smart contract. @gakonst and I thought we'd found a way to recover them.
We learned that the mempool is a very creepy place.https://t.co/8rC0jOCPn3
— Dan Robinson (@danrobinson) August 28, 2020
По его словам, уязвимость таится в мемпуле Ethereum. «Фронтраннеры» или боты-арбитражеры отслеживают мемпул на предмет появления в нем ожидающих подтверждения транзакций, которые могут содержать прибыльную сделку. Обычно они настроены для отслеживания определенного типа транзакций, например сделок на DEX или обновлений оракулов, и пытаются опередить их, используя предустановленный алгоритм.
Их интересуют любые сделки, которые могут принести прибыль путем копирования и замены адреса своим собственным. Также они могут полностью скопировать внутреннее содержимое транзакции, если для реализации идеи необходимо совершить несколько шагов.
Робинсон сообщил, что в исследовании уязвимости ему помогала команда разработчиков смарт-контрактов и специалистов по безопасности Ethereum. Они попытались составить транзакцию таким образом, чтобы запутать бота и скрыть ее принадлежность к бирже Uniswap.
«Мы скрыли вызов во внутренней транзакции и разбили ее на две: одни активирует наш контракт, а вторая высвобождает активы, если контракт был активирован», – пишет Робинсон.
Тем не менее, во всех испробованных сценариев боту удавалось осуществить сделку раньше них и воспользоваться прибыльной возможностью.
«Монстр поглотил нас», – заявляет автор.
Робинсон также предупреждает, что сегодняшние фронтраннеры – это только боты, но очень скоро перспективами такого заработка могут заинтересоваться майнеры, что еще больше усугубит проблему.
«Сегодня майнеры упускают благоприятную возможность. В будущем они будут менять порядок транзакций и отправлять свои собственные. Более того, они могут реорганизовать блок другого майнера, что приведет к нестабильности цепи», – утверждает он.