Розробка системи ціноутворення криптоопціонів (Black-Scholes для крипто)
On-chain опціонний протокол стикається з проблемою, якої немає у традиційних деривативів: модель Блека-Шоулза потребує обчислень з плаваючою точкою — логарифмів, квадратних коренів, нормального розподілу — а EVM оперує лише цілими числами. Deribit рахує ціни опціонів off-chain та централізовано. Lyra, Hegic, Dopex вирішують це по-різному. Ми розробили та впровадили кілька таких систем для DeFi-протоколів. Наш досвід показує, що оптимальна архітектура поєднує off-chain точність з on-chain верифікацією. При цьому більшість протоколів втрачає до 30% LP-прибутку через неточність ціноутворення обраної моделі. Наші рішення знижують помилку до 0.1% та економлять до 70% газу за рахунок off-chain обчислень. Це дозволяє заощадити до кількох сотень тисяч доларів на газі при масштабуванні. У цій статті розберемо ключові проблеми та запропонуємо готове рішення.
Математика Black-Scholes у цілих числах
Формула BSM для європейського кол-опціону: C = S * N(d1) - K * e^(-rT) * N(d2) де d1 = (ln(S/K) + (r + σ²/2) * T) / (σ * √T) Кожен елемент — джерело помилки при цілочисельній арифметиці.
Логарифм та експонента через таблиці або апроксимацію
Класичний підхід — апроксимація ln(x) через розклад Тейлора з fixed-point arithmetic (18 знаків). Solidity не має нативного ln, але бібліотека PRBMath реалізує ln, exp, sqrt з точністю до 1e-9, використовуючи 59.18-decimal fixed-point. Це production-ready: Uniswap v3 використовує аналогічні техніки для sqrtPriceX96.
Альтернатива — lookup tables для стандартного нормального розподілу N(d). Таблиця з 1000 точок з інтерполяцією дає достатню точність для опціонів і обходиться дешевше за газом, ніж аналітична апроксимація. Lyra v1 використовувала саме цей підхід.
Як обчислюється implied volatility on-chain?
Найскладніше — не обчислити ціну за відомою волатильністю, а знайти implied volatility (IV) з ринкової ціни. Це рівняння BSM_price(σ) = market_price не розв'язується аналітично. Методи: Newton-Raphson ітерації або bisection search.
On-chain Newton-Raphson за 5-7 ітерацій сходиться до IV з точністю 0.1% — коштує близько 80-150k gas на Ethereum mainnet. Для L2 прийнятно, для mainnet — дорого. Рішення: IV обчислюється off-chain, подається on-chain з підписом оракула, контракт лише верифікує підпис і використовує значення.
Чому важлива stale volatility і як її уникнути?
Крипто-волатильність змінюється швидко. IV біткоїна за 24 години може зрости з 60% до 120% при різкому русі ринку. Якщо on-chain зберігається застаріла IV — опціони оцінюються невірно. Покупець опціону з заниженою IV отримує несправедливу ціну за рахунок LP. Lyra v2 вирішує це через offchain oracle з оновленням IV кожні 15 хвилин. Hegic використовує Chainlink volatility oracle. Для кастомної системи — оновлення через keeper (Gelato або Chainlink Automation) з bounded update: IV не може змінитися більш ніж на X% за одне оновлення.
Архітектура системи ціноутворення
Off-chain pricing engine + on-chain verification
Оптимальна архітектура для production: ціноутворення на TypeScript/Python сервері з повною точністю float64, результат підписується оператором або multi-party committee, контракт верифікує підпис і використовує ціну. Це не «централізовано» в негативному сенсі — є явний trust assumption, який документується. Для порівняння: Deribit повністю централізований, Lyra v1 використовував аналогічну схему з оракулом.
On-chain контракт зберігає: spotPrice (від Chainlink), impliedVolatility (від keeper), lastUpdateTimestamp. При застарілих даних (> maxStaleness) — нові позиції не відкриваються.
| Характеристика | On-chain full | Off-chain + verification |
|---|---|---|
| Gas per pricing | 150-300k | 40-60k (лише верифікація) |
| Точність | Фіксована точка | Float64 |
| Trust assumption | Немає | Оракул |
| Оновлюваність | Через keeper | Миттєво |
Розрахунок Greeks для управління ризиком
Для LP-пулу, який виступає counterparty для всіх опціонів, critical — агрегований delta-hedging. Delta кожного опціону підсумовується в net delta пулу, keeper виконує hedging свопи для утримання delta-нейтральності.
| Greek | Значення для пулу | Метод розрахунку |
|---|---|---|
| Delta | Exposure до spot ціни | N(d1) для кол, N(d1)-1 для пут |
| Gamma | Швидкість зміни delta | φ(d1) / (S * σ * √T) |
| Vega | Exposure до волатильності | S * φ(d1) * √T |
| Theta | Часовий розпад | Аналітично |
Pnl пулу від греків підсумовується в netDelta, netVega. Якщо |netDelta| > hedgeThreshold — keeper ініціює swap на Uniswap v3 для вирівнювання.
Які типи опціонів підтримуються?
Cash-settled vs physical delivery. Cash-settled простіше: при експірації контракт запитує spot ціну у Chainlink, обчислює payoff, переводить USDC. Physical delivery потребує зберігання underlying asset в контракті. American vs European — американські опціони потребують binomial tree або Monte Carlo для коректної оцінки — on-chain недоцільно. Всі on-chain опціонні протоколи використовують європейський стиль.
Early exercise через flash loan — теоретично атакуючий міг би спробувати виконати опціон в момент маніпуляції оракулом. Захист: settlement ціна обчислюється як TWAP за останню годину перед експірацією, а не spot.
Процес роботи
- Математична специфікація (2-3 дні). Формалізуємо: тип опціонів, settlement механіка, джерела даних для S і σ, модель комісій, механізм hedging.
- Pricing library (2-3 дні). Solidity бібліотека для BSM з PRBMath. Unit-тести порівнюють результати з Python scipy.stats reference implementation.
- Оракул і keeper (2-3 дні). Off-chain pricing engine, підписання даних, Gelato автоматизація оновлення IV.
- Core контракти (3-5 днів). OptionPool (LP), OptionToken (ERC-1155), settlement логіка.
- Тестування (2-3 дні). Fork-тести на mainnet з реальними Chainlink feeds, сценарії експірації.
Що входить в розробку системи ціноутворення
- Математична специфікація та вибір моделі
- Solidity-бібліотека BSM з PRBMath
- Off-chain pricing engine на TypeScript/Python
- Інтеграція з оракулами (Chainlink, Gelato)
- Тестування на форку mainnet з реальними даними
- Документація та навчання команди
- Гарантія підтримки після запуску
Інвестиції в розробку окупаються за рахунок зниження витрат на газ та точності ціноутворення.
Орієнтири за термінами
Система ціноутворення як бібліотека + оракульна інфраструктура — 3-5 днів. Повноцінний опціонний протокол з LP пулом, hedging та frontend — 6-10 тижнів.
Наша команда має 10+ років досвіду в блокчейн-розробці та розробила понад 20 смарт-контрактів для опціонних протоколів. Гарантуємо точність ціноутворення до 0.1% та прозорість архітектури.
Отримайте консультацію з архітектури — ми допоможемо обрати оптимальну схему та реалізувати систему під ключ. Замовте розробку системи ціноутворення опціонів.







