← К списку статей
July 26, 2026
5 мин. чтения

Ончейн-арбитраж: атомарные циклы, флеш-кредиты и аукцион, который вы должны выиграть

Ончейн-арбитраж: атомарные циклы, флеш-кредиты и аукцион, который вы должны выиграть
#arbitrage
#flash loans
#mev
#defi
#backrunning
#cex-dex
#ethereum
#atomicity

Существует удобный миф о том, что ончейн-арбитраж сложен, потому что найти его сложно — что где-то в ценовом графе скрыт цикл, который может увидеть только самый умный алгоритм, и тот, кто вычислит его быстрее всех, получает прибыль. Истина почти обратна. В публичной цепочке прибыльный цикл виден всем одновременно, вычисляется десятками ботов, запускающих почти идентичный код против одних и тех же резервов. Обнаружение — это решенная, стандартизированная проблема. Что сложно — что на самом деле решает, кто получит деньги — это выигрыш в порядке: размещение вашей транзакции в правильном слоте правильного блока, опережая каждого другого искателя, который нашел то же самое. Ончейн-арбитраж легко обнаружить и трудно выиграть, и разрыв между этими двумя глаголами — это то, где живет вся экономика этого бизнеса.

Эта статья рассматривает ситуацию со стороны искателя. В Анатомии MEV мы наметили темный лес с точки зрения жертвы и обещали продолжение о доброкачественной экстракции — арбитраже и бэкраннинге, которые поддерживают честные ончейн-цены. В ончейн-ликвидациях мы создали контракт на исполнение флеш-кредита и пакет бэкраннинга оракула и указали здесь на общее рассмотрение примитива. Эта статья оплачивает оба долга. Она предполагает, что вы уже знаете, что такое мемпул, пакет и приоритетная комиссия; если нет, сначала прочитайте статью о MEV. Здесь мы строим машину арбитражера: атомарную транзакцию, которая не может проиграть, заемный капитал, который устраняет капитальное ограничение, поиск по графу, который является легкой половиной, и аукцион, который съедает почти всю маржу.

Атомарность: сделка, которая отменяется при убытке

Определяющее свойство ончейн-арбитража — то, что делает его категорически безопаснее любой кросс-площадочной сделки, которую может совершить трейдер CEX, — это атомарность. Многоходовой арбитраж — это не последовательность сделок, которые вы запускаете и надеетесь, что они сойдутся. Это одна транзакция, которая выполняет каждый этап цикла, и если конечный баланс не строго больше начального баланса, вся транзакция отменяется: каждое изменение состояния откатывается, как если бы его никогда не было, и вы теряете только газ за неудачную транзакцию.

Это полностью меняет профиль риска. Трейдер CEX, который покупает BTC на одной бирже, чтобы продать его на другой, держит инвентарь между ними — в течение секунд, минут, сколько бы ни занял перевод и второе заполнение — и принимает на себя любое изменение цены в течение этого окна. Ончейн-арбитражер держит инвентарь нулевое время в любом экономически значимом смысле: покупка и продажа — это одна неделимая операция. Нет ценового риска в середине цикла, потому что нет середины цикла. Либо весь цикл закрывается прибыльно за один атомарный шаг, либо он не происходит вообще.

Защита, которая это обеспечивает, — это одно сравнение в конце пути выполнения. Концептуально, атомарный арбитражный контракт делает не более чем:

// The whole cycle runs inside one transaction. If the closing balance
// does not clear the opening balance (plus costs), the require() throws,
// and the EVM reverts every trade that came before it.
function executeCycle(bytes calldata path, uint256 minProfit) external {
    uint256 start = IERC20(baseToken).balanceOf(address(this));

    _hopA(path);   // e.g. USDC -> WETH on Uniswap
    _hopB(path);   // e.g. WETH -> DAI  on Sushiswap
    _hopC(path);   // e.g. DAI  -> USDC on Curve

    uint256 end = IERC20(baseToken).balanceOf(address(this));
    require(end >= start + minProfit, "unprofitable");   // atomic safety net
}

