Розроблення principal-protected vault
Ідея проста: користувач вносить $10,000 і в будь-якому випадку отримує назад мінімум $10,000. Доходність — тільки зверху, втрати — ні. На практиці механіка потребує точного розрахунку: частина капіталу повинна бути вкладена у безрисковий інструмент, який гарантовано виросте до номіналу до терміну дозрівання, а решта йде у рисковану стратегію. Помилка у розрахунку — і vault не може виплатити principal при певних сценаріях. Це не теоретичний ризик: продукти з «гарантією» втратили кошти, коли логіка smart contract не відповідала економічній моделі.
Економіка захисту: звідки береться захист
Zero-coupon bond механіка
Класична модель: розділити депозит на дві частини.
Якщо поточна дохідність по безрисковому активу становить 5% років (наприклад, Aave USDC supply rate), то для повернення $10,000 через 1 рік потрібно вкласти $9,524 сьогодні. Решта $476 ($10,000 - $9,524) йдуть у рисковану стратегію — опціони, yield farming з leverage, структурований продукт.
У DeFi "безрисковий" — це умовність. Aave несе смарт-контракт ризик, USDC несе custodial ризик. Тому реальні системи використовують стресовий сценарій: «що якщо дохідність упадає вдвічі». При Aave rate 5% → 2.5% потребуватиме $9,756 у безрисковій частині, тільки $244 у рисковій. Це важливо враховувати при виборі терміну vault та цільової дохідності.
Aave USDC як zero-coupon еквівалент
У смарт-контракті це реалізується через aToken (interest-bearing token Aave). При депозиті vault розділяє суму:
uint256 protectedAmount = calculateProtectedAmount(depositAmount, currentAaveRate, maturityPeriod);
uint256 yieldAmount = depositAmount - protectedAmount;
// Депозит захищеної частини у Aave
aavePool.supply(USDC, protectedAmount, address(this), 0);
// Депозит рискової частини у стратегію
strategy.invest(yieldAmount);
calculateProtectedAmount — ключова функція. Використовує Chainlink Price Feed для поточного Aave supply rate, розраховує дисконт за формулою PV = FV / (1 + r)^t.
Ризик: якщо Aave rate упадає з моменту депозиту, aToken може не виросту до номіналу до терміну дозрівання. Два варіанти захисту:
- Консервативний розрахунок (використовуємо 50% від поточного rate)
- Rate floor через Aave governance snapshot + off-chain мониторинг
Liquidation floor через опціони
Альтернативна механіка: покупка put option на суму депозиту на момент maturity. Якщо Opyn, Lyra або Hegic надають USDC put з потрібним страйком — vault купує protection напрямку. Вартість put = premium = reducedYield. Рискова частина інвестується повністю.
Проблема: on-chain опційна ліквідність для великих сум (>$500K) на DeFi обмежена. Для інституціональних продуктів — кастомні OTC структури через Ribbon Finance або Friktion (Solana).
Архітектура контракту
Share-based accounting з maturity
Vault видає ERC-20 share-токени при депозиті. Share ціна зростає зі накопленою дохідністю рискової стратегії. При maturity відкривається redemption window — користувачі спалюють shares та отримують max(depositAmount, currentShareValue).
function redeem(uint256 shares) external onlyAfterMaturity {
uint256 assetsFromShares = convertToAssets(shares);
uint256 protectedAssets = getProtectedAmountForShares(shares);
uint256 payout = Math.max(assetsFromShares, protectedAssets);
_burn(msg.sender, shares);
USDC.transfer(msg.sender, payout);
}
getProtectedAmountForShares розраховує накопленну aToken вартість для долі shares відносно total supply.
Early exit механіка
Ранній виход до maturity — стандартне вимога. Але при early exit захист не працює: aToken ще не досягнув номіналу. Варіанти:
- Заборона early exit (жорсткий lockup)
- Вторинний ринок shares (AMM пул або orderbook)
- Early exit з penalty: користувач отримує поточну NAV без protection гарантії
Другий варіант технічно складніший (потрібен AMM для share токена), але краще для UX. Yearn-style vault з vToken + Curve пулом для secondary market — робочої схеми.
Оракули та manipulation resistance
NAV vault залежить від поточної вартості рисковій стратегії. Якщо стратегія використовує Uniswap v3 LP позицію — NAV включає LP вартість, яка залежить від spot ціни. Flash loan атака на spot ціну може тимчасово спотворити NAV та дозволити арбітраж через early exit/redemption.
Захист: використовувати Chainlink price feed для розрахунку NAV, не spot Uniswap. Cooldown 24 години між депозитом та redemption (ERC-4626 extension). Circuit breaker при аномальній зміні NAV >10% за блок.
Процес роботи
Економічне моделювання (1 тиждень). Параметри: тривалість vault, цільовий APY, вибір безрисковій стратегії, вибір рисковой стратегії. Stress-тесты: що при Aave rate = 0%, при 50% падінні рисковой частини.
Проектування контрактів (3-5 днів). Storage layout, інтерфейс з зовнішніми протоколами (Aave v3, Chainlink), maturity логіка, redemption механіка.
Розроблення (3-5 тижнів). Vault core + інтеграції + тесты. Fork-тесты на Ethereum mainnet для Aave інтеграції. Fuzz-тесты на всі redemption сценарії.
Аудит (зовнішній). Для protected продуктів аудит обов'язковий — користувачі довіряють системе гарантію. Підготовка: NatSpec, тест-покриття >95%, документація економічної моделі.
Деплой. Timelock мінімум 48 годин на будь-які parameter changes. Gnosis Safe для admin.
Орієнтири за часом
Базовий vault з Aave protection + однієї рисковой стратегією: 6-8 тижнів. Система з кількома стратегіями, вторинним ринком shares та early exit механікою: 2-3 місяці.







