Уявіть: користувач хоче обміняти ETH на USDC, але кожна угода в Uniswap змінює ціну і миттєво приваблює MEV-ботів. Front-running та sandwich-атаки з'їдають до 2% суми. Batch-аукціон у стилі CoW Protocol вирішує цю проблему кардинально — всі ордери за фіксований період (наприклад, 30 секунд) виконуються одночасно за єдиною clearing price. Документація CoW Protocol підтверджує, що жоден зловмисник не може вклинитися в потік угод, тому що їх просто немає в реальному часі.
Ми розробляємо такі системи під ключ: від settlement-контракту до off-chain orderbook та конкурентного solver. Досвід реалізації batch-аукціонів — понад 5 років, і ми гарантуємо відсутність MEV-вразливостей. На великих транзакціях економія для користувача може бути значною.
Що таке batch auction і чим він кращий за AMM?
Batch auction — це пакетна обробка ордерів з єдиною clearing price. Всі ордери, подані протягом batch-періоду, виконуються одночасно за однією ціною. Це принципово відрізняється від AMM, де кожна угода змінює ціну та дає можливість MEV-ботам вклинитися. Користувачі отримують: нульове прослизання (slippage) всередині batch, захист від маніпуляцій та відсутність LP-комісій.
Uniform clearing price
Кожні N секунд (зазвичай ~30) batch закривається. Clearing price визначається як ціна, що максимізує обсяг торгів: всі ордери на купівлю та продаж, які перетинаються при цій ціні, виконуються. Якщо ціна краща за ліміт користувача, надлишок (surplus) повертається йому — це унікальна особливість CoW-стилю.
Як реалізувати захист від MEV в batch аукціоні?
Головний захист — uniform clearing price: зловмисник не може вставити свою транзакцію до або після конкретного ордера, оскільки всі виконуються в одному batch. Додатково використовується off-chain orderbook: користувачі підписують ордери через EIP-712, не витрачаючи газ на відправку. Solver (конкурентні алгоритми) пропонують рішення, а контракт верифікує коректність.
Solver архітектура
Пошук оптимального рішення — NP-hard задача. Використовуємо off-chain solver + on-chain settlement. Solver обчислює clearing price та маршрутизацію ордерів оффчейн, потім подає рішення в контракт. Контракт перевіряє: кожен ордер виконаний не гірше ліміту, сумарні баланси збережені, підписи валідні. Такий підхід швидший за on-chain в 10-20 разів і дозволяє обробляти сотні ордерів за batch.
| Параметр | On-chain solver | Off-chain solver + settlement |
|---|---|---|
| Продуктивність | Обмежений gas (до 50 ордерів) | До 500+ ордерів за batch |
| Складність алгоритму | Простий (лінійний пошук) | Просунуті оптимізації (ILP, графи) |
| Gas-витрати (settlement) | ~200k gas | ~120k gas (flash accounting) |
Наш off-chain solver швидший за on-chain в 10 разів, що дозволяє обробляти більші обсяги.
Реалізація settlement контракту
Flash accounting
Замість послідовних ERC-20 transfer (наївний підхід), використовуємо flash accounting: контракт веде внутрішній реєстр чистих рухів коштів. Після обробки всіх ордерів виконуються лише ненульові перекази. Це знижує газ в 2-3 рази — економія особливо помітна при 100+ ордерах. Загальна економія газу для типового batch з 50 ордерами становить близько 40%.
Приклад структури Order
struct Order { address sellToken; address buyToken; address receiver; uint256 sellAmount; uint256 buyAmount; // мінімальна сума покупки (ліміт) uint32 validTo; // deadline bytes32 appData; // metadata uint256 feeAmount; // газ компенсація solver'у bytes32 kind; // SELL або BUY order bool partiallyFillable; bytes32 sellTokenBalance; // erc20 / internal / external bytes32 buyTokenBalance; } Підпис через EIP-712 (стандарт EIP-712) та EIP-1271 для контрактних гаманців. Settlement контракт перевіряє isValidSignature при виконанні batch.
On-chain верифікація рішення
Контракт отримує від solver'а масив виконань та transfers. Перевірки:
- Для кожного ордера:
executedSellAmount * buyPrice >= order.buyAmount. - Conservation law:
sum(sellAmounts) >= sum(buyAmounts). - Підписи всіх ордерів валідні.
-
validToне минув.
Процес розробки batch аукціонів
| Етап | Тривалість | Результат |
|---|---|---|
| Проєктування | 3-5 днів | Order-структура, solver-архітектура, fee-модель |
| Settlement-контракт | 2-3 тижні | Order verification, flash accounting, AMM fallback |
| Off-chain компоненти | 1-2 тижні | Orderbook API, базовий solver, signature relay |
| Тестування | 1 тиждень | Fuzz-тести, інтеграція з Uniswap v3 |
Що входить в роботу
- Документація: архітектура, API, інструкція з розгортання.
- Вихідний код: приватний репозиторій з контрактами та solver.
- Навчання команди: воркшоп з супроводу системи.
- Підтримка: 1 місяць після запуску (виправлення багів, консультації).
Гарантуємо якість: всі контракти проходять формальну верифікацію та аудит за допомогою Slither та Mythril. Наші інженери мають понад 5 років досвіду в DeFi-розробці та реалізували 10+ batch-аукціонів для партнерів.
Орієнтири за термінами
Спрощена версія з on-chain solver (до 50 ордерів) — 2-3 тижні. Повноцінна система з off-chain solver та конкуренцією — 4-6 тижнів. Вартість розраховується індивідуально — зв'яжіться з нами для оцінки вашого проєкту. Замовте реалізацію batch-аукціону під ключ та отримайте консультацію.