require — это вся модель безопасности. Устаревшая котировка, конкурирующая транзакция, которая переместила пул на один слот раньше вашей, неожиданная комиссия — все, что делает цикл невыгодным, просто срабатывает защита и отменяется. Вы никогда не продадите последний этап по худшей цене, чем вы моделировали, и не понесете убыток; сделка, которая принесла бы убыток, не выполняется. Вот почему арбитраж является доброкачественным концом таксономии MEV из статьи о MEV: нет жертвы, чье заполнение ухудшается, и арбитражер не несет направленного инвентарного риска. Единственная реальная стоимость неудачной попытки — это газ, который, как мы увидим, является именно той стоимостью, которую конкурентный аукцион призван раздуть.

Флеш-кредиты устраняют капитальное ограничение

Атомарность позволяет нечто более сильное: арбитраж без собственного капитала. Флеш-кредит позволяет вам занять произвольную сумму из пула кредитования с одним единственным условием — вы возвращаете ее, плюс комиссию, до окончания транзакции. Поскольку заем, арбитраж и погашение происходят в рамках одной атомарной транзакции, пул не сталкивается с риском дефолта: если вы не можете погасить, вся транзакция отменяется, и кредит считается невыданным. Кредитор защищен тем же откатом, который защищает вас.

Схема представляет собой обратный вызов. Вы вызываете функцию флеш-кредита пула; пул отправляет вам токены, а затем вызывает вас обратно; внутри этого обратного вызова вы запускаете цикл и должны оставить достаточно для погашения:

// Called by the lending pool in the middle of the flash loan.
function receiveFlashLoan(address token, uint256 amount, uint256 fee, bytes calldata data)
    external
{
    // 1. buy the asset cheap on venue A with the borrowed `amount`
    uint256 bought  = _swap(VENUE_A, token, ASSET, amount, data);
    // 2. sell it dear on venue B, back into the borrowed token
    uint256 repaidIn = _swap(VENUE_B, ASSET, token, bought, data);
    // 3. must be able to return principal + fee, or the whole tx reverts
    require(repaidIn >= amount + fee, "arb cannot cover loan");
    IERC20(token).transfer(msg.sender, amount + fee);   // repay in-tx
    // whatever remains — repaidIn - amount - fee — is profit, kept here
}

Комиссия небольшая и зависит от площадки: Aave v3 взимает 5 базисных пунктов (0,05%) за флеш-кредит, Balancer исторически взимал 0 базисных пунктов, а Uniswap v3 предоставляет ту же возможность через флеш-свопы, где комиссия — это просто обычная комиссия пула за своп. Пять базисных пунктов — это реальная стоимость, которая должна быть покрыта в рамках маржи цикла, но она ничтожна по сравнению с альтернативой связывания шести или семизначных сумм собственного инвентаря для захвата дислокации, которая длится один блок.

Стоит прямо заявить о последствиях для структуры рынка: флеш-кредиты отделяют арбитражную прибыль от капитала. Победителем данной возможности является не искатель с самым большим балансом — бот с несколькими долларами на газ может занять десять миллионов долларов на время одной транзакции. Капитал не является барьером. Каждый может занять одинаковую сумму для одной и той же возможности, что именно поэтому конкуренция сводится к единственному, что не является товаром: получению первого заказа.

Проработанный кросс-DEX цикл

Числа делают механику конкретной. Возьмем два пула WETH/USDC с постоянным продуктом и комиссией 0,30% (γ=0.997\gamma = 0.997), и предположим, что крупная покупка только что подняла пул B выше пула A — такого рода дислокация, как показано в следующем разделе, является источником циклов. Используем круглые, наглядно иллюстрирующие резервы:

  • Пул A (дешевый): xA=10,000x_A = 10{,}000 WETH, yA=30,000,000y_A = 30{,}000{,}000 USDC \Rightarrow цена 3,0003{,}000 USDC/WETH.
  • Пул B (дорогой): xB=10,000x_B = 10{,}000 WETH, yB=30,600,000y_B = 30{,}600{,}000 USDC \Rightarrow цена 3,0603{,}060 USDC/WETH.

