Розробка системи ціноутворення криптоопціонів (Black-Scholes для крипто)

Розробка системи ціноутворення криптоопціонів (Black-Scholes для крипто) On-chain опціонний протокол стикається з проблемою, якої немає у традиційних деривативів: модель [Блека-Шоулза](https://en.wikipedia.org/wiki/Black%E2%80%93Scholes_model) потребує обчислень з плаваючою точкою — логарифмів, к

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1269
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    717
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1008

Розробка системи ціноутворення криптоопціонів (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.

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

  1. Математична специфікація (2-3 дні). Формалізуємо: тип опціонів, settlement механіка, джерела даних для S і σ, модель комісій, механізм hedging.
  2. Pricing library (2-3 дні). Solidity бібліотека для BSM з PRBMath. Unit-тести порівнюють результати з Python scipy.stats reference implementation.
  3. Оракул і keeper (2-3 дні). Off-chain pricing engine, підписання даних, Gelato автоматизація оновлення IV.
  4. Core контракти (3-5 днів). OptionPool (LP), OptionToken (ERC-1155), settlement логіка.
  5. Тестування (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% та прозорість архітектури.

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