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

dYdX v3 обробляв $10 млрд денного об'єму на централізованому order book з on-chain settlement. GMX v2 іде іншим шляхом: провайдери ліквідності несуть ризик через GM-пули, трейдери торгують проти пулу, оракульна ціна Chainlink Low Latency визначає PnL. Обидва підходи працюють — але ламаються по-різно

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

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

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

  • 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

dYdX v3 обробляв $10 млрд денного об'єму на централізованому order book з on-chain settlement. GMX v2 іде іншим шляхом: провайдери ліквідності несуть ризик через GM-пули, трейдери торгують проти пулу, оракульна ціна Chainlink Low Latency визначає PnL. Обидва підходи працюють — але ламаються по-різному, і вибір архітектури визначає все. Ми розробляємо протоколи перпетуальних контрактів під ключ: від специфікації до деплою та моніторингу.

Perpetuals-протокол — найбільш технічно складний тип DeFi. Funding rate, mark price, index price, open interest limits, liquidation engine, insurance fund — кожен з цих компонентів може зламатися в нестандартних ринкових умовах. Наша команда має 7+ років досвіду в DeFi та більше 30 реалізованих проєктів, включаючи 5 протоколів перпетуалів. Ми гарантуємо якість через багаторівневе тестування та аудит.

Розробка протоколу перпетуальних контрактів: з чого почати?

Першим кроком визначаємо архітектуру. Від неї залежать вимоги до оракулів, газова вартість (до 3x різниця), ризики для LP та трейдерів. Нижче розбираємо два основні патерни.

Virtual AMM (vAMM) — модель Perpetual Protocol — розробка протоколу перпетуальних

vAMM використовує формулу xy=k для визначення ціни без реального пулу ліквідності. Трейдер відкриває long на 10 ETH — віртуальний резерв ETH зменшується, USDC збільшується, ціна зростає. Проблема: при сильному дисбалансі open interest mark price розходиться з index price. Funding rate має вирівняти це, але якщо розходження занадто велике — funding rate стає економічно невигідним. Perpetual Protocol v1 зіткнувся з цим в історичному прикладі: в періоди екстремальної волатильності funding rate досягав 1000% APR, ринок переставав функціонувати.

Пул ліквідності як контрагент — модель GMX

GLP/GM пул тримає корзину активів (ETH, BTC, USDC, USDT). Трейдер, який відкриває лонг на ETH, отримує прибуток за рахунок пулу; збиток — пул забирає. Провайдер ліквідності несе directional risk: якщо трейдери в сукупності прибуткові — LP втрачає. Вразливість: оракульний арбітраж. Рішення в v2 — перехід на Chainlink Low Latency Feeds з оновленням кожні кілька секунд та keeper-архітектурою для виконання ордерів.

Що таке cumulative funding index і чому це важливо?

Funding rate розраховується за формулою: fundingRate = (markPrice - indexPrice) / indexPrice * fundingFactor. Критична деталь — як часто нараховується funding (по блоках чи по часу?), чи є caps, як обробляється накопичений funding при частковому закритті. Cumulative funding index (як у Aave) — одна глобальна змінна globalFundingIndex, що оновлюється при кожній взаємодії; позиція зберігає снапшот entryFundingIndex. Різниця — накопичений funding борг або кредит. Це O(1) по газу незалежно від кількості відкритих позицій. Помилка в цій логіці — прямі втрати для трейдерів або дірка в страховому фонді.

Деталі реалізації: приклад на Solidity

// pseudocode for funding index update function _updateFundingIndex() internal { uint256 timeDelta = block.timestamp - lastFundingTimestamp; uint256 fundingAccrued = (indexPrice - markPrice) * timeDelta / 1e18; globalFundingIndex += fundingAccrued; lastFundingTimestamp = block.timestamp; } 

Liquidation engine

Стандартна помилка — permissioned liquidation (тільки за запитом). При різкому русі ринку ліквідатори не встигають ліквідувати всі underwater позиції за один блок — протокол накопичує bad debt. Правильна архітектура: ADL (Auto-Deleveraging) як останній рубіж. Якщо страховий фонд вичерпано (типовий розмір 2–3% від TVL) — найприбутковіші позиції примусово закриваються за mark price. Це негативний досвід, але єдиний спосіб не допустити повного банкрутства пулу. dYdX v4 реалізує ADL через keeper network — боти моніторять unsafe позиції та викликають liquidation, отримуючи reward. Детальніше про Auto-Deleveraging.

