Как защититься от MEV и сэндвич-атак
Сэндвич-боты снимают до 1% с каждого крупного свапа. Приватный RPC, жёсткий slippage и дробление ордеров — пошаговая защита.
Сэндвич-боты снимают до 1% с каждого крупного свапа. Приватный RPC, жёсткий slippage и дробление ордеров — пошаговая защита.
Вы меняете 10 ETH на USDC в Uniswap. ETH стоит 3 000 долларов, значит на выходе ждёте 30 000 USDC. Кошелёк подтверждает транзакцию, блок закрывается — на балансе 29 820. Минус 180 долларов, и никто вам ничего не объяснил. Курс никто не двигал руками: бот увидел вашу сделку в очереди, встал перед ней и за вашей спиной, сдвинул цену и забрал разницу. Это сэндвич-атака — самый частый способ, которым MEV вытаскивает деньги из обычного трейдера.
Сэндвич возможен при двух условиях: бот видит вашу транзакцию до попадания в блок, и ваш лимит проскальзывания даёт ему место для манёвра. Уберите любое из двух — атака не работает. Инструкция ниже про то, как закрыть оба.
Считать надо не «сколько украли», а «сколько бот может украсть максимально». Его потолок — ваш slippage tolerance. Стоит 1% — бот вправе снять 1% от суммы, и транзакция всё равно пройдёт. На свапе 30 000 долларов это 300 долларов за 12 секунд.
Дальше два независимых рычага:
Защита нужна не везде, и знать это — половина экономии.
Проверка занимает минуту: посмотрите price impact в оценке обмена. Больше 0,5% — вы заметная цель.
Uniswap по умолчанию ставит 0,5%. Для топовых пар этого много.
Цена ошибки: tolerance 0,5% на свапе 30 000 долларов — потолок потерь 150 долларов, при 0,1% — уже 30, и боту почти всегда невыгодно, его прибыль сравняется с газом.
Обратная сторона: слишком узкий лимит отменяет транзакции. Если рынок ходит на 0,5% за блок, а вы поставили 0,1%, свап провалится и вы заплатите газ ни за что.
Одна сделка — одна мишень. Считайте долю сделки от ликвидности пула.
Пример: пул 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 — тут дробить не нужно.
Самый сильный шаг. Приватные RPC отправляют транзакцию напрямую блок-билдерам, минуя публичный мемпул — боты её не видят.
https://rpc.flashbots.net. Добавляется в MetaMask как сеть с тем же chain ID, бесплатно, без регистрации.https://rpc.mevblocker.io. Возвращает часть MEV обратно пользователю.Порядок работы: MetaMask → Настройки → Сети → Добавить сеть → вставляете URL, chain ID 1, символ ETH. Перед крупным свапом переключаетесь на эту сеть, после — обратно.
Минусы честно: транзакция иногда идёт до блока дольше. Ставьте чаевые чуть выше базовых и держите обычный RPC запасным — если свап не включился за пару минут, повторите через публичный.
Приватный RPC защищает от фронт-раннинга и сэндвича, но не от арбитража после вашей сделки. Это нормально: арбитраж выравнивает цены и денег у вас лично не забирает.
Обычный агрегатор просто ищет лучший маршрут — транзакция так же висит в мемпуле. Другие не показывают сделку вообще:
Выигрыш на среднем ордере — от 0,05% до 0,3% против прямого свапа. На 30 000 долларов это 15–90 долларов, которые остаются у вас.
Лимитный ордер сэндвичить невозможно: он не двигает рынок, а ждёт своей цены. 1inch и CoW Swap поддерживают такие ордера прямо в интерфейсе, комиссию вы платите только при исполнении.
Хотите продать 10 ETH по 3 100, а рынок стоит на 3 000 — ставьте лимит и не трогайте. Для крупной позиции используйте TWAP: разбейте объём на 10–20 частей и растяните на часы, тогда рынок почти не почувствует продавца.
Минус очевидный: можно не дождаться. Если деньги нужны сейчас — берите маркет с приватным RPC и узким tolerance.
Сэндвич-боты живут на приоритетных чаевых и борются за место в блоке. Ваша транзакция с заниженным газом висит в мемпуле дольше — значит, её дольше видят боты.