Розробка on-chain протоколу деривативів під ключ

Взявшись за розробку першого протоколу перпетуалів для клієнта, ми одразу зіткнулися з проектуванням стійкої до маніпуляцій системи ліквідації. Стандартний механізм із повним закриттям позиції при health factor < 1 на високоволатильних ринках генерував bad debt у 3.8% від обсягу. На внутрішньому хак

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

Часті запитання

Останні роботи

  • 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

Взявшись за розробку першого протоколу перпетуалів для клієнта, ми одразу зіткнулися з проектуванням стійкої до маніпуляцій системи ліквідації. Стандартний механізм із повним закриттям позиції при health factor < 1 на високоволатильних ринках генерував bad debt у 3.8% від обсягу. На внутрішньому хакатоні ми переписали core liquidation engine чотири рази, перш ніж знайшли робочу конфігурацію partial liquidation + dynamic fee. Це чесний індикатор складності задачі: розробка on-chain протоколу деривативів — це не надбудова над AMM, а окрема фінансова система з десятками взаємопов'язаних компонентів. Наша команда має 5+ років досвіду в DeFi та реалізувала понад 10 протоколів із сукупним TVL понад $180M. Гарантуємо якість коду та проходження зовнішнього аудиту. Завдяки оптимізації газових витрат, наші клієнти економлять до $150 000 на транзакційних витратах на рік.

Класифікація on-chain деривативів

Перш ніж писати перший рядок коду, потрібно точно визначити тип інструменту. Контракти для різних класів деривативів не мають спільного коду, окрім базових утиліт.

Тип Приклади Ключова механіка Складність
Perpetual futures GMX, dYdX, Gains Funding rate, mark price, liquidation Висока
Options Lyra, Dopex, Premia Greeks, IV модель, exercise Дуже висока
Structured products Ribbon Finance Vault стратегії, rolling Середня
Prediction markets Polymarket Binary settlement, оракул Середня
Синтетичні активи Synthetix Debt pool, oracle debt, SNX стейкінг Висока

Далі зосередимося на perpetual futures — найбільш затребуваному типі.

Чому perpetual futures потребують складного двигуна ліквідації?

Funding rate — серце перпетуалу

Perpetual futures on Wikipedia не мають експірації. Замість конвергенції до спотової ціни через дату експірації перпетуал підтримує прив'язку через funding rate — періодичні платежі між лонгами та шортами.

Стандартна формула: fundingRate = clamp(premium / fundingInterval, -maxRate, maxRate), де premium = (markPrice - indexPrice) / indexPrice.

Проблема в тому, що mark price на слаболіквідних ринках легко маніпулювати. GMX v1 використовував чистий Chainlink price feed як mark price — це дозволяло атакуючим відкривати позиції безпосередньо перед маніпульованим оновленням оракула та закривати після. GMX втратив на цьому кілька мільйонів доларів до введення position impact fee.

Рішення, яке ми використовуємо: mark price = TWAP за останні X хвилин торгів на самому протоколі (якщо обсяг достатній) з fallback на median із трьох оракулів (Chainlink, Pyth, Redstone). Маніпуляція стає дорогою: потрібно рухати і торговий обсяг на протоколі, і кілька зовнішніх оракулів одночасно.

Liquidation engine та partial liquidation

Класичний підхід — ліквідація при health factor < 1 із негайним закриттям усієї позиції. Ліквідатор отримує liquidation fee (зазвичай 0.5–1%). Проблема: на волатильному ринку позиція може піти глибоко в мінус швидше, ніж ліквідатор встигне зреагувати. Результат — bad debt, який покриває insurance fund. Середня ліквідація обходиться в ~2000 gas, що при ціні газу 50 gwei становить близько $0.02, але при високій волатильності ліквідатори платять премію до $0.5.

Більш просунутий підхід — partial liquidation: при досягненні warning threshold (наприклад, margin ratio < 5%) позиція частково примусово зменшується до відновлення margin ratio. Повна ліквідація лише при повному вичерпанні маржі.

function liquidate(address trader, bytes32 marketId) external { Position storage pos = positions[trader][marketId]; uint256 markPrice = getMarkPrice(marketId); int256 unrealizedPnl = _calcUnrealizedPnl(pos, markPrice); uint256 margin = uint256(int256(pos.collateral) + unrealizedPnl); uint256 maintenanceMargin = _getMaintenanceMargin(pos, markPrice); require(margin < maintenanceMargin, "Position healthy"); // Часткова ліквідація якщо можливо uint256 reduceAmount = _calcPartialLiquidationSize(pos, margin, maintenanceMargin); _reducePosition(trader, marketId, reduceAmount, markPrice); uint256 liquidationFee = reduceAmount * liquidationFeeRate / 1e18; _transferFee(msg.sender, liquidationFee); } 

Cross-margin vs isolated margin

Cross-margin: весь баланс користувача — спільна маржа для всіх позицій. Позиція на ETH допомагає вижити позиції на BTC при локальному просіданні. Ризик — одна збиткова позиція може ліквідувати весь акаунт.

Isolated margin: кожна позиція ізольована. Максимальний збиток обмежений виділеною маржею. Безпечніше для користувача, складніше для реалізації: потрібен per-position accounting у storage.

Для більшості клієнтських протоколів ми реалізуємо ізольований margin як режим за замовчуванням з опціональним cross-margin для просунутих користувачів.

Архітектура: AMM vs Virtual AMM vs Orderbook

vAMM (virtual AMM) — підхід Perpetual Protocol. Реальної ліквідності немає, ціна визначається формулою x*y=k на віртуальних резервах. Liquidity providers не потрібні для базової роботи. Мінус: високе slippage при великих позиціях (до 2% для позиції $500k), funding rate не завжди відображає реальний ринок.

Global liquidity pool — підхід GMX. LP депонують кошик активів (GLP/GM), стають контрагентами для всіх трейдерів. Якщо трейдери в середньому втрачають — LP заробляють (середня дохідність 15-20% річних). Працює добре на стабільних ринках, але LP несуть asymmetric risk: при масових прибуткових позиціях GLP втрачає вартість.

Hybrid orderbook + AMM — найскладніший, найближчий до CEX UX. Off-chain матчинг (через dedicated sequencer або off-chain orderbook) з on-chain settlement. Таку архітектуру використовує Hyperliquid.

Як ми захищаємо протокол від оракульних маніпуляцій?

Деривативний протокол — найвимогливіший споживач оракулів у DeFi. Вимоги:

  1. Latency: Chainlink апдейт раз на кілька блоків недостатній для активної торгівлі. Pyth Network надає sub-second updates через pull-оракул: дані публікуються off-chain, on-chain оновлення ініціює користувач транзакцією з proof.
  2. Multi-asset: для кожного ринку потрібен окремий price feed. Redstone надає гнучку систему з кастомними агрегаторами.
  3. Manipulation resistance: для mark price потрібен TWAP, для liquidation price — більш актуальні дані.

Ми будуємо трирівневу систему: Pyth для trading execution, Chainlink TWAP для mark price розрахунку, власний on-chain TWAP як остання лінія захисту. Кроки налаштування:

  1. Інтегрувати Pyth pull-оракул для кожної торгової пари — оновлення кожні 400ms.
  2. Налаштувати Chainlink TWAP feed (з періодом 1 година) для розрахунку mark price.
  3. Розгорнути резервний on-chain TWAP на основі останніх 100 блоків.
  4. Провести симуляцію маніпуляції: відкрити позицію на $1M і спробувати зсунути ціну — система повинна чинити опір.

Як забезпечити ліквідність для деривативної біржі?

Ліквідність — ключовий фактор успіху будь-якого деривативного протоколу. Ми пропонуємо кілька моделей: vAMM для швидкого запуску (потребує мінімального капіталу), liquidity pool з LP-стимулами (початковий TVL від $2M), або гібридний orderbook для інституційних обсягів. Вибір залежить від цільової аудиторії та обсягів торгів. Зазвичай для старту достатньо vAMM з подальшим переходом на pool при досягненні $10M денного обсягу.

Ризики та заходи з їх мітигації

Insurance fund: обов'язковий компонент для будь-якого перпетуал-протоколу. Наповнюється з частини trading fee (зазвичай 10-20%). Покриває bad debt при недостатній ліквідації. При TVL $180M ми рекомендуємо цільовий розмір фонду $1.8M.

Position limits: максимальний open interest на сторону (лонг/шорт) обмежує експозицію протоколу. Пропорційно розміру insurance fund.

Circuit breakers: при відхиленні mark price від index price більше ніж на 5% — зупинка нових позицій до нормалізації. Захист від оракульних маніпуляцій.

Admin key security: протокол з TVL > $500M потребує multi-sig timelock (мінімум 48 годин) на всі параметричні зміни. Миттєві зміни комісій чи ліквідаційних порогів — червоний прапор для будь-якого аудитора.

Стек розробки

Контракти: Solidity 0.8.24 + Foundry для тестування. Foundry fork-тести критичні — тестуємо liquidation сценарії на історичних даних (крах LUNA, колапс FTX). Статичний аналіз: Slither + Halmos для символьного виконання критичних функцій.

Off-chain компоненти (funding rate розрахунок, keeper для ліквідацій) — Node.js + ethers.js з Flashbots bundle submission для пріоритетного виконання ліквідацій. Типова ліквідація займає ~2000 gas.

Фронтенд: wagmi v2 + viem + TradingView Lightweight Charts для candlestick відображення. Підтримуємо до 50 000 паралельних підключень.

Процес роботи

Етап Тривалість Опис
Аналітика та spec 1 тиждень Тип деривативів, торгові пари, модель ліквідності, оракульний стек, економіка fee
Архітектурне проектування 1 тиждень Контрактна схема, storage layout, інтерфейси, economic model simulation
Розробка ядра 4–8 тижнів Position management, margin system, liquidation engine, funding rate, оракульні інтеграції
Off-chain сервіси 2–3 тижні Keeper боти для ліквідацій, funding rate keeper, price feed агрегатор
Тестування 2 тижні Unit, fuzz, fork-тести. Симуляція стрес-сценаріїв
Зовнішній аудит 2–4 тижні Обов'язковий для деривативного протоколу з реальним TVL. Мінімум два незалежних аудитори

Що входить у розробку протоколу деривативів під ключ?

  • Розробка смарт-контрактів ядра (Solidity, Foundry)
  • Off-chain сервіси (Node.js, ethers.js)
  • Інтеграція оракулів (Pyth, Chainlink, Redstone)
  • Комплексне тестування (unit, fuzz, fork)
  • Підготовка до зовнішнього аудиту та супровід
  • Документація (архітектурна, API, deployment guide)
  • Навчання команди замовника
  • Постдеплойна підтримка протягом 3 місяців

Орієнтири за термінами

MVP vAMM з однією торговою парою — 8–10 тижнів. Повноцінний multi-market протокол з partial liquidation, insurance fund та keeper інфраструктурою — 4–6 місяців до аудиту. Постаудитні правки та деплой — ще 4–8 тижнів. Зв'яжіться з нами для оцінки вашого проєкту — ми розрахуємо терміни та вартість індивідуально. Отримайте консультацію щодо вибору моделі ліквідності та стеку розробки.

Перед деплоєм рекомендується перевірити: reentrancy guard у всіх функціях зміни маржі, тестування ліквідації при екстремальних рухах ціни (наприклад, -50% за 1 блок), коректність розрахунку funding rate при нульовому обсязі, формальну верифікацію критичних функцій (Halmos), аудит доступу в admin-функціях та stress-тестування газових лімітів при масових ліквідаціях.

Наша команда готова обговорити ваш проєкт — ми гарантуємо прозорий процес та високу якість коду, підтверджену зовнішнім аудитом.