Разработчики криптовалютного кошелька ZenGo опубликовали исследование, в котором описаны front-running атаки в блокчейне эфириума.
В отчете ZenGo термин front-running описывается как «действие по выполнению транзакции первой в очереди перед заранее известной будущей транзакцией».
По сути, front-running представляет собой игру на опережение. Например, если кто-то собирается купить большое количество эфира (ETH) на Uniswap, что может привести к повышению цены, то одним из способов заработка будет покупка ETH непосредственно перед совершением крупной покупки с немедленной продажей после выполнения ордера.
«В целом, front-running в эфириума уже не новость», ― сказал один из авторов исследования Алекс Манускин в комментарии для Coindesk. «Новшество здесь в том, что мы исследовали ботов, которые ищут любую прибыль, даже если эти контракты довольно сложны и выполняют несколько внутренних вызовов других контрактов».
Front-running в эфириуме возможен потому, что боты могут предлагать немного более высокую комиссию за транзакцию, что стимулирует майнеров отдавать ей приоритет при создании блока. В первую очередь выполняются транзакции с более высокой комиссией. «Таким образом, если есть две транзакции, приносящие прибыль от одного и того же запроса контракта, то только первая получает прибыль», ― пишут исследователи.
«Под каждой транзакцией, которая попадает в блокчейн, ведутся ожесточенные войны за каждую крупицу прибыли», ― сказал Манускин. «Если вы случайно столкнулись с возможностью арбитража или даже заметили ошибку в каком-либо контракте, то очень вероятно, что вам будет трудно самостоятельно получить из этого прибыль из-за конкуренции с ботами».
Исследователям удалось привлечь внимание одного из таких ботов. Для этого им нужно было вложить достаточно большое количество ETH в транзакцию-приманку, чтобы сделать ее привлекательной для бота.
«Транзакция ожидала около 3 минут и не получила прибыль от honeypot-контракта. Проанализировав внутренние транзакции контракта мы увидели, что прибыль перешла другому пользователю с более высокой комиссией», ― сказал Манускин.
После этого исследователи смогли отследить, сколько бот смог заработать с момента своего запуска. По оценкам исследователей, бот начал работать в мае 2018 года и в общей сложности заработал около $10 000 в ETH. Хотя это может показаться не слишком внушительной цифрой, исследователи отмечают, что один человек может создать любое количество ботов, которые будут действовать от его имени.
Исследование пролило свет на методы работы еще более сложных ботов и, по словам Манускина, необходимо провести еще много исследований в этом направлении. Он отметил, что скрыть транзакции от бота возможно, хотя это и относительно непростая задача.
«Каждый из них работает по-своему и может быть вызван разными факторами транзакции», ― сказал он. «Сами боты соревнуются друг с другом в том, кто получит награду. Это только верхушка айсберга в полной картине существующих ботов, что делает это направление еще более интересным».