Цикл таков: флеш-заем USDC, покупка WETH дешево на A, продажа дорого на B, погашение. Заем ΔU=100,000\Delta U = 100{,}000 USDC. Шаг 1 продает USDC в пул A за WETH:

ΔW=xAγΔUyA+γΔU=10,000×99,70030,000,000+99,70033.12 WETH.\Delta W = \frac{x_A\,\gamma\,\Delta U}{y_A + \gamma\,\Delta U} = \frac{10{,}000 \times 99{,}700}{30{,}000{,}000 + 99{,}700} \approx 33.12 \text{ WETH}.

Шаг 2 продает этот WETH в пул B за USDC:

ΔUout=yBγΔWxB+γΔW=30,600,000×33.0210,000+33.02100,723 USDC.\Delta U_{\text{out}} = \frac{y_B\,\gamma\,\Delta W}{x_B + \gamma\,\Delta W} = \frac{30{,}600{,}000 \times 33.02}{10{,}000 + 33.02} \approx 100{,}723 \text{ USDC}.

Вы заняли 100 000, получили 100 723 и должны 5 базисных пунктов флеш-комиссии в размере 50 USDC. Чистая прибыль: около $673 валовой прибыли при нулевых капитальных затратах, до газа и до приоритетной ставки. Две вещи, на которые стоит обратить внимание. Во-первых, два шага перемещают пулы друг к другу — покупка на A поднимает его цену, продажа на B снижает его цену — поэтому прибыль не линейна по размеру: слишком сильное давление приводит к тому, что ценовое воздействие съедает разрыв, точно так же, как в оптимизации сэндвича из статьи о MEV. Искатель выполняет одномерный поиск по ΔU\Delta U, чтобы найти размер займа, который максимизирует чистую прибыль. Во-вторых, эти $673 — это детерминированное число, которое каждый конкурирующий бот вычисляет до того же значения из тех же резервов — что является всей проблемой и предметом раздела об аукционе ниже.

Атомарная арбитражная транзакция: флеш-заем, покупка на площадке A, продажа на площадке B, погашение кредита плюс комиссия, сохранение остатка — все в рамках одной транзакции, которая отменяется при убытке.

Обнаружение — это легкая половина

Если рассматривать рынок как граф — активы как узлы, торговые пары как взвешенные ребра — арбитражный цикл представляет собой петлю, произведение обменных курсов которой превышает единицу. Возьмите логарифм каждого курса, инвертируйте его, и прибыльный цикл станет циклом с отрицательным весом; классический инструмент для его поиска — алгоритм Беллмана-Форда, а SPFA и более новый алгоритм RICH являются более быстрыми вариантами, настроенными для небольших, быстро меняющихся графов, которые производят реальные рынки. Весь этот инструментарий — логарифмическое преобразование, условие отрицательного цикла, реализации на Rust, взвешенные по комиссиям ребра, которые убивают большинство теоретических циклов — является предметом алгоритмов графов для обнаружения арбитража, и нет необходимости повторять его здесь.

Что важно для этой статьи, так это один учетный момент: комиссия должна быть включена в вес ребра, иначе цикл — это мираж. Трехногая петля платит три комиссии пула плюс, если вы занимали, комиссию за флеш-кредит, и тест на отрицательный цикл должен учитывать все это:

from math import log

def cycle_log_gain(rates, pool_fee=0.003, loan_fee=0.0005):
    """Log-gain around a cycle. > 0 means gross profit before gas and priority bid.
    `rates[i]` = units of the next asset per unit of the current one on hop i."""
    gross = 1.0
    for r in rates:
        gross *= r * (1 - pool_fee)     # each hop pays the venue's swap fee
    gross *= (1 - loan_fee)             # one flash-loan fee for the whole cycle
    return log(gross)                    # still ignores gas and the auction bid

Вот главное наблюдение. Эта функция детерминирована. Подайте ей текущие ончейн-резервы — которые каждый узел хранит идентично, потому что цепочка является общей, реплицированной конечной машиной — и каждый искатель вычисляет тот же cycle_log_gain до того же значения на той же высоте блока. Нет частного сигнала, нет проприетарного набора данных, нет информационного преимущества. Когда крупный своп или новый блок перетасовывает резервы, десятки ботов, запускающих структурно идентичный код обнаружения, все загораются на одном и том же цикле в течение миллисекунд друг от друга. Поиск возвращает один и тот же ответ всем.

