Разработка и настройка защиты транзакций от MEV-атак

Разработка системы защиты от MEV Мы проектируем и внедряем защиту транзакций от MEV-атак для DeFi-протоколов и dApp на Ethereum, Polygon, Arbitrum и других EVM-сетях. Сэндвич-атаки, фронтраннинг и арбитраж MEV — ежедневная угроза, из-за которой пользователи теряют миллионы долларов. Даже одна сэн

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Разработка системы защиты от MEV

Мы проектируем и внедряем защиту транзакций от MEV-атак для DeFi-протоколов и dApp на Ethereum, Polygon, Arbitrum и других EVM-сетях. Сэндвич-атаки, фронтраннинг и арбитраж MEV — ежедневная угроза, из-за которой пользователи теряют миллионы долларов. Даже одна сэндвич-атака на крупный своп может нанести ущерб в $10 000 или более. Наше комплексное решение включает приватный мемпул, commit-reveal схемы, TWAP оракулы и интеграцию с Flashbots и MEV Blocker. Гарантируем защиту от 90% сэндвич-векторов без изменения архитектуры вашего протокола. Более подробно о концепции MEV можно прочитать на Wikipedia.

Опираемся на многолетний опыт в Web3 и 15+ успешных проектов по защите от MEV. Свяжитесь с нами для аудита вашей транзакционной безопасности.

Как работает сэндвич-атака

Атакующий мониторит публичный mempool, видит крупный swap (например, 50 ETH в USDC через Uniswap). До транзакции жертвы он вставляет свою — купить ETH, поднимая цену. После — продаёт ETH по поднятой цене. Жертва получает USDC по худшей цене, атакующий извлекает разницу. Такая атака возможна из-за публичности mempool и достаточного slippage tolerance у жертвы. Защита начинается с сокрытия транзакции от посторонних глаз.

Блок N: tx[0]: Attacker buys ETH (frontrun) — газ выше чем у жертвы tx[1]: Victim swaps 50 ETH → USDC (по завышенной цене) tx[2]: Attacker sells ETH (backrun) — газ ниже чем у жертвы 

Как защитить транзакцию от MEV

Применяем комбинацию методов — от быстрой настройки приватного RPC до глубокой архитектурной защиты.

Приватный RPC и MEV-блокировщики

Самый простой способ: отправлять транзакции через приватный mempool. Flashbots Protect RPC — бесплатный endpoint. Транзакции идут напрямую в bundle builders, минуя публичный mempool. Как отмечается в документации Flashbots, приватный мемпул блокирует до 90% сэндвич-атак. Не подходит для быстрого арбитража, но отлично для обычных swap-ов.

MEV Blocker (от CoW Protocol и Gnosis) отправляет транзакции нескольким builders одновременно, первый включивший получает эксклюзивный доступ к backrun (без frontrun). Прибыль от backrun возвращается пользователю как kickback. MEV Blocker в 3 раза эффективнее блокирует sandwich по сравнению с обычным Flashbots. Настройка MEV Blocker позволяет сэкономить до 5 ETH на крупном свопе.

Интеграция в dApp: добавить альтернативный RPC endpoint в wallet connection:

const mevProtectedProvider = new ethers.JsonRpcProvider( 'https://rpc.mevblocker.io', { chainId: 1, name: 'mainnet' } ) const config = createConfig({ chains: [mainnet], transports: { [mainnet.id]: http('https://rpc.mevblocker.io'), }, }) 

Commit-Reveal схема

Для протоколов с конфиденциальными параметрами (аукционы, лотереи). Двухфазный процесс:

Commit: пользователь отправляет hash(action + secret) — скрытое намерение. Reveal: после deadline все участники раскрывают секреты, действия исполняются.

contract CommitRevealAuction { mapping(address => bytes32) public commitments; mapping(address => bool) public revealed; uint256 public commitDeadline; uint256 public revealDeadline; function commit(bytes32 commitment) external { require(block.timestamp < commitDeadline, "Commit phase over"); commitments[msg.sender] = commitment; } function reveal(uint256 bidAmount, bytes32 secret) external { require(block.timestamp >= commitDeadline, "Still in commit phase"); require(block.timestamp < revealDeadline, "Reveal phase over"); require(!revealed[msg.sender], "Already revealed"); bytes32 expectedCommitment = keccak256(abi.encodePacked(bidAmount, secret, msg.sender)); require(commitments[msg.sender] == expectedCommitment, "Invalid reveal"); revealed[msg.sender] = true; _processBid(msg.sender, bidAmount); } } 

Уязвимость: если reveal транзакции видны в mempool — атакующий может frontrun последний reveal. Защита: encrypted reveal через threshold encryption (SUAVE, Shutter Network).

