Розробка structured products на блокчейні
Структуровані продукти — фінансові інструменти з заздалегідь визначеним профілем ризик/дохідність. У TradFi це нота з захистом капіталу, прив'язана до індексу, або autocallable з бар'єром. На блокчейні та ж механіка реалізується через смарт-контракти, що додає programmable payouts, прозорість та composability — але й принципово нові технічні ризики.
Протокол Ribbon Finance (vault-style структуровані продукти на основі опцій) став зразком того, як це робиться правильно: вся механіка on-chain, settlement через Opyn oTokens, ризики явно описані в коді. При цьому навіть Ribbon стикалась з проблемами ціноутворення та ліквідності при екстремальної волатильності.
Механіка структурованих продуктів на блокчейні
Principal protection через on-chain bond mechanics
Класичний structured product: 90% капіталу йде в "безрисковий" інструмент (захист принципалу), 10% — в опцион на upside. На блокчейні безрискового активу немає, але є наближення:
- Lending в Aave/Compound по ставці 4-8% APY в USDC
- Liquidity provision у Curve стейблкоїн-пулах (1-3% APY)
- Tokenized treasury bills (USDY від Ondo, BUIDL від BlackRock) на підтримуваних чейнах
Контракт обчислює split при депозиті: скільки потрібно вкласти в yield-інструмент зараз, щоб до maturity мати 100% від initial deposit. Залишок йде в опціонну стратегію.
Математика: для 12-місячного продукту при Aave yield 6% principal portion = deposit / 1.06. При депозиті $10,000 — $9,434 в Aave, $566 на опціонну складову.
Проблема: yield rate в Aave не фіксований. За 12 місяців він може впасти до 1%, і контракт не зберуть достатньо для захисту принципалу. Рішення — або зафіксувати yield через interest rate swap (є on-chain через Pendle), або консервативна оцінка з буфером.
Payoff структури та їх реалізація у Solidity
Capital protected note — найпростіший випадок:
payoff = max(principal, principal + principal * max(0, assetReturn - strike))
Barrier product — складніше:
якщо ціна НЕ торкається barrier за весь час → payoff = principal + coupon
якщо ціна торкається barrier → payoff = principal * (finalPrice / initialPrice)
On-chain continuous barrier monitoring неможливий без оракула з високою частотою оновлень. Chainlink оновлює ціну щомісяця 0.5% відхилення або раз на годину — це не continuous. Рішення: discrete barriers (перевірка раз на день/тиждень за снапшотом оракула) або European knock-in/knock-out (перевірка тільки в expiry).
Autocallable — найскладніший:
- Кожен період (місяць/квартал) перевіряється умова autocall
- Якщо виконано — продукт гасується достроково з coupon
- Якщо ні — продовжується
Для on-chain реалізації потрібен keeper (Chainlink Automation або Gelato) для автоматичної перевірки умов у кожну observation date. Missed observation = неправильна поведінка продукту.
Settlement та інтеграція з дериватами
Для опціонної складової: Opyn oToken стандарт (ERC-20 токен, що представляє право на виплату при strike), Lyra positions, або власні контракти.
Основний ризик — counterparty ризик при settlement. Якщо опціонний протокол взлом у момент, коли ваш structured product тримає в ньому значну позицію — принципал під загрозою. Диверсифікація між кількома опціонними протоколами або використання тільки battle-tested рішень знижує цей ризик.
Токенізація та управління lifecycle
ERC-1155 для структурних нот
Кожен випуск (серія) продукту — окремий token ID у ERC-1155. Це дозволяє:
- Торгувати на secondary market
- Використовувати як collateral в інших DeFi-протоколах
- Відслідковувати історичні випуски в одному контракті
tokenId кодує параметри випуску: series | strike | maturity. При mint фіксується snapshot ціни underlying через оракул — це initial price для розрахунку return.
Vault architecture
За образцем Ribbon Finance — кожен продукт це vault:
StructuredProductFactory
└── ProductVault (per series)
├── DepositModule
├── StrategyModule (yield + options)
├── SettlementModule
└── WithdrawModule
Funds lock period — критичний параметр. На час дії продукту кошти заблоковані у контракті. Emergency exit механізм через multisig з timelock — для крайніх випадків (взлом underlying protocol).
Ціноутворення та NAV
NAV (Net Asset Value) для структурного продукту складається з:
- Поточна вартість yield позиції (Aave aToken по current rate)
- Поточна вартість опціонної позиції (Black-Scholes mark-to-market)
- Мінус накопичені збори
On-chain NAV розрахунок з Black-Scholes вимагає fixed-point арифметики та актуальної волатильності з оракула. Альтернатива — off-chain NAV розрахунок з on-chain верифікацією через Merkle proof (як це робить Backed Finance для токенізованих цінних паперів).
Regulatory considerations
Структуровані продукти у більшості юрисдикцій — регульовані фінансові інструменти. On-chain реалізація не змінює правовий статус продукту. Проект повинен мати юридичне думку до запуску публічного продукту. Технічно це не наша задача — але важливо обозначити клієнту на старті.
Процес розробки
Фінансове проектування (1 тиждень). Математика payoff, stress-тестування у Python (Monte Carlo симуляція для різних сценаріїв). Переконуємось, що principal protection працює при realistically bad scenarios.
Архітектура контрактів (3-5 днів). Vault структура, інтеграції з yield та опціонними протоколами, keeper механіка.
Розробка (4-6 тижнів). Foundry + тести на всі payoff сценарії. Fork-тесті з реальними інтеграціями Aave, Chainlink.
Аудит (4-8 тижнів). Фінансові контракти вимагають ретельного аудиту. Особлива увага — settlement математика та oracle dependencies.
Орієнтири за часовими рамками
Простий capital protected vault (yield + covered call) — 6-8 тижнів розробки. Мультисерійний продукт з autocallable механікою та secondary market торгівлею — 2-3 місяці. Інтеграції з кількома yield та деривативними протоколами збільшують терміни та обсяг аудиту.







