Разработка системы опционных хранилищ (DOV — DeFi Options Vault)
Ribbon Finance запустила первый популярный DOV в 2021 году: пользователь депонирует ETH, vault автоматически продаёт покрытые колл-опционы (covered calls) на еженедельной основе, премия идёт депозиторам. В пиковый момент Ribbon TVL превышал $300M. Механика простая, доходность реальная — опционная премия не зависит от рыночного направления, только от волатильности. Но под капотом — серьёзная инженерная задача: vault должен координировать strike selection, взаимодействовать с опционным протоколом, управлять сроками экспирации и обрабатывать edge cases при экспирации ITM.
Как работает DOV изнутри
Жизненный цикл раунда
Каждый раунд — неделя (или другой период). Упрощённо:
- Депозиты — пользователи вносят ETH/WBTC/USDC в vault. Депозиты принимаются только между раундами.
- Strike selection — vault вычисляет strike price для опционов. Обычно OTM (out-of-the-money) на 10-20% выше спота для covered calls.
- Mint и продажа опционов — vault минтит opToken через опционный протокол (Opyn, Lyra, Dopex) и продаёт на аукционе (Paradigm, Gnosis Auction) или через AMM.
- Экспирация — если опцион истекает OTM, vault получает полную премию. Если ITM — часть collateral идёт покупателю опциона (settled in collateral).
- Reinvest — оставшийся collateral + премия = база следующего раунда.
Ключевые риски для депозитора: при сильном росте актива covered call "срезает" upside — vault отдаёт часть collateral. Это честный trade-off: стабильная доходность в боковике против ограниченного участия в ралли.
Strike selection: где начинаются нюансы
Наивный strike selection — фиксированный процент от спота (spot * 1.10 для 10% OTM). Проблема: у рынка нет памяти о предыдущих страйках, и при высокой IV (implied volatility) 10% OTM опцион может быть near-the-money по риску.
Продвинутый подход — delta-based strike selection: выбираем strike с delta ~0.1-0.2 (10-20% вероятность экспирации ITM по модели Black-Scholes). Для расчёта нужна IV — берём из on-chain источников (Lyra market IV, Volmex IV index) или через Chainlink. Реализуем приближённый расчёт delta on-chain через Taylor expansion — точный BS-расчёт в Solidity газово неэффективен.
Опционные протоколы: выбор backend
| Протокол | Чейн | Тип сеттлмента | Особенности |
|---|---|---|---|
| Opyn (GammaProtocol) | Ethereum | Physical / Cash | Наиболее зрелый, широкий аудит |
| Lyra | Optimism, Arbitrum | Cash | AMM для опционов, on-chain IV |
| Dopex | Arbitrum | Cash | Одиночные стейкинг-пулы, SSOV |
| Premia | Ethereum, Arbitrum | Physical | Orderbook + AMM hybrid |
Ribbon работает поверх Opyn. Для нового DOV выбор backend зависит от: целевого чейна, нужного типа сеттлмента (physical delivery сложнее для vault логики), глубины ликвидности для продажи опционов.
Продажа опционов: аукцион vs AMM
Vault минтит batch опционов и должен продать их по максимальной цене. Два варианта:
Gnosis Auction — Dutch или batch аукцион. Vault создаёт аукцион, покупатели подают заявки, через N часов клиринг по единой цене. Прозрачно и честно, но требует ждать завершения аукциона — деплой капитала задерживается.
Paradigm OTC — institutonal market makers делают quotes off-chain, vault принимает лучшее предложение. Быстрее, лучше ценообразование для крупных объёмов, но требует доверия к маркет-мейкерам (белый список адресов в контракте).
Premia AMM / Lyra AMM — продажа непосредственно в AMM пула. Мгновенно, но price impact при большом объёме.
Реализуем абстракцию IAuctionMechanism — vault не зависит от конкретного механизма продажи, можно переключать через governance.
Архитектура vault контракта
Базовая структура — ERC-4626 (Tokenized Vault Standard). Депозиторы получают shares (ERC-20 токены), представляющие долю в vault. ERC-4626 стандартизирует deposit(), withdraw(), mint(), redeem() — интеграция с агрегаторами (Yearn, Beefy) из коробки.
Поверх ERC-4626 добавляем:
-
RoundManager— управление фазами (deposit, strike selection, auction, settlement) -
StrikeSelector— on-chain или off-chain (с подписью keeper) расчёт strike -
AuctionAdapter— абстракция над opchain аукционом -
SettlementHandler— обработка экспирации, расчёт P&L раунда
Временны́е ограничения через block.timestamp с минимальными интервалами (минимум 6 дней до экспирации, минимум 1 час для аукциона). vm.warp в Foundry тестах для симуляции полного lifecycle раунда.
Обработка ITM экспирации
Самый нетривиальный случай: опцион экспирируется ITM, vault должен отдать часть collateral. В physical settlement vault получает strike token (USDC) вместо части ETH. Следующий раунд начинается с смешанным collateral — нужно либо конвертировать USDC обратно в ETH через Uniswap (slippage, MEV), либо поддерживать mixed-collateral vault.
Ribbon решил это через USDC-denominated vault для covered puts — collateral уже USDC, ITM экспирация не меняет состав. Для covered calls на volatile assets смешанный collateral остаётся проблемой — решаем через конвертацию с TWAP protection.
Ориентиры по срокам
Базовый DOV с одной стратегией (covered call) поверх Opyn — 2-3 недели. С delta-based strike selection, несколькими стратегиями (covered call + cash-secured put) и multi-asset support — 4-6 недель. Кастомный options protocol backend вместо готового — отдельный scope, ещё 4-8 недель. Аудит перед mainnet обязателен — опционные vault управляют заблокированным капиталом пользователей.