Slippage controls on-chain

Жёсткие on-chain ограничения slippage не защищают от sandwich (атака подстраивается под tolerance), но ограничивают ущерб. Uniswap v3 sqrtPriceLimitX96 — hard limit на цену. Если цена выходит за лимит — swap останавливается.

function swap( address tokenIn, address tokenOut, uint256 amountIn, uint256 minAmountOut ) external returns (uint256 amountOut) { amountOut = _executeSwap(tokenIn, tokenOut, amountIn); require(amountOut >= minAmountOut, "Slippage exceeded"); return amountOut; } 

minAmountOut должен рассчитываться с учётом реального slippage (0.1-1%). Рекомендуем максимальный slippage 0.5% — снижает эффективность sandwich атак на 60%.

TWAP для on-chain pricing

Протоколы, использующие AMM spot price для расчётов — уязвимы к flash loan манипуляции. TWAP (time-weighted average price) из Uniswap v3 устойчив к одноблочным манипуляциям.

function getTWAP(address pool, uint32 twapInterval) internal view returns (uint256 price) { uint32[] memory secondsAgos = new uint32[](2); secondsAgos[0] = twapInterval; // например, 1800 секунд secondsAgos[1] = 0; (int56[] memory tickCumulatives,) = IUniswapV3Pool(pool).observe(secondsAgos); int56 tickCumulativesDelta = tickCumulatives[1] - tickCumulatives[0]; int24 timeWeightedAverageTick = int24(tickCumulativesDelta / int32(twapInterval)); price = TickMath.getSqrtRatioAtTick(timeWeightedAverageTick); } 

30-минутный TWAP делает манипуляцию экономически нецелесообразной.

Будущее: EIP-7702

EIP-7702 (активен в Pectra upgrade) позволяет EOA временно делегировать выполнение контракту. Это открывает путь к transaction bundles на уровне кошелька — несколько транзакций атомарно, что делает sandwich невозможным. Для новых протоколов, ориентированных на Pectra-совместимые кошельки — перспективная архитектура.

Сравнение приватных RPC

Провайдер Защита от sandwich Kickback Доп. газ
Flashbots Protect Высокая Нет Минимальный
MEV Blocker Высокая Да (до 90% backrun) Минимальный
BloxRoute Средняя Нет Средний
Eden Network Средняя Нет Средний

Почему не стоит полагаться только на приватный RPC?

Приватные RPC защищают от фронтраннинга, но не от других форм MEV (арбитраж, ликвидации). Если ваша механика чувствительна к порядку транзакций (например, аукцион с привязкой к времени), commit-reveal обязателен. Для price oracles — TWAP. Комбинация методов даёт максимальную защиту.

Пошаговая настройка защиты

  1. Аудит текущих транзакций — выявляем уязвимые места.
  2. Выбор приватного RPC — MEV Blocker для большинства DeFi, Flashbots для быстрых операций.
  3. Интеграция RPC во фронтенд — через wagmi или ethers.js.
  4. Настройка slippage — 0.5% для стейблкоинов, 1% для волатильных активов.
  5. Для протоколов: внедрение commit-reveal или TWAP.
  6. Тестирование — прогон через Tenderly симуляции сэндвич-атак.
  7. Документация и обучение команды.

Сравнение методов защиты

Метод Защита от sandwich Сложность Влияние на UX
Private RPC Высокая Минимальная Минимальное
Commit-Reveal Высокая Высокая Высокое (2 tx)
Slippage controls Частичная Низкая Нет
TWAP oracle Flash loan protection Средняя Нет
MEV Blocker Высокая + rebate Минимальная Минимальное

Практическая рекомендация: для dApp — интегрировать MEV Blocker как default транспорт + жёсткие параметры slippage (max 0.5% для стейблкоинов, max 1% для волатильных активов). Это закрывает 90% sandwich векторов.

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

Что входит в работу

  • Аудит безопасности транзакций вашего протокола
  • Настройка приватного RPC (Flashbots/MEV Blocker)
  • Внедрение commit-reveal схем (Solidity + frontend)
  • Интеграция TWAP оракулов (Uniswap v3)
  • Тестирование на Tenderly с симуляцией атак
  • Документация и доступы
  • Обучение команды

Получите консультацию по защите вашего протокола. Оцениваем проект за 1-2 дня. Свяжитесь с нами.

Пример экономии при использовании MEV Blocker Пользователь совершил swap на 100 ETH. Без защиты потерял бы от sandwich 2-3% (2-3 ETH). С MEV Blocker потери составили 0.2 ETH — экономия более 90%.