Замечание о топологии, потому что она определяет, насколько сложен поиск. Самые дешевые циклы — треугольные и внутри-DEX — WETH → USDC → DAI → WETH полностью в рамках одного развертывания Uniswap: три перехода, три комиссии пула, без кросс-площадочной координации. Кросс-DEX циклы (покупка на Uniswap, продажа на Sushiswap) добавляют площадки, но оставляют атомарную защиту идентичной. Более длинные, экзотические циклы связывают еще больше переходов — но каждый дополнительный переход умножает еще один фактор (1fee)(1-\text{fee}) в произведение, поэтому условие отрицательного цикла, скорректированное на комиссию, быстро убивает длинные циклы. Именно поэтому реальные искатели ограничивают длину цикла тремя-пятью переходами и агрессивно обрезают; это многоуровневый, ограниченный по длине поиск, для выполнения которого предназначен алгоритм RICH из статьи об алгоритмах графов.

Таким образом, обнаружение не приносит вам сделку; оно лишь дает вам право конкурировать за нее. Тест log(gross) > 0 говорит вам, что возможность существует — он ничего не говорит о том, будете ли вы тем адресом, который ее захватит. Это решается на один уровень ниже, в порядке, и порядок — это не то, что вычисляет ваш алгоритм. Это то, за что вы торгуетесь. Все сложности ончейн-арбитража происходят после того, как цикл найден.

График рынка с активами в виде узлов и курсами пулов в виде ребер; выделенный цикл с отрицательным весом идентично обнаруживается многими конкурирующими искателями в одном и том же блоке.

Бэкраннинг: доброкачественная форма MEV

Откуда вообще берутся эти циклы? В подавляющем большинстве случаев — из транзакций других людей. Крупный своп в пуле Uniswap сдвигает цену этого пула от более широкого рынка; пул теперь неправильно оценен относительно Binance, относительно пула Curve, относительно Sushiswap; и акт перестройки его является прибыльным арбитражем. Искатель, который это делает, размещает свою транзакцию сразу после свопа, который создал дислокацию. Это бэкраннинг, и это доминирующая, доброкачественная форма ончейн MEV.

Вспомним механику постоянного продукта из статьи о MEV. Пул содержит резервы x,yx, y с xy=kx \cdot y = k и спотовой ценой P=y/xP = y/x. Кто-то продает большое количество Δx\Delta x базового актива в него; по инварианту пул выплачивает

Δy=yγΔxx+γΔx,γ=0.997,\Delta y = \frac{y\,\gamma\,\Delta x}{x + \gamma\,\Delta x}, \qquad \gamma = 0.997,

и новая спотовая цена ниже — продавец ее снизил. Если внешняя рыночная цена все еще PextP_{\text{ext}}, пул теперь котируется ниже PextP_{\text{ext}}, и максимизирующий прибыль бэкран покупает из пула ровно до тех пор, пока его предельная цена не поднимется обратно до PextP_{\text{ext}} — то есть, пока резервы снова не удовлетворят y/x=Pexty/x = P_{\text{ext}}. Арбитражер захватывает область между кривой исполнения пула и плоской внешней ценой — стоимость, которую крупный своп оставил на столе, переместив пул.

Критический структурный факт — тот, который ставит бэкраннинг на доброкачественную сторону баланса — заключается в том, что чистый бэкран не ухудшает исполнение цели. Он выполняется строго после свопа жертвы. К моменту выполнения бэкраннинга цена свопера уже зафиксирована; ничто, что делает бэкраннер, не может вернуться назад и ухудшить ее. Сравните это с токсичным сэндвичем из статьи о MEV, где фронтран вставляется перед жертвой именно для того, чтобы ухудшить ее заполнение, чтобы бэкран мог собрать увеличенную дислокацию. Та же механика бэкраннинга, противоположная мораль: сэндвич создает неправильную оценку за счет жертвы; доброкачественный бэкран просто устраняет неправильную оценку, которую жертва создала бы в любом случае. Арбитражер — это механизм, с помощью которого ончейн-цены отслеживают внешний мир — та же роль, которая делает кросс-площадочный арбитраж стабилизирующей силой во всех финансах.

