Разработка системы split-routing для оптимизации цены

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Разработка системы split-routing для оптимизации цены
Сложный
~1-2 недели
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

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

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

Отметим: когда исполняете ордер на 500K USDC через один DEX, проскальзывание цены гарантированно составляет 3–8% — даже на Uniswap v3 с концентрированной ликвидностью. На неликвидных парах price impact съедает ещё больше. Мы разрабатываем системы split-routing — не маркетинговый трюк, а математически выверенное разбиение ордера между несколькими источниками ликвидности. Split-routing учитывает кривые ликвидности каждого пула и находит оптимальное распределение, минимизируя суммарный сдвиг цены. Согласно Uniswap v3 Whitepaper, концентрированная ликвидность позволяет увеличить глубину в узком диапазоне, но при крупном ордере всё равно возникает проскальзывание. Наш подход решает эту проблему, распределяя поток между Uniswap, Curve, Balancer и другими протоколами. Свяжитесь с нами для предварительного анализа ликвидности — оценим ваш проект и предложим архитектуру под ключ.

Почему наивное разбиение не работает

Интуитивный подход — split 50/50 между Uniswap и Curve — даёт субоптимальный результат. Оптимальное распределение нелинейно и зависит от текущего состояния пулов, глубины ликвидности в конкретных тиках (для Uniswap v3) и наклона bonding curve (для Curve StableSwap). Проблема усугубляется тем, что состояние пулов меняется между вычислением маршрута и исполнением транзакции.

Как MEV-боты атакуют split-routing

Системы split-routing атакуют на двух уровнях. Первый — классический sandwich attack: MEV-бот видит крупный swap в mempool, вставляет buy перед ним и sell после, используя flashbots bundle или private mempool. Второй уровень тоньше: маршрут вычисляется off-chain по состоянию пулов на блок N, а исполняется на блок N+2. За два блока ликвидность в активном тике Uniswap v3 могла сдвинуться, и оптимальный маршрут стал субоптимальным.

На практике это означает, что алгоритм маршрутизации должен закладывать tolerance на изменение состояния и пересчитывать при расхождении с ожидаемым выходом. 1inch реализует это через partial fill с minReturn, мы реализуем аналогичный механизм в on-chain executor.

Проблема атомарности многошагового маршрута

Split через несколько транзакций — не split, это последовательные свапы. Для атомарного исполнения нужен контракт-агрегатор, который в одном вызове выполняет все части маршрута через multicall или собственную логику роутинга. Если промежуточный шаг ревертируется — весь бандл откатывается. Это требует careful handling газа: каждый дополнительный hop стоит 30–80k gas в зависимости от протокола.

Что такое split-routing и зачем он нужен

Split-routing — это не просто дробление ордера, а математически оптимальное распределение по пулам. Он позволяет снизить price impact в 3-5 раз по сравнению с прямым свапом на крупных ордерах (500k+ USDC). Экономия на сделке часто превышает дополнительные газовые затраты. На сделке в 500K USDC split-routing экономит в среднем $20,000 по сравнению с прямым свапом.

Как мы строим split-routing

Алгоритм оптимизации маршрута

Ядро системы — off-chain оптимизатор, который решает задачу минимизации суммарного price impact. Для каждого DEX мы получаем кривую «объём → цена исполнения»:

  • Uniswap v2/v3, PancakeSwap: через quoter контракт или симуляцию через eth_call с fork состояния
  • Curve: аналитическая формула StableSwap/Cryptoswap
  • Balancer: формула WeightedPool или StablePool через querySwap
  • DODO: PMM (Proactive Market Maker) — нелинейная кривая с параметрами из оракула

Оптимизатор делит ордер на N частей и итерирует по распределению, минимизируя суммарный выход. Используем gradient descent с численным дифференцированием — аналитические производные для Uniswap v3 с тиками нетривиальны из-за дискретности. Алгоритм сходится за 50–200 итераций, что укладывается в < 100ms на типичном сервере.

On-chain executor

Контракт-агрегатор получает от off-chain оптимизатора encoded маршрут: массив (address pool, bytes calldata swapData, uint256 portion). Executor итерирует по массиву, вызывая каждый пул с рассчитанной долей входного токена. На выходе проверяет actualOutput >= minOutput через require, иначе revert.

struct SwapStep {
    address pool;
    address tokenIn;
    address tokenOut;
    uint256 amountIn;
    bytes data; // ABI-encoded call to pool
}

Для Uniswap v3 data содержит encoded exactInputSingle с параметрами. Для Curve — exchange с i, j, dx. Единый интерфейс через адаптеры под каждый протокол.

Защита от MEV

Интеграция с Flashbots Protect RPC как опция для крупных ордеров — транзакция идёт напрямую к builder, минуя публичный mempool. Для EVM-совместимых L2 (Arbitrum, Optimism) MEV-риск ниже за счёт centralized sequencer, но на Base и zkSync уже появляются MEV-боты.

Слипейдж tolerance настраивается динамически: для пар с высокой волатильностью (алты) — 0.5–1%, для стейблов на Curve — 0.05–0.1%.

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

  • Документация: описание архитектуры, спецификация API, параметры конфигурации.
  • Исходный код: off-chain оптимизатор (TypeScript/Python) и смарт-контракты с тестами.
  • Интеграция: настройка деплоя, подключение к вашему front-end, обучение команды.
  • Поддержка: 2 недели post-launch мониторинга и фиксов.

