Вы открываете кошелек, выбираете два токена и нажимаете Swap.
Через несколько секунд баланс обновляется. Готово.
Это то, что показывает вам интерфейс. Но он не показывает короткий промежуток между ними — после того, как ваш кошелек объявил о вашем намерении, но до того, как Ethereum решил, где именно ваша транзакция окажется внутри блока.
Для некоторых сделок этот крошечный интервал имеет огромное значение. Очень огромное.
Специализированные боты могут отслеживать ожидающие транзакции, оценивать, как обмен изменит цену, и решать, можно ли заработать, разместив другую транзакцию непосредственно перед или сразу после вашей. Никто ничего не взламывал. Ваш приватный ключ остается приватным. Смарт-контракт работает ровно так, как выписан в коде.
Эта возможность существует потому, что сам порядок транзакций имеет экономическую ценность.
У вашей транзакции есть комната ожидания
Транзакция в Ethereum обычно не попадает сразу из вашего кошелька в финализированный блок. Ваш узел транслирует подписанную транзакцию по одноранговой сети (peer-to-peer), где она ожидает вместе с тысячами других неоформленных транзакций в так называемом mempool — сокращенно от memory pool [1].
Представьте это не как передачу запечатанного заказа кассиру, а как громкое объявление вашего заказа в переполненной комнате до того, как кассир решит, чьи запросы обработать первыми.
Любой, кто слушает в этой комнате, может изучить транзакцию. Они видят адрес отправителя, вызываемый контракт, используемую функцию, предложенную комиссию за газ и достаточно информации, чтобы смоделировать, что именно сделает транзакция.
Для децентрализованной биржи это может раскрыть экономически полезную информацию: кто-то собирается купить Токен X, и сделка достаточно велика, чтобы сдвинуть цену в пуле.
И вот здесь начинается игра.
Маленькая настройка, дающая игре пространство
Многие децентрализованные биржи используют автоматические маркет-мейкеры (AMM) вместо традиционной книги ордеров. В простом пуле ликвидности покупка одного актива меняет соотношение между двумя активами в пуле. Достаточно крупная сделка сдвигает цену по мере своего выполнения.
Но ваш кошелек не может знать точную цену пула на несколько секунд вперед. Другие сделки могут пройти раньше. Поэтому интерфейс просит вас допустить некоторое отклонение через настройку проскальзывания (slippage).
Если допустимое проскальзывание составляет 1%, вы фактически говорите: Я все равно хочу совершить этот обмен, если итоговая цена исполнения будет немного хуже текущей, но не превысит этот лимит.
Для вас этот запас предотвращает отмену сделки из-за обычной рыночной волатильности. Для бота, отслеживающего mempool, он также определяет, сколько пространства существует до того, как транзакция станет недействительной.
Это не означает, что все 1% автоматически превращаются в прибыль бота. Ликвидность, комиссии, размер сделки, стоимость газа, конкуренция и точная кривая AMM — все имеет значение. Но боту это дает четкую границу для расчетов.
Как собирается "сэндвич"
Предположим, ваша транзакция в mempool достаточно велика, чтобы толкнуть Токен X вверх.
Бот-поисковик улавливает её и запускает симуляцию. Если цифры сходятся, бот пытается расположить три сделки в определенном порядке: свою покупку, вашу покупку, а затем свою продажу .
Сначала бот покупает Токен X перед вами. Это сдвигает цену в пуле немного выше. Ваша транзакция затем исполняется по этой менее выгодной цене — при условии, что результат все еще вписывается в ваш лимит проскальзывания. Сразу после этого бот продает токены, купленные мгновение назад, прямо в тот скачок цены, который помогла создать ваша сделка.
Покупка бота. Ваша сделка. Продажа бота.
Ваша транзакция стала начинкой в сэндвиче.
Самое главное здесь — бот не менял правила. Он использовал правила. Ваша транзакция была валидной, формула AMM сработала, а блокчейн выполнил все транзакции детерминированно.
Боту просто было не все равно, какая из валидных транзакций пройдет первой.
Бот также не может двигать цену бесконечно. Если цена выйдет за установленный вами лимит, ваша транзакция просто отменится (revert). И многие сделки вообще не стоит сэндвичить: небольшие обмены в глубоких пулах дают слишком мало прибыли после вычета комиссий и затрат на газ.
Сэндвичи — это лишь самая очевидная часть
Это широкое соперничество за порядок транзакций обычно изучается под термином Maximal Extractable Value, или MEV. Раньше его называли Miner Extractable Value, в эпоху Proof-of-Work в Ethereum .
MEV намного шире, чем просто атака на обмен отдельного пользователя. Если один и тот же токен временно стоит дешевле на одной бирже, чем на другой, арбитражный бот может купить на одной и продать на другой. Это возвращает цены к единому балансу.
Протоколы кредитования создают другую возможность. Когда залог заемщика падает ниже требуемого уровня, кто-то должен запустить ликвидацию. Боты соревнуются за это право, потому что протокол вознаграждает того, кто успеет первым.
Таким образом, MEV — это не просто синоним кражи. Некоторые стратегии ухудшают исполнение для пользователя. Другие выполняют работу, от которой напрямую зависит жизнеспособность DeFi.
Общая черта проста: быть в нужном месте в порядке транзакций стоит реальных денег.
А затем боты начали конкурировать друг с другом
Когда стало понятно, что порядок транзакций имеет ценность, первой очевидной стратегией стало платить больше за приоритет.
Ранние боты в Ethereum часто сражались через Priority Gas Auctions (аукционы приоритета газа). Один бот видел возможность, другой видел ту же возможность, и оба непрерывно повышали комиссии за газ, пытаясь оказаться первыми. В результате возникала машинная гонка ставок, которая создавала перегрузку сети и тратила пространство в блоках .
Но была и более глубокая проблема. Если валидаторы или майнеры могли извлекать намного больше MEV, чем их конкуренты, само производство блоков могло начать вознаграждать масштаб, приватный доступ к информации и специализированную инфраструктуру. В крайних случаях ценные возможности прошлого могли даже создавать стимулы для реорганизации уже подтвержденных блоков.
MEV перестал быть просто хитростью бота по отношению к отдельной сделке.
Он стал частью экономики производства самого блокчейна.
Блок до блока
Современный Ethereum сформировал невероятно специализированную экосистему вокруг этой проблемы.
Поисковики (Searchers) ищут прибыльные комбинации транзакций. Строители (Builders) собирают транзакции и бандлы из множества источников и формируют кандидаты блоков. Реле (Relays) помогают проводить аукцион между строителями и валидаторами. Валидатор, выбранный для предложения следующего блока, может просто выбрать наиболее выгодную ставку за блок, а не искать оптимальный порядок самостоятельно.
Другими словами, валидатор, подписывающий блок, и субъект, вычисляющий наиболее прибыльный порядок его сборки, чаще всего больше не являются одним и тем же лицом.
Эта модель называется разделением предлагающего и строителя (Proposer-Builder Separation, PBS) [3].
Здесь есть важная техническая деталь: у Ethereum пока нет встроенного протокольного PBS на уровне правил консенсуса. Большая часть сегодняшнего разделения происходит через MEV-Boost — промежуточное ПО, разработанное исследовательским коллективом Flashbots, которое создало внепротокольный рынок между строителями и валидаторами [4].
Свежие данные MEV-Boost показывают, что это не какой-то редкий случай. Подавляющее большинство блоков Ethereum производится через этот внешний рынок строителей, а сама активность строителей бывает весьма концентрированной [4].
Так невидимое соперничество вокруг вашего обмена в итоге помогло создать кое-что гораздо большее: рынок сборки самого блока, который его содержит.
Неожиданный поворот: Возвращение приватности
Публичные блокчейны построены на прозрачности. Однако транзакции в ожидании создают коварную версию прозрачности: иногда раскрытие вашего намерения до исполнения — это именно то, что делает вас уязвимым.
Это подтолкнуло часть Ethereum к приватному потоку ордеров (private order flow).
Сервисы вроде Flashbots Protect могут направлять транзакцию в обход публичного mempool напрямую строителям, не транслируя её ботам в открытой сети. Бот в публичном mempool не может атаковать транзакцию, которую он никогда не видел до включения в блок.
Это выглядит как очевидное решение — пока вы не проследите за стимулами на шаг дальше.
Если всё больше ценных транзакций уходит в приватные каналы, доступ к этим каналам сам по себе становится ценностью. Строители с эксклюзивным доступом получают преимущество перед теми, кто видит только публичный mempool. Система, пытающаяся защитить пользователей от последствий публичной прозрачности, в итоге может породить новую концентрацию вокруг приватной инфраструктуры.
Решение меняет природу проблемы.
Что на самом деле произошло, когда вы нажали Swap?
С точки зрения вашего кошелька, не произошло почти ничего. Вы выбрали два токена, одобрили диапазон цен и подождали несколько секунд.
Под этой простой интерфаксной картинкой работает совершенно иной механизм.
Ваша незавершенная сделка может стать информацией. Информация может стать возможностью. Возможности привлекают поисковиков. Поисковики соревнуются за порядок. Их соревнование создает спрос на строителей. Строители соревнуются за блоки. Валидаторы выбирают среди этих блоков. А когда публичная видимость становится опасной, на окраинах рождается приватная маршрутизация.
Самое удивительное в MEV — не то, что кто-то нашел лазейку в Ethereum.
А то, что Ethereum может работать ровно так, как задумывалось, и всё равно породить целую индустрию вокруг одного вопроса, который интерфейс вам никогда не показывает:
Кто имеет право идти первым?

Comments 0
Log in to join the conversation.
Log inStart the conversation.