Именно поэтому современный стек защиты MEV пытается сохранить и перераспределить бэкраннинги, подавляя сэндвичи. MEV-Share от Flashbots и аукционы потока ордеров позволяют пользователю раскрывать частичные подсказки о своей транзакции, приглашать искателей делать ставки за право бэкраннинга и возвращать большую часть полученной прибыли пользователю, который создал возможность. Бэкраннинг все еще происходит — цена все еще выравнивается — но стоимость возвращается к транзакции, которая ее сгенерировала, вместо того, чтобы быть украденной тем, кто был быстрее.

Откуда берутся циклы

Почти каждый прибыльный цикл является следствием какого-либо другого ончейн-события, которое изменило цену. Знание источников — это разница между слепым опросом всего графа и наблюдением за несколькими триггерами, которые фактически создают ребра:

  • Крупные свопы. Канонический источник, рассмотренный выше: любая сделка, достаточно большая, чтобы вывести пул за пределы более широкого рынка, открывает возможность для бэкраннинга, чтобы выровнять его. Чем больше своп и тоньше пул, тем больше цикл.
  • Обновления оракулов. Каждая площадка, которая оценивает активы по оракулу — денежные рынки, перп-DEX — становится арбитражной в тот момент, когда фид меняется. Бэкраннинг обновления оракула, который приводит к ликвидациям, разобранный в статье о ликвидациях, — это то же самое движение, примененное к ценовому фиду вместо свопа: обновление — это стартовый пистолет, и искатель приземляется сразу за ним.
  • Новая или удаленная ликвидность. Крупное создание или сжигание LP сдвигает глубину пула и может временно вывести его из равновесия; ликвидность "точно в срок" (JIT) — это враждебная версия, добавляющая глубину вокруг одного ожидающего свопа и немедленно удаляющая ее после.
  • Остатки маршрутизации между пулами. Маршрутизатор, который разделяет своп между пулами, редко оставляет все из них по абсолютно одинаковой цене, и небольшие дисбалансы, которые он оставляет, являются бэкраннинговыми циклами.

Практический вывод: арбитражный бот — это в основном слушатель событий, а не решатель графов. Он отслеживает эти триггеры, пересчитывает только подграф, который каждый из них затрагивает, и запускает пакет — вот почему инкрементальный дизайн обновления из статьи об алгоритмах графов имеет гораздо большее значение, чем чистая скорость поиска по всему графу.

Крупный своп выбивает пул ниже внешней рыночной цены; транзакция бэкраннинга приземляется сразу после него и выкупает пул обратно в равновесие, захватывая дислокацию, не затрагивая заполнение свопера.

Аукцион съедает маржу

Теперь неудобная часть. Вы нашли цикл. Как и все остальные. Возможность детерминирована, атомарна и не требует капитала — это означает, что единственная оставшаяся переменная — это кто займет выигрышный слот, и это решается приоритетным аукционом.

После перехода на разделение предложителя и строителя и MEV-Boost (подробности реализации в готовящейся статье Цепочка поставок MEV: PBS и MEV-Boost) искатели больше не ведут публичные газовые войны в мемпуле. Они отправляют пакеты конфиденциально строителям блоков, прилагая ставку — либо в виде высокой приоритетной комиссии, либо в виде прямой оплаты строителю. Строитель собирает наиболее ценный блок, который он может, и передает его предложителю. С точки зрения искателя, это аукцион с закрытыми ставками за право быть адресом, который выполняет известный, детерминированный приз.

Смоделируем это. Пусть валовая арбитражная прибыль будет GG — например, $673 из приведенного выше цикла — и пусть стоимость каждого искателя (газ, комиссия за флеш-кредит) будет cc. Чтобы выиграть слот, вы ставите bb против каждого другого искателя, который вычислил тот же GG. Ваша чистая прибыль, если вы выиграете, составляет