Всё выполняется под ключ: вы получаете готовый агрегатор, адаптированный под ваши токены и чейны. Пишите — оценим ваш проект и предложим архитектуру.

Процесс работы

  1. Анализ ликвидности (3–5 дней). Профилируем пулы на целевых чейнах: глубина ликвидности, типичные объёмы, распределение по тикам для v3. Определяем список DEX для интеграции.
  2. Разработка оптимизатора (1–2 недели). Off-chain сервис на TypeScript/Python. Тестируем на исторических данных через The Graph — насколько оптимальный маршрут превосходит прямой свап по выходной цене.
  3. Smart contract executor (1 неделя). Разработка и тесты в Foundry с fork-тестами на mainnet. Проверяем все граничные случаи: нулевой выход, revert в промежуточном пуле, reentrancy через callback.
  4. Интеграция и деплой. API для front-end, документация по параметрам, деплой на testnet → mainnet через Gnosis Safe мультисиг.

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

Базовая система с 3–5 DEX на одном чейне — 3–4 недели. Мультичейн агрегатор с кросс-L2 маршрутизацией через bridge — от 2 месяцев. Сроки зависят от количества интегрируемых протоколов и требований к обновлению маршрутов в реальном времени.

Типичные грабли при разработке

Типичные проблемы

Stale quotes в production. Алгоритм вычисляет маршрут по состоянию блока N, транзакция майнится на N+3. Пул успел сдвинуться. Решение — on-chain verification минимального выхода и достаточно консервативный slippage tolerance.

Газ на multicall превышает экономию от лучшей цены. На Ethereum mainnet при высоком газе (> 50 gwei) разбиение на 5 хопов добавляет 200–400k gas. Для мелких ордеров это дороже, чем price impact от прямого свапа. Оптимизатор должен учитывать стоимость газа как часть целевой функции.

Curve pool imbalance после крупного свапа. После исполнения нашей части маршрута через Curve пул может оказаться сильно несбалансирован, и следующий хоп получает худшую цену, чем предполагал оптимизатор. Для последовательных хопов внутри одной транзакции это критично — нужна симуляция состояния after каждого шага.

Сравнение: split-routing против прямого свапа

Характеристика Прямой свап на одном DEX Split-routing (3+ DEX)
Price impact (ордер 500k USDC) 3–8% 0.5–2%
Риск MEV Высокий Снижен (частично приватные tx)
Газ (Ethereum) ~100k gas 300–500k gas
Доступные протоколы Один 3–5 и более

Отметим: как видите, split-routing выигрывает в цене исполнения в 2-4 раза, хотя требует больше газа. Это идеальный trade-off для крупных ордеров.

Зависимость экономии от размера ордера

Размер ордера (USDC) Price impact direct Price impact split Экономия
100k 1.5% 0.3% 1.2%
500k 5% 1% 4%
1M 8% 1.5% 6.5%

По сравнению с прямым свапом, split-routing даёт лучшую цену в 3-5 раз на крупных ордерах. Экономия на сделке в 500k USDC составляет около $20,000. Получите консультацию — рассчитаем экономию под ваш объём.

Uniswap v3 WhitepaperCurve Finance Documentation

Наши инженеры имеют 5+ лет опыта в DeFi, 30+ успешных проектов. Мы гарантируем прозрачный код с полным набором тестов. Закажите предварительный анализ ликвидности — мы подберём оптимальный набор DEX для ваших токенов.

Разработка DeFi-протоколов

Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.

Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.

Почему оракулы — критический компонент DeFi?

Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.

Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.

TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.

Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.

Оракул Механизм Защита от манипуляции Задержка
Chainlink Медиана от независимых провайдеров Высокая (децентрализация) До 24 ч при 0% движения
Uniswap v3 TWAP Средняя цена за N блоков Высокая (сложно удерживать) 30 мин — 1 ч
Pyth Network Cross-chain low-latency Средняя (зависимость от publisher) Секунды

В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.

Как защитить DeFi-протокол от flash loan атак?

Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.

Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.

Ключевые компоненты DeFi-архитектуры

Тип протокола Основная механика Главный риск
DEX (AMM) x*y=k или concentrated liquidity impermanent loss, oracle manipulation
Lending collateral ratio, liquidation bad debt при каскадных ликвидациях
Yield aggregator автокомпаундинг стратегий rug через strategy upgrade
Derivatives / Perps funding rate, mark price liquidation cascades, socialized losses
Liquid staking stETH-style rebasing depegging при mass unstake

AMM: от x*y=k до concentrated liquidity

Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.

Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.

Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.

Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.

Lending протоколы: collateral, liquidation, bad debt

LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.

Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.

Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.

Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.

Yield farming и incentive mechanics

Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.

Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.

Что входит в нашу разработку DeFi-протоколов

  • Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
  • Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
  • Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
  • Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
  • Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
  • Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
  • Поддержка после запуска: обновления, патчи, апгрейды через proxy.

Наши компетенции и опыт

Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.

DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.

Сроки

  • DEX с AMM (Uniswap v2 fork): 6–10 недель
  • Lending protocol (Aave-style, один collateral): 3–5 месяцев
  • Yield aggregator с несколькими стратегиями: 2–4 месяца
  • Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит

Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта.

Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.