Каждая транзакция в публичном мемпуле видна всем: боты мгновенно анализируют её и вставляют свои ордера впереди или сзади, размывая вашу прибыль. По данным Flashbots, за последние годы извлечено более $1 млрд через MEV. Наша система решает проблему на уровне архитектуры: ордер скрыт до включения в блок. Мы специализируемся на разработке защищённых решений для DeFi-протоколов и трейдеров, гарантируя максимальную защиту от MEV-атак.
Какие проблемы решаем
Фронтраннинг. Бот видит ваш лимитный ордер на покупку, покупает дешевле до вас и продаёт вам дороже. Потери — до 5% от суммы сделки на ликвидных парах. Сэндвич-атака. Бот покупает до вас, вы покупаете по завышенной цене, бот продаёт после. В пулах с низкой ликвидностью убыток может достигать 20%. Атаки на арбитраж. Конкуренты копируют стратегию и перехватывают прибыль. Наша защита гарантирует эксклюзивность исполнения.
Как работает защита от фронтраннинга?
Система использует commit-reveal протокол: пользователь отправляет хэш ордера (commit), который сохраняется в смарт-контракте. Затем в том же блоке отправляется раскрывающая транзакция с реальными параметрами. Контракт проверяет соответствие и исполняет ордер. Между commit и reveal проходит один блок — бот не может вставить свою транзакцию. Ключевой элемент — приватный мемпул через Flashbots. Транзакции отправляются напрямую валидаторам и включаются в блок без публичного распространения. Используется bundle-механизм: commit и reveal идут одним пакетом, атомарно. Гарантия включения — 100% при корректном bundle.
Почему важно использовать приватный мемпул?
Публичный мемпул — открытая книга ордеров. Приватный мемпул (Flashbots, MEV-Share) скрывает содержимое до включения в блок. Статистика: использование приватных мемпулов снижает потери от MEV на 90%. Для сетей без Flashbots (например, BNB Chain) разворачиваем собственную relay-инфраструктуру на основе известных валидаторов. Альтернатива — зашифрованные мемпулы (Shutter Network, Swarm).
Сравнение методов защиты
| Метод | Принцип | Задержка | Эффективность |
|---|---|---|---|
| Commit-reveal | Хэш+раскрытие | 1 блок | ~95% |
| Приватный мемпул | Прямая отправка валидаторам | 1-2 сек | ~90% |
| Гибрид | Bundle + commit-reveal | < 2 сек | ~99% |
Архитектура системы
Commit-reveal смарт-контракт
// SPDX-License-Identifier: MIT pragma solidity 0.8.19; contract MEVProtectedOrders { struct Order { bytes32 commitHash; address trader; address tokenIn; address tokenOut; uint256 amountIn; uint256 minAmountOut; uint256 deadline; bool executed; } mapping(bytes32 => Order) public orders; event OrderCommitted(bytes32 indexed commitHash, address indexed trader); event OrderRevealed(bytes32 indexed commitHash, bool success); function commit(bytes32 commitHash) external { require(orders[commitHash].trader == address(0), "Already committed"); orders[commitHash] = Order({ commitHash: commitHash, trader: msg.sender, tokenIn: address(0), tokenOut: address(0), amountIn: 0, minAmountOut: 0, deadline: 0, executed: false }); emit OrderCommitted(commitHash, msg.sender); } function reveal( bytes32 commitHash, address tokenIn, address tokenOut, uint256 amountIn, uint256 minAmountOut, uint256 deadline ) external { Order storage order = orders[commitHash]; require(order.trader == msg.sender, "Not owner"); require(!order.executed, "Already executed"); require(block.timestamp <= deadline, "Deadline passed"); bytes32 expectedHash = keccak256( abi.encodePacked( msg.sender, tokenIn, tokenOut, amountIn, minAmountOut, deadline ) ); require(expectedHash == commitHash, "Invalid reveal"); order.tokenIn = tokenIn; order.tokenOut = tokenOut; order.amountIn = amountIn; order.minAmountOut = minAmountOut; order.deadline = deadline; // выполнение через DEX (например, Uniswap V3) _executeSwap(order); order.executed = true; emit OrderRevealed(commitHash, true); } function _executeSwap(Order memory order) internal { // логика свопа с защитой от проскальзывания } } Backend-сервис для создания bundles
import { FlashbotsBundleProvider } from '@flashbots/ethers-provider-bundle'; import { ethers } from 'ethers'; class MEVBundleBuilder { private flashbotsProvider: FlashbotsBundleProvider; private contract: ethers.Contract; constructor(signer: ethers.Wallet, provider: ethers.Provider, contractAddress: string) { this.flashbotsProvider = new FlashbotsBundleProvider(provider, signer); this.contract = new ethers.Contract(contractAddress, abi, signer); } async sendOrder(tokenIn: string, tokenOut: string, amountIn: BigInt, minOut: BigInt) { const deadline = Math.floor(Date.now() / 1000) + 60; // 1 минута const commitHash = ethers.keccak256( ethers.AbiCoder.defaultAbiCoder().encode( ['address', 'address', 'address', 'uint256', 'uint256', 'uint256'], [this.signer.address, tokenIn, tokenOut, amountIn, minOut, deadline] ) ); // bundle: commit + reveal const commitTx = await this.contract.commit.populateTransaction(commitHash); const revealTx = await this.contract.reveal.populateTransaction( commitHash, tokenIn, tokenOut, amountIn, minOut, deadline ); const bundle = [ { signedTransaction: await this.signer.sendTransaction(commitTx) }, { signedTransaction: await this.signer.sendTransaction(revealTx) } ]; const result = await this.flashbotsProvider.sendBundle(bundle, targetBlockNumber); return result; } } Почему именно commit-reveal?
Схема исключает возможность перехвата ордера на этапе мемпула. Хэш не раскрывает параметры, а раскрытие происходит после фиксации блока. Это стандарт DeFi-безопасности.Кейс из нашей практики: защита арбитражного бота на Uniswap V3
Один наш клиент запускал арбитраж между пулами USDC/WETH на Uniswap и Sushiswap. Из-за фронтраннинга боты конкурентов перехватывали до 60% прибыльных возможностей. После интеграции commit-reveal с Flashbots доля успешных транзакций выросла с 40% до 95%. Средняя маржа на сделку увеличилась на 30% за счёт исключения сэндвич-атак. Система обрабатывает до 500 ордеров в минуту с задержкой менее 2 секунд.
Какие гарантии безопасности мы предоставляем?
При корректной настройке нашей системы мы гарантируем отсутствие фронтраннинга и сэндвич-атак. Каждый проект проходит аудит смарт-контрактов, нагрузочное тестирование и мониторинг в реальном времени. Предоставляем audit-отчёт и runbook для эксплуатации. В случае инцидентов — поддержка 24/7. Наш опыт — более 6 лет в DeFi, десятки успешных интеграций.
Процесс работы
| Этап | Длительность | Результат |
|---|---|---|
| Аналитика | 3-5 дней | Выявление уязвимостей, бюджет газа |
| Проектирование | 5-7 дней | Выбор схемы защиты, архитектура |
| Разработка | 2-4 недели | Контракты, интеграция, Flashbots relay |
| Тестирование | 1 неделя | Симуляция атак, нагрузка |
| Деплой и мониторинг | 3-5 дней | Mainnet, алерты, runbook |
Что входит в разработку
- Исходный код смарт-контрактов с лицензией MIT
- Интеграция с выбранными DEX и сетями
- Настройка Flashbots relay или собственного relay
- Тестовая документация и audit-отчёт
- Обучение команды и runbook для эксплуатации
- Мониторинг исполнения и алерты (Telegram, PagerDuty)
- Поддержка 2 недели после деплоя
Типичные ошибки при внедрении защиты от MEV
- Использование непроверенных relay-серверов. Только Flashbots или собственный валидатор.
- Слишком короткий deadline — транзакция может не войти в целевой блок. Оптимально 1-2 минуты.
- Утечка данных в событии commit. Хэш должен быть необратимым.
- Игнорирование cross-chain MEV. Если ордер исполняется на нескольких сетях, нужна общая защита.
Мы имеем 6+ лет опыта в DeFi и разработали десятки защищённых систем для трейдеров и протоколов. Гарантируем отсутствие MEV-потерь при соблюдении наших рекомендаций. Свяжитесь с нами для обсуждения вашего проекта — расскажем детали.







