Розробка стейблкоїна із забезпеченням

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка стейблкоїна із забезпеченням
Складний
від 2 тижнів до 3 місяців
Часті запитання

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

Етапи блокчейн-розробки

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

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

Розроблення стейблкоїна з обеспеченням

Протокол привлік $40M TVL за три місяці. На четвертий місяць ETH упав на 35% за 4 години — швидше, ніж liquidation bot встиг обробити чергу. Кілька позицій з collateral ratio 150% стали undercollateralized раніше, ніж їх ліквідували. Протокол напечатав необеспечені стейблкоїни. Саме так працює системний ризик в overcollateralized stablecoin — не через взлом контракту, а через архітектурний просчіт в механіці ліквідацій.

Архітектура обеспечення: де приховані справжні проблеми

Механіка ліквідацій та проблема «oracle lag»

Найскладніше в collateralized stablecoin — не сам mint/burn, а система ліквідацій під навантаженням. Класична схема: якщо collateralRatio < liquidationThreshold, позицію можна ліквідувати. Проблема починається, коли Chainlink price feed оновлюється на heartbeat (зазвичай 1 година або при відхиленні >0.5%), а ціна активу падає швидше.

При flash crash ETH -20% за 30 хвилин кілька речей відбувається одночасно:

  • on-chain ціна від Chainlink ще не оновилась (останнє оновлення 25 хвилин тому)
  • реальна ціна вже на 18% нижче oracle price
  • liquidation боти бачать позиції як «здорові» по on-chain даним
  • до моменту оновлення оракулу черга ліквідацій стає величезною
  • gas войни між ботами → liquidators платять 200-500 gwei → частина позицій просто не встигають

Рішення — двошарова перевірка: основний Chainlink feed + Uniswap V3 TWAP як sanity check. Якщо розрив перевищує 5%, протокол входить у «emergency mode» з обмеженнями на новий mint. Це те, що MakerDAO реалізував через OSM (Oracle Security Module) з затримкою 1 година — не ідеальне рішення, але дає час на реакцію governance.

Bad debt та механізм покриття

У Liquity v1 при ліквідації борг покривається з Stability Pool. Якщо пул пуст, борг розподіляється між усіма vault holders через «redistribution». Це елегантно, але створює приховуваний ризик: при масових ліквідаціях redistribution розмиває collateral ratio здорових позицій, потенційно запускаючи каскад.

У нашій реалізації ми використовуємо страховий резерв (Insurance Fund), формований з частини liquidation penalty (зазвичай 10-13%). При нормальній роботі він накопичується. При bad debt события — покриває перші потері перед тим, як ризик переносится на holders токенів governance.

Проблема price-маніпуляції через flash loan

Класичний вектор: взяти flash loan на велику суму, задепити як collateral, отминтити stablecoin за завищеною ціною (якщо оракул використовує spot price з DEX пулу), вивести stablecoin. TWAP (Time-Weighted Average Price) закриває це — маніпуляція spot price впливає на TWAP лише при тривалому утриманні, що робить атаку дорогою.

Для нових токенів з низькою ліквідністю TWAP теж ненадійний. Тому whitelist collateral активів з мінімальним порогом ліквідності ($50M+) — не обмеження протоколу, а захисний механізм.

Як ми будуємо overcollateralized stablecoin

Архітектура контракту

Розділяємо систему на незалежні модулі:

Модуль Відповідальність Upgradeability
VaultManager Відкриття/закриття позицій, облік collateral UUPS
PriceOracle Агрегація Chainlink + TWAP, circuit breaker Replaceable
LiquidationEngine Черга ліквідацій, dutch auction UUPS
StabilityPool Буфер для покриття ліквідацій Immutable
StablecoinToken ERC-20 з mint/burn лише від VaultManager Immutable

StablecoinToken — immutable навмисно. Holders стейблкоїну не повинні залежати від того, що governance проголосує за зміну логіки самого токена.

Dutch auction для ліквідацій

Замість фіксованої liquidation penalty використовуємо Dutch auction: liquidation discount починається з 0% та зростає кожні N блоків, поки хтось не возьме позицію. Вирішує дві проблеми:

  1. Конкуренція між liquidation botами переходить з газ-войн в «хто швидше прийме вигідну ціну»
  2. Протокол не переплачує ліквідаторам при нормальних умовах

Liquity v2 та Gravita використовують схожий підхід. Ми додаємо обмеження: якщо аукціон іде довше maxAuctionDuration блоків без покупця — позиція переходить в redistribution, щоб уникнути завислих плохих долгів.

Параметри системи та governance

Ключові параметри, які governance повинен контролювати:

  • minimumCollateralRatio — зазвичай 110-150% залежно від волатильності активу
  • liquidationPenalty — 5-15%, повинна бути достатньою для мотивації botів
  • borrowingFee — одноразова комісія при mint, регулює спрос
  • stabilityFee (опціонально) — безперервна ставка, як interest rate у MakerDAO

Для нових протоколів рекомендуємо починати з консервативних параметрів (MCR 150%, penalty 10%) та знижувати по мірі накопичення on-chain історії.

Тестування: fork-тести на сценаріях краху

Ні один unit-тест не замінить fork-тест на реальних історичних даних. Тестуємо протокол на кількох сценаріях:

Black Thursday 2020 (ETH -55% за 24h): перевіряємо, що черга ліквідацій обробляється коректно при нульовій ліквідності Stability Pool.

LUNA/UST депег 2022: моделюємо швидке падіння collateral активу з одночасним ростом sell pressure на сам stablecoin. Перевіряємо circuit breaker в оракулі.

Gas spike до 3000 gwei: перевіряємо, що ліквідації економічно вигідні навіть при екстремальному газу. Якщо ні — розміри позицій або penalty потрібно переглядати.

Foundry vm.createFork + vm.rollFork дозволяє відтворити точний стан mainnet в будь-який момент історії. Це стандарт для нашого тестування CDP-протоколів.

Процес розроблення

Аналітика (3-5 днів). Визначаємо whitelist активів, параметри системи, механіку ліквідацій. Аналізуємо конкурентів: Liquity, Gravita, Raft, Prisma.

Проектування (5-7 днів). Storage layout, інтерфейси модулів, схема eventi для The Graph індексації.

Розроблення (4-8 тижнів). Контракти + comprehensive тести: unit, integration, fork-тести на історичних сценаріях, fuzz-тести через Echidna з property-based перевірками інвариантів системи.

Зовнішній аудит (обов'язковий). Для CDP-протоколів з потенціалом TVL >$1M — мінімум один зовнішній аудит від спеціалізованої компанії (Trail of Bits, Sherlock, Code4rena contest). Бюджет та час закладаємо в roadmap заранее.

Деплой. Мультисиг через Gnosis Safe на всі адміністративні функції. Timelock на зміну ключових параметрів (мінімум 24-48 годин).

Орієнтири по строкам

Мінімальна реалізація (один тип collateral, базова ліквідація) — 6-8 тижнів розроблення. Повноцінний протокол з кількома типами collateral, Dutch auction ліквідаціями, Stability Pool та governance — 2-4 місяці включаючи аудит. Строки істотно залежать від складності параметризації та вимог до тестового покриття.

Вартість розраховується індивідуально після аналізу вимог.