Бот-фронтраннер майнинг-пула Ethermine потерял 100 ETH из-за «ядовитого» токена

Майнинг-пул Ethermine потерял около 100 ETH из-за токена, направленного на борьбу с используемым им ботом-фронтраннером. 17 марта Ethermine подтвердил запуск системы фронтраннинга, которая позволяет ему получать дополнительный доход за счет особого положения майнеров в сети Ethereum.

Механизм заключается в следующем: когда Ethermine видит ожидающую подтверждения транзакцию, в которой пользователь хочет обменять, например, ETH на UNI, он проводит такую же транзакцию, но с околонулевой комиссией и первой по очереди. В результате Ethermine покупает UNI, что ведет к увеличению цены токена, а пользователь, отправивший транзакцию первым, покупает подорожавший токен у пула. Лучше это работает с низколиквидными токенами, где даже небольшая покупка может вызывать ощутимые отклонения курса.

Фронтраннинг, состоящий в использовании непубличных знаний об ожидающих подтверждения крупных сделках, на традиционных рынках запрещен. В то же время, маркетмейкинг, когда трейдеры пытаются заработать на расхождениях цен, считается благотворными видом деятельности, так как ведет к сокращению таких расхождений. Действия майнеров, однако, в данном случае увеличивают расхождения. Майнер знает, кто хочет купить, сколько и когда, и получает гарантированного покупателя за счет возможности провести транзакцию раньше него.

В ответ на действия майнеров разработчик CodeForcer создал «ядовитый» контракт Salmonella. «Это обычный ERC20-токен, который ведет себя аналогично любому другому токену в нормальных сценариях применения, – объясняет разработчик. – Тем не менее, в него встроена специальная логика, определяющая, когда транзакцию с ним осуществляет кто-то кроме установленного владельца. В таких ситуациях он возвращает только 10% от установленной суммы, несмотря на включение в журнал событий сделки на полную сумму».

Другими словами, когда бот майнера видит предположительно выгодную возможность опередить покупателя и отправляет транзакцию, он получает лишь десятую часть бесполезного токена, 90% которого при перепродаже потеряются. На децентрализованной бирже Uniswap разработчик создал пул с использованием Salmonella и эфира. Затем он стал проводить транзакции между своими адресами, чтобы завлечь ботов. Комиссия за исполнение транзакций при этом устанавливалась ниже рыночной – это позволяло сохранять транзакции в мемпуле и отменять их при возникновении риска подтверждения. В течение нескольких часов боты провели две операции по покупке Salmonella: на 68 и 35 ETH. Также в процессе были опустошены 17 торговых контрактов аналогичного плана на существенно меньшие суммы.

Стоящая за пулом Ethermine компания Bitfly не скрывает своей активности и называет ее реакцией на EIP-1559 – предложение по улучшению Ethereum, добавленное в грядущий хард форк London и предусматривающее сжигание большей части уплачиваемых пользователями комиссий. «Мы никогда не станем поддерживать или участвовать в злонамеренных действиях против сети», – пишет Bitfly, добавляя, что фронтраннинг помогает ей компенсировать убытки от еще не запущенного EIP-1559.