Как защититься от MEV и сэндвич-атак | IceAI

Как защититься от MEV и сэндвич-атак

Сэндвич-боты снимают до 1% с каждого крупного свапа. Приватный RPC, жёсткий slippage и дробление ордеров — пошаговая защита.

Вы меняете 10 ETH на USDC в Uniswap. ETH стоит 3 000 долларов, значит на выходе ждёте 30 000 USDC. Кошелёк подтверждает транзакцию, блок закрывается — на балансе 29 820. Минус 180 долларов, и никто вам ничего не объяснил. Курс никто не двигал руками: бот увидел вашу сделку в очереди, встал перед ней и за вашей спиной, сдвинул цену и забрал разницу. Это сэндвич-атака — самый частый способ, которым MEV вытаскивает деньги из обычного трейдера.

Сэндвич возможен при двух условиях: бот видит вашу транзакцию до попадания в блок, и ваш лимит проскальзывания даёт ему место для манёвра. Уберите любое из двух — атака не работает. Инструкция ниже про то, как закрыть оба.

Как защититься от MEV и сэндвич-атак Ваша сделка 10 ETH курс 3 000 $ Сэндвич-бот +0.6% 2 сделки вокруг Потеря −$180 0.6% от суммы Две сделки бота вокруг вашей — потеря 0,6% на курсе

С чего начать

Считать надо не «сколько украли», а «сколько бот может украсть максимально». Его потолок — ваш slippage tolerance. Стоит 1% — бот вправе снять 1% от суммы, и транзакция всё равно пройдёт. На свапе 30 000 долларов это 300 долларов за 12 секунд.

Дальше два независимых рычага:

  • Спрятать транзакцию. Пока она висит в публичном мемпуле, её читает любой. Приватный RPC уводит её сразу к блок-билдеру — встать рядом бот не сможет.
  • Сузить лимит. Даже если бот увидел сделку, без запаса по проскальзыванию ему негде заработать. Tolerance 0,1–0,3% делает атаку убыточной для него самого.

Шаг 1. Проверьте, где проходит ваша сделка

Защита нужна не везде, и знать это — половина экономии.

  • Ethereum mainnet — здесь живёт 90% сэндвич-ботов. Публичный мемпул, дорогой газ: свап дороже 5 000 долларов в пуле с ликвидностью меньше 1 млн — вы в зоне риска.
  • L2: Base, Arbitrum, Optimism — секвенсор обрабатывает транзакции в порядке поступления, вклиниться перед вами бот не может. Сэндвич тут редкость, а газ в десятки раз дешевле.

Проверка занимает минуту: посмотрите price impact в оценке обмена. Больше 0,5% — вы заметная цель.

Шаг 2. Поставьте жёсткий slippage tolerance

Uniswap по умолчанию ставит 0,5%. Для топовых пар этого много.

  • ETH/USDC, BTC/USDC — 0,1%. Пул глубиной в сотни миллионов от вашей сделки почти не двигается.
  • Свопы стейблкоинов (USDC/USDT) — 0,05%. Курс там и так прибит к доллару.
  • Средние пары, L2 — 0,3%. Компромисс между защитой и риском отмены.
  • Тонкие пулы и мемкоины — честного ответа нет. Толерантность 5% означает право бота забрать 5%. Меняйте маленькими порциями, а не разрешением на 10%.

Цена ошибки: tolerance 0,5% на свапе 30 000 долларов — потолок потерь 150 долларов, при 0,1% — уже 30, и боту почти всегда невыгодно, его прибыль сравняется с газом.

Обратная сторона: слишком узкий лимит отменяет транзакции. Если рынок ходит на 0,5% за блок, а вы поставили 0,1%, свап провалится и вы заплатите газ ни за что.

Шаг 3. Дробите крупные ордера

Одна сделка — одна мишень. Считайте долю сделки от ликвидности пула.

  • До 0,5% от TVL пула — меняйте разом, сэндвич не окупится.
  • 0,5–2% — допустимо, но с минимальным tolerance и приватным RPC.
  • Больше 2% — дробите на 3–5 ордеров с паузой 30–60 секунд. За паузу арбитражники выровняют цену пула.

Пример: пул ETH/USDC с TVL 1 000 000 долларов, вы продаёте на 30 000 — это 3% пула. Разбейте на 5 ордеров по 6 000, и суммарный эффект выйдет около 0,7% вместо 1,5–2% у одного большого ордера.

