Розробка системи опціонного хранилища (DOV — DeFi Options Vault)
Ribbon Finance запустила перший популярний DOV у 2021 році: користувач депонує ETH, хранилище автоматично продає покриті call опціони (covered calls) на щотижневій основі, премія йде депозиторам. У пиковий момент TVL Ribbon перевищував $300M. Механіка проста, yield реальна — опціонна премія не залежить від напрямку ринку, тільки від волатильності. Але під капотом — серйозна інженерна задача: хранилище повинно координувати вибір страйку, взаємодіяти з опціонним протоколом, управляти датами закінчення та обробляти edge cases при ITM закінченні.
Як функціонує DOV всередині
Життєвий цикл раунду
Кожен раунд — тиждень (або інший період). Спрощено:
- Депозити — користувачі вносять ETH/WBTC/USDC в хранилище. Депозити приймаються тільки між раундами.
- Вибір страйку — хранилище розраховує ціну страйку для опціонів. Зазвичай OTM (out-of-the-money) на 10-20% вище спота для covered calls.
- Mint та продаж опціонів — хранилище мінтить opToken через опціонний протокол (Opyn, Lyra, Dopex) та продає на аукціоні (Paradigm, Gnosis Auction) або через AMM.
- Закінчення — якщо опцион закінчується OTM, хранилище отримує повну премію. Якщо ITM — частину забезпечення йде покупцю опціону (settled in collateral).
- Реінвестування — залишкове забезпечення + премія = база для наступного раунду.
Ключові ризики депозиторів: при сильному зростанні активу covered call «обрізає» upside — хранилище відмовляється від частини забезпечення. Це чесний trade-off: стабільна доходність у бічних ринках проти обмеженої участі в ралі.
Вибір страйку: де починаються нюанси
Наївний вибір страйку — фіксований відсоток від спота (spot * 1.10 для 10% OTM). Проблема: ринок не має пам'яті про попередні страйки, і при високій IV (передбачуваній волатильності) 10% OTM опцион може бути near-the-money за ризиком.
Передовий підхід — вибір страйку на основі дельти: вибираємо страйк з дельтою ~0.1-0.2 (10-20% ймовірність ITM закінчення за моделю Black-Scholes). Для розрахунку потрібна IV — беремо з on-chain джерел (Lyra market IV, Volmex IV index) або Chainlink. Реалізуємо наближений розрахунок дельти on-chain через розкладення Тейлора — точний BS розрахунок у Solidity газово неефективний.
Опціонні протоколи: вибір бекенду
| Протокол | Чейн | Тип розрахунку | Особливості |
|---|---|---|---|
| Opyn (GammaProtocol) | Ethereum | Фізичний / Готівка | Найбільш зрілий, широкий аудит |
| Lyra | Optimism, Arbitrum | Готівка | AMM для опціонів, on-chain IV |
| Dopex | Arbitrum | Готівка | Одиночні пули стейкінгу, SSOV |
| Premia | Ethereum, Arbitrum | Фізичний | Orderbook + AMM гібрид |
Ribbon працює поверх Opyn. Для нового DOV вибір бекенду залежить від: цільового чейну, типу розрахунку (фізична доставка складніша для логіки хранилища), глибини ліквідності опціонів.
Продаж опціонів: аукціон проти AMM
Хранилище мінтить batch опціонів і повинно продати по максимальній ціні. Два варіанти:
Gnosis Auction — Dutch або batch аукціон. Хранилище створює аукціон, покупці подають заявки, через N годин clearing по єдиній ціні. Прозоро й чесно, але потребує очікування завершення аукціону — деплой капіталу затримується.
Paradigm OTC — інституціональні маркет-мейкери робляться quotes off-chain, хранилище приймає найкращу пропозицію. Швидше, краще ціноутворення для великих обсягів, але потребує довіри до маркет-мейкерів (whitelist в контракті).
Premia AMM / Lyra AMM — продаж прямо в пул AMM. Миттєво, але price impact на великих обсягах.
Реалізуємо абстракцію IAuctionMechanism — хранилище не залежить від конкретного механізму продажу, можна переключатися через governance.
Архітектура контракту хранилища
Базова структура — ERC-4626 (Tokenized Vault Standard). Депозитори отримують shares (ERC-20 токени), які представляють долю в хранилищі. ERC-4626 стандартизує deposit(), withdraw(), mint(), redeem() — інтеграція з агрегаторами (Yearn, Beefy) з коробки.
Поверх ERC-4626 додаємо:
-
RoundManager— управління фазами (депозит, вибір страйку, аукціон, розрахунок) -
StrikeSelector— on-chain або off-chain (з підписом keeper) розрахунок страйку -
AuctionAdapter— абстракція над on-chain аукціоном -
SettlementHandler— обробка закінчення, розрахунок P&L раунду
Часові обмеження через block.timestamp з мінімальними інтервалами (мінімум 6 днів до закінчення, мінімум 1 година для аукціону). vm.warp у тестах Foundry для симуляції повного lifecycle раунду.
Обробка ITM закінчення
Найбільш нетривіальний випадок: опцион закінчується ITM, хранилище повинно відмовитися від частини забезпечення. При фізичному розрахунку хранилище отримує strike токен (USDC) замість частини ETH. Наступний раунд починається зі змішаним забезпеченням — або конвертувати USDC назад у ETH через Uniswap (slippage, MEV), або підтримувати змішане забезпечення.
Ribbon вирішив це через USDC-denominated хранилище для covered puts — забезпечення вже USDC, ITM закінчення не змінює склад. Для covered calls на волатильних активах змішане забезпечення залишається проблемою — розв'язуємо через конвертацію з TWAP захистом.
Ориєнтири по термінах
Базовий DOV з однією стратегією (covered call) поверх Opyn — 2-3 тижні. З вибором страйку на основі дельти, кількома стратегіями (covered call + cash-secured put) та мультиактивною підтримкою — 4-6 тижнів. Кастомний бекенд опціонного протоколу замість існуючого — окремий scope, ще 4-8 тижнів. Аудит перед mainnet обов'язковий — опціонне хранилище управляє заблокованим капіталом користувачів.