π=Gcb.\pi = G - c - b.

Вы хотите, чтобы bb был как можно ниже; вы также хотите выиграть. Но ваши конкуренты сталкиваются с идентичной арифметикой против идентичного GG. На аукционе с закрытыми ставками за приз общей стоимости, который каждый может точно вычислить, равновесная ставка поднимается до тех пор, пока не поглотит почти весь излишек: bGcεb \to G - c - \varepsilon, и победитель сохраняет только ε\varepsilon, тончайшую маржу, на которую он перебил второго участника. Эти $673 не остаются у того, кто нашел цикл; почти все они переходят строителю и, в конечном итоге, предложителю, который продал порядок. Это не сбой рынка; это то, что должен делать конкурентный аукцион.

Откат не бесплатен — экономика частоты откатов

Есть вторая стоимость, которую наивная модель упускает, и именно она на самом деле разделяет операторов. Когда вы проигрываете аукцион, ваш пакет просто не попадает — вы ничего не платите, что является всей сутью отправки пакетов по сравнению со старыми публичными газовыми войнами. Но когда вы выигрываете аукцион с пакетом, симуляция которого устарела — резервы изменились между вашим чтением и включением — ваша защита require(end >= start + minProfit) срабатывает, и транзакция отменяется в цепочке, и вы платите газ за откат. Атомарность защищает ваш основной капитал, а не ваш газ.

Таким образом, реальная ожидаемая стоимость искателя за возможность составляет

E[π]=pwin, profitable(Gcb)    pwin, revertedgrevert,\mathbb{E}[\pi] = p_{\text{win, profitable}}\,(G - c - b)\;-\;p_{\text{win, reverted}}\,g_{\text{revert}},

где grevertg_{\text{revert}} — это газ, сожженный на приземлившемся, но отменяющемся пакете. Повышение вашей ставки bb выигрывает больше слотов, но также выигрывает больше устаревших слотов, увеличивая член отката. Операторы, которые выживают, — это не те, кто находит больше циклов — все находят одни и те же циклы — а те, у кого ниже cc (более дешевые, более точные пути выполнения), ниже вероятность отката (более свежая симуляция, лучшее предсказание включения) и дисциплина не делать ставки на маржинальные возможности, где ожидаемая стоимость отката поглощает тонкий излишек. Преимущество, если оно есть, полностью заключается в этих затратах второго порядка.

Эмпирическая форма соответствует модели. Когда многие боты симулируют одну и ту же ончейн-возможность с одинаковой прибылью, выигрышный пакет регулярно передает большую часть валовой прибыли строителю и валидатору — те же 90% с лишним утечек, которые мы измеряли для ликвидаций, по той же причине: идеальная информация об общем призе плюс аукцион с закрытыми ставками равны марже, сниженной до стоимости маржинального проигравшего. Преимущество искателя не в размере GG, который видят все. Это любое частное преимущество в cc (более дешевое исполнение, лучшая маршрутизация, более низкий уровень отказов) или в видении GG до того, как это сделает толпа.

Что точно говорит вам, где еще сохраняется прибыль:

  • Длиннохвостые цепочки и незрелые рынки строителей. В цепочках, где работает мало опытных искателей, а аукцион строителей тонкий или отсутствует, ставка bb остается низкой, потому что некому вас перебивать. Тот же цикл, который приносит ε\varepsilon в основной сети Ethereum, может принести большую часть GG в тихом L2 или alt-L1. Преимущество — это конкуренция, а не хитрость.
  • Пулы с низкой конкуренцией и экзотические активы. Возможности, прибыльный выход из которых требует использования тонкой, зависящей от пути ликвидности DEX, трудно правильно симулировать. Искатель, который моделирует полный круговой путь — включая проскальзывание при выходе на неликвидный токен — захватывает циклы, которые наивные боты либо пропускают, либо неправильно оценивают, что приводит к откату. Здесь преимущество действительно в качестве исполнения, а не в задержке.
  • CEX-DEX арбитраж. Самая большая категория — и та, которая нарушает атомарность. Ей посвящен отдельный раздел, следующий.