Считайте газ: пять свапов по 3 доллара — 15 долларов, а экономия на сумме 30 000 составляет около 200. Выгодно. На свапе 1 000 долларов экономия будет долларов 5 — тут дробить не нужно.

Шаг 4. Подключите приватный RPC

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

  • Flashbots Protecthttps://rpc.flashbots.net. Добавляется в MetaMask как сеть с тем же chain ID, бесплатно, без регистрации.
  • MEV Blocker от CoW DAO — https://rpc.mevblocker.io. Возвращает часть MEV обратно пользователю.
  • Merkle и подобные сервисы — та же логика, выбирайте по скорости включения.

Порядок работы: MetaMask → Настройки → Сети → Добавить сеть → вставляете URL, chain ID 1, символ ETH. Перед крупным свапом переключаетесь на эту сеть, после — обратно.

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

Приватный RPC защищает от фронт-раннинга и сэндвича, но не от арбитража после вашей сделки. Это нормально: арбитраж выравнивает цены и денег у вас лично не забирает.

Шаг 5. Выбирайте агрегаторы с MEV-защитой

Обычный агрегатор просто ищет лучший маршрут — транзакция так же висит в мемпуле. Другие не показывают сделку вообще:

  • CoW Swap — ордера собираются в батч и исполняются на аукционе. Плюс возможен surplus: если исполнение вышло лучше вашей цены, разницу возвращают вам.
  • 1inch Fusion — вы подписываете намерение, газ платит резолвер, сделка не лежит открытой.
  • UniswapX — то же устройство: аукцион исполнителей вместо открытого свапа.

Выигрыш на среднем ордере — от 0,05% до 0,3% против прямого свапа. На 30 000 долларов это 15–90 долларов, которые остаются у вас.

Шаг 6. Пользуйтесь лимитными ордерами

Лимитный ордер сэндвичить невозможно: он не двигает рынок, а ждёт своей цены. 1inch и CoW Swap поддерживают такие ордера прямо в интерфейсе, комиссию вы платите только при исполнении.

Хотите продать 10 ETH по 3 100, а рынок стоит на 3 000 — ставьте лимит и не трогайте. Для крупной позиции используйте TWAP: разбейте объём на 10–20 частей и растяните на часы, тогда рынок почти не почувствует продавца.

Минус очевидный: можно не дождаться. Если деньги нужны сейчас — берите маркет с приватным RPC и узким tolerance.

Шаг 7. Считайте газ и выбирайте сеть

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

  • Ставьте приоритетный газ на 10–20% выше рекомендованного. На Ethereum это разница в пару долларов.
  • Не отправляйте крупный свап при газе 100+ gwei: и дорого, и людно.
  • Переводите крупные обмены на L2: свап на Base стоит центы против 3–10 долларов на Ethereum.

Частые ошибки

  • Tolerance 0%. Транзакция отменяется почти всегда, газ сгорает впустую.
  • Tolerance 5–10% на мемкоине. Открытая касса: бот забирает ровно столько, сколько вы разрешили.
  • Один маркет-ордер на крупную сумму в тонком пуле. Потери от кривой пула больше, чем любой сэндвич.
  • Публичный RPC по умолчанию на сделке в 50 000 долларов.
  • Низкий приоритет газа. Транзакция висит минутами, и её успевает обработать каждый бот.
  • Дробление без учёта газа. Пять свапов по 3 доллара газа имеют смысл только на суммах от нескольких тысяч.

Коротко

  • Сэндвич работает, только если бот видит сделку и у вас есть запас по проскальзыванию. Закрывайте оба условия.
  • Tolerance: 0,1% для топовых пар, 0,05% для стейблов, 0,3% на L2. Никогда не больше 10%.
  • Сделка больше 2% от TVL пула — дробите на 3–5 частей с паузой 30–60 секунд.
  • Flashbots Protect или MEV Blocker в MetaMask — бесплатно и отсекает сэндвич целиком.
  • CoW Swap, 1inch Fusion и UniswapX не показывают ваш ордер в публичном мемпуле.
  • Крупная позиция — лимитный ордер или TWAP, а не рыночная продажа разом.
  • Газ на 10–20% выше рекомендованного: меньше времени в очереди — меньше внимания ботов.
  • На Base и Arbitrum сэндвич почти невозможен, а газ дешевле в десятки раз.