Создание арбитражного бота для DEX: gas, MEV и надёжность

Реализация DEX-арбитражного бота: тонкости и решения На Uniswap V3 ETH/USDC стоит $3 201.50, на SushiSwap — $3 199.80. Разница $1.70 на ETH. Чтобы сделка была прибыльной, нужно учесть: gas 21 000 + 150 000 (два свапа) ≈ 170 000 gas × 30 gwei × $3 200 / 1e9 ETH = ~$16 на gas. Значит, при сделке в

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

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

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

  • 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

Реализация DEX-арбитражного бота: тонкости и решения

На Uniswap V3 ETH/USDC стоит $3 201.50, на SushiSwap — $3 199.80. Разница $1.70 на ETH. Чтобы сделка была прибыльной, нужно учесть: gas 21 000 + 150 000 (два свапа) ≈ 170 000 gas × 30 gwei × $3 200 / 1e9 ETH = ~$16 на gas. Значит, при сделке в $1 000 разница должна быть хотя бы 1.6%, а при $100 000 хватит 0.016%. DEX-арбитраж работает только при достаточном размере позиции или ценовом расхождении — flash loans делают этот бизнес доступным без собственного капитала. Типичная сделка приносит от $200 до $500 чистой прибыли.

Более 10 реализованных DeFi-проектов за 5 лет — наш опыт гарантирует надёжность решения.

Почему DEX-арбитражные боты часто не приносят прибыль?

Mempool конкуренция и MEV

Самый сложный враг DEX-арбитражника — MEV-боты с прямым доступом к блок-билдерам. Через Flashbots eth_sendBundle транзакция попадает напрямую к билдеру, минуя public mempool. Flashbots предоставляет механизм приватной отправки, который в 3 раза эффективнее обычной отправки в мемпул: процент успешных транзакций повышается в 2–3 раза.

Если ваш бот отправляет транзакции в public mempool — вы в проигрышной позиции. Обычный gas auction означает, что другие боты видят вашу транзакцию, оценивают прибыльность и выставляют более высокий gas. Решение: отправлять все транзакции через Flashbots или MEV Blocker (агрегатор нескольких private relays). Плюс — можно включать несколько транзакций в один bundle с atomic исполнением.

Slippage и расчёт реальной цены

Проблема большинства начинающих реализаций: расчёт арбитражной возможности по spot price пула без учёта price impact. Реальная цена после свапа зависит от текущей ликвидности в активном диапазоне (Uniswap V3), размера транзакции и spread через несколько tick ranges. Для V3 правильный расчёт требует симуляции свапа через Quoter контракт или off-chain через @uniswap/v3-sdk. Разница между spot price и реальной ценой исполнения при $100k свапе на среднеликвидном пуле — 0.3-1.5%. Без учёта этого расчёт прибыльности будет неверным.

Gas оптимизация: разница между прибылью и убытком

На mainnet Ethereum арбитраж работает только при оптимизированном gas usage. Типичная ошибка: два отдельных ERC-20 approve + swap = +43 000 gas сверху. Решение — использовать permit (EIP-2612) для токенов с поддержкой, или заранее одобрить максимальную сумму и не переодобрять. Ещё больше экономит atomic arbitrage через flash loan в одном контракте: нет нескольких transfer между EOA и DEX, нет отдельных транзакций. Весь арбитраж — одна транзакция: flash loan → swap A → swap B → repay loan → profit. Gas на такую транзакцию: 200 000 - 400 000 в зависимости от протоколов. Оптимальная настройка газа экономит до 30% комиссий.

Как построить надёжный DEX-арбитражный бот?

Какой стек технологий используется?

  • On-chain контракт на Solidity 0.8.x исполняет сделку атомарно, реализует flash loan callback (Aave IFlashLoanReceiver или Uniswap V3 IUniswapV3FlashCallback), выполняет свапы и проверяет profit.
  • Off-chain executor на Rust мониторит пулы через WebSocket-подписки на собственные Ethereum-ноды, рассчитывает пути с помощью алгоритма Bellman-Ford (см. Wikipedia) и отправляет транзакции через Flashbots.

Пример контракта:

function executeArbitrage( address tokenIn, uint256 amountIn, SwapPath[] calldata path, uint256 minProfit ) external { // Flash loan from Aave // Execute swaps along path // Assert profit >= minProfit, else revert // Repay flash loan // Transfer profit to owner } 

Revert при недостаточной прибыли — ключевая защита: если рынок изменился, контракт откатится, потратив только base gas (~21 000), а не весь газ исполнения свапов.

Сравнение стратегий арбитража

Стратегия Риски Прибыльность Сложность реализации
Простой двухсторонний Низкие Средняя Низкая
Multi-hop (3+ пути) Средние Высокая Средняя
Cross-chain через bridge Высокие Высокая Высокая
Flash loan + MEV защита Средние Очень высокая Высокая

На практике стратегия с flash loan и Flashbots bundle показывает в 1.5–2 раза больше прибыльных транзакций по сравнению с обычной отправкой в мемпул.

Поиск оптимального пути: Bellman-Ford

Для multi-hop арбитража (A→B→C→A) задача нахождения прибыльного пути — это задача нахождения отрицательного цикла в графе цен. Классический алгоритм — Bellman-Ford на графе, где узлы = токены, рёбра = пулы, веса = log(exchange_rate). На практике для 5-10 DEX и 50-100 токенов граф небольшой, Bellman-Ford считается за миллисекунды.

Процесс разработки

  1. Аналитика (2-3 дня). Определение целевых DEX, сетей, токен пар. Анализ конкурентной среды — сколько ботов уже работает в выбранном сегменте.
  2. Разработка контракта (1 неделя). Flash loan интеграция, multi-hop swap логика, profit assertion. Тесты на mainnet fork через Foundry.
  3. Разработка executor (1-2 недели). WebSocket мониторинг пулов, Bellman-Ford / path finding, Flashbots bundle отправка.
  4. Оптимизация и деплой (3-5 дней). Gas профилирование, fine-tuning minProfit порогов, деплой в production.

Мониторинг и управление рисками

Арбитражный бот в production требует мониторинга нескольких метрик: win rate по транзакциям (если > 30% revert — слишком медленный executor), gas efficiency, capital utilization, конкурентная среда. Используем Grafana + Prometheus для метрик, алерты через Telegram bot.

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

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

Свяжитесь с нами для детального обсуждения вашего проекта. Закажите разработку бота с гарантированной поддержкой — получите консультацию экспертов с 5-летним опытом в DeFi.

Ориентиры по срокам

Базовый бот (2 DEX, один network, flash loan) — 1-2 недели. Multi-DEX, multi-path с Flashbots интеграцией — 2-4 недели. Cross-chain или advanced MEV стратегии — от 6 недель. Стоимость рассчитывается индивидуально.