Честное резюме атомарной, ончейн-игры: это отличный способ изучить внутреннее устройство EVM, архитектуру строителя и теорию аукционов на практике. Это жестокий способ зарабатывать на жизнь, потому что то, что вы продаете — способность находить и выполнять детерминированный цикл — это именно то, что продают и ваши конкуренты, и аукцион оценивает это по себестоимости.

Приоритетный аукцион с закрытыми ставками: несколько искателей подают пакеты на один и тот же детерминированный приз, ставки сходятся к валовой прибыли, и строитель и предложитель захватывают почти всю ее.

CEX-DEX арбитраж: самая большая категория, и она не атомарна

Крупнейшим источником извлекаемой стоимости в цепочке является не аккуратный атомарный цикл. Это CEX-DEX арбитраж: цена актива на централизованной бирже расходится с его ценой на DEX, и искатель торгует обеими сторонами, чтобы закрыть разрыв. Исследования неатомарного арбитража — наиболее прямое из них, Non-Atomic Arbitrage in Decentralized Finance (2024) Хеймбаха, Пахари и Шертенлейба — приписывают кросс-биржевым арбитражерам сотни миллионов долларов извлеченной стоимости за многолетний период, что превышает атомарные, чисто ончейн-категории. Если вы хотите понять, где на самом деле находятся деньги в MEV, то это здесь.

И это нарушает свойство, которое делало все вышеперечисленное безопасным. Одна часть сделки находится на централизованной бирже; другая — в цепочке. Ончейн-часть атомарна — она либо попадает в блок, либо отменяется — но CEX-часть представляет собой отдельный ордер на отдельном механизме сопоставления, который рассчитывается по своему собственному графику. Две части не могут быть обернуты в один откат. Нет require(end >= start), охватывающего обе площадки. Искатель бэкраннит своп на Uniswap, чтобы купить WETH дешево в цепочке, и отдельно продает WETH на Binance, чтобы реализовать спред — и между этими двумя событиями цена может измениться. CEX-DEX арбитраж несет тот самый инвентарный риск, который устраняет атомарный арбитраж.

Этот риск меняет всю форму бизнеса:

  • Вы должны заранее разместить инвентарь на обеих площадках. Вы не можете использовать флеш-кредит для CEX-части. Чтобы продать WETH на Binance в тот момент, когда ваша ончейн-покупка подтвердится, вы уже должны иметь WETH на Binance (и валюту котировки в цепочке, и наоборот для другого направления). Капитал, который флеш-кредит изгнал из атомарного арбитража, возвращается как жесткое требование — инвентарь, находящийся на нескольких биржах, подверженный риску.
  • Вы должны хеджировать открытую позицию. Между ончейн-заполнением и CEX-заполнением вы направленно длинны или коротки по активу. Серьезные CEX-DEX операторы управляют этим как постоянно дельта-управляемой книгой: они хеджируют экспозицию на бессрочном фьючерсе, рассматривают стоимость финансирования этого хеджа как издержки ведения бизнеса и управляют базисом между спотом и перпом. Это не новая проблема — это именно механизм кросс-биржевого арбитража по ставке финансирования, где вся игра заключается в удержании компенсирующих позиций на разных площадках и финансировании хеджа через финансирование. CEX-DEX арбитраж — это та же дисциплина, но с одной позицией, привязанной к блоку.
  • Преимущество частично информационное и структурное. Поскольку цена CEX опережает цену DEX (централизованные книги ордеров обновляются непрерывно; котировки AMM меняются только при торговле), искатель, который читает книгу ордеров CEX, знает, в каком направлении должен идти следующий бэкран до того, как ончейн-цена догонит. И все чаще сами строители интернализуют этот поток: строитель, который также управляет CEX-DEX столом, может упорядочивать блок вокруг своих собственных сделок. Это стирает грань между искателем и строителем и является одной из централизующих сил в цепочке поставок MEV — сущности, которые видят наибольший поток ордеров и контролируют наибольший порядок, также захватывают наибольший неатомарный арбитраж.

Таким образом, компромисс прямо противоположен атомарному случаю. Атомарный арбитраж безопасен (откат при убытке, отсутствие инвентаря, отсутствие капитала), но жестоко конкурентен (детерминированный приз, аукцион съедает маржу). CEX-DEX арбитраж опасен (реальный инвентарный риск, реальный капитал, хеджирование для финансирования и управления), но гораздо крупнее и менее совершенно оспаривается, именно потому, что опасность и требование к капиталу отсекают ботов, которые могут выполнять только безрисковый атомарный цикл. Дополнительная доходность является компенсацией за дополнительный риск — что является самым обычным фактом в финансах, наконец, вновь проявляющимся в цепочке, которая целый раздел притворялась, что безрисковые деньги были на столе.

Что следует вынести

Сведем аргумент к его основным положениям:

  1. Атомарность — это вся модель безопасности. Многоходовой арбитраж — это одна транзакция с защитой require(end >= start + minProfit); все, что делает ее невыгодной, отменяется, поэтому арбитражер никогда не несет инвентарного риска в середине цикла и никогда не продает последний этап с убытком.
  2. Флеш-кредиты отделяют прибыль от капитала. Занимайте, арбитражируйте и погашайте в рамках одной атомарной транзакции; кредитор защищен тем же откатом, что и вы. Победитель — не искатель с наибольшим капиталом — капитал не является барьером.
  3. Обнаружение — это легкая, стандартизированная половина. Поиск отрицательного цикла алгоритмов графов для арбитража детерминирован и идентичен для всех; нахождение цикла лишь дает вам право конкурировать за него.
  4. Бэкраннинг — это доброкачественная, доминирующая форма. Размещение сразу после крупного свопа или обновления оракула выравнивает неправильно оцененный пул, не ухудшая заполнение никого — противоположность токсичному сэндвичу, и то, что MEV-Share пытается перераспределить, а не подавить.
  5. Аукцион съедает почти всю маржу. На аукционе строителя с закрытыми ставками за общий, вычислимый приз ставки сходятся к GcεG - c - \varepsilon, и 90% с лишним утекает строителю и предложителю. Прибыль сохраняется только там, где конкуренция слаба: длиннохвостые цепочки, неликвидные пулы и более сложные для симуляции выходы.
  6. CEX-DEX — самая большая категория, и она не атомарна. Одна часть на CEX означает реальный инвентарный риск, реальный капитал и хеджирование для финансирования — сценарий кросс-биржевого финансирования, примененный с одной частью, привязанной к блоку, и одна из сил, тянущих цепочку поставок MEV к строителям, которые видят наибольший поток.

Ончейн-арбитраж со стороны выглядит как головоломка о поиске скрытых циклов. Изнутри это аукцион — и головоломка была решена для всех одновременно. Знание того, где находится цикл, никогда не было преимуществом. Выигрыш слота или торговля там, где никто другой не делает ставок, всегда было.

Ссылки

  • Daian, Goldfeder, Kell, Li, Zhao, Bentov, Breidenbach, Juels (2019), Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arXiv:1904.05234.
  • Heimbach, Pahari, Schertenleib (2024), Non-Atomic Arbitrage in Decentralized Finance. arXiv:2401.01622 (IEEE S&P 2024).
  • Robinson & Konstantopoulos (2020), Ethereum is a Dark Forest.
  • Документация по флеш-кредитам Aave v3 и флеш-свопам Balancer / Uniswap v3 (графики комиссий).
  • Документация Flashbots: MEV-Boost, MEV-Share, аукционы потока ордеров (docs.flashbots.net).
Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.

Авторы

Eugen Soloviov
Eugen Soloviov

Инженер торговых систем

Разработка торговых ботов с 2017 года: межбиржевой арбитраж (подключал до 30 бирж), парный арбитраж на коинтеграции между спотом и фьючерсами, скальпинг, фронтраннинг, торговля по новостям, сентиментный анализ, трендовые алгоритмы, а также алгоритмы управления и балансировки портфелей. Делает выставление ордеров до 1 мс, warehouse для big data, бэктестинг-движки, AI-агентов и интерфейсы для ботов (в т.ч. open-source profitmaker.cc). Стек: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, архитектура.

Newsletter

Будьте в курсе событий

Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.