Open interest limits

Без обмежень один великий гравець може зайняти позицію, що перевищує весь ліквідний пул. При ліквідації ринок не зможе виконати її без катастрофічного slippage. Ліміти per-market та per-side (окремо на лонги та шорти) обов'язкові.

Порівняння архітектур

Параметр vAMM (Perpetual Protocol) Pool-model (GMX)
Контрагент Віртуальний пул Реальний пул LP
Oracle dependency Низька (ціни за формулою) Висока (Chainlink)
Gas cost на відкриття ~80k (в 1.5 рази менше) ~120k
Liquidity fragmentation Немає Є (кожен пул окремо)
Risk for LP Немає Так (directional)

vAMM в 3 рази дешевший по газу, але не масштабується при високій концентрації open interest (наприклад, >$500 млн). Pool-model потребує складнішої оракульної інфраструктури, але дає кращі можливості для комбінування позицій.

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

Для EVM-мереж (Arbitrum, Base) — Solidity + Foundry (в 5 разів швидше Hardhat при запуску тестів). Keeper-інфраструктура: TypeScript боти на viem/ethers.js, моніторинг через Tenderly webhooks. Рекомендуємо комбінацію оракулів: Chainlink Low Latency (push-модель) та Pyth Network (pull-модель — трейдер сам надає price update, знижуючи вектор oracle front-running). Середній час між блоками на Arbitrum — 0.25 секунди, що дозволяє виконувати ліквідації протягом 2–3 блоків.

Компонент Рішення Обґрунтування
Мережа Arbitrum One / Base Низький газ, висока ліквідність
Oracle Chainlink + Pyth Різні моделі оновлення
Keeper OpenZeppelin Defender Managed execution
Субграф The Graph Історія позицій, PnL
Тести Foundry + Echidna Fuzz + property tests

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

  1. Математична специфікація (~1 тиждень). Формалізація формул funding rate, margin requirements, liquidation price, mark price. Помилка в специфікації коштує години; в продакшні — мільйони.
  2. Розробка core контрактів (~4-8 тижнів). Position manager, funding engine, liquidation engine, oracle module. Fork-тести на mainnet з реальними Chainlink feeds.
  3. Keeper інфраструктура (~2-3 тижні). TypeScript боти, моніторинг, alerting, fallback при downtime.
  4. Параметризація та симуляція (~1-2 тижні). Agent-based симуляція: віртуальні трейдери з різними стратегіями, стрес-тести волатильності ±50%. 90% ліквідацій відбуваються протягом 5 секунд після руху ціни — це критичний параметр для налаштування.
  5. Аудит. Code audit (reentrancy, overflow) + economic audit (стимули). Рекомендуємо Trail of Bits або Code4rena — фірми з сертифікатами безпеки.

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

Типові помилки при розробці перпетуалів
  • Використання permissioned liquidation замість ADL — зростання bad debt при різких рухах.
  • Відсутність caps на funding rate — при дисбалансі ринок перестає функціонувати.
  • Недостатній розмір страхового фонду (<2% від TVL) — при кількох ліквідаціях поспіль пул може збанкрутувати.
  • Oracle front-running без pull-моделі (Pyth) — трейдери можуть випереджати оновлення ціни.

Що входить в роботу

  • Архітектурна документація з діаграмами потоків
  • Повний набір смарт-контрактів з тестами (Foundry, Echidna)
  • Keeper-сервіси та deployment скрипти
  • Agent-based симуляція для калібрування параметрів
  • Інтеграція з subgraph для історії позицій
  • Розгортання в mainnet/testnet з мультисигом
  • Моніторинг та алертинг (Tenderly, Datadog)
  • Документація для DAO governance

Орієнтири по термінах

MVP з одним ринком та базовими ордерами — 2–3 місяці. Повноцінна платформа з кількома ринками, DAO governance, крос-маржею — від 4 до 6 місяців. Зовнішній аудит — додатково 4–6 тижнів. Вартість розраховується після технічного ТЗ.

Зв'яжіться з нами для обговорення вашого протоколу. Замовте консультацію з архітектури — оцінимо проєкт та запропонуємо оптимальний патерн.