Разработка overcollateralized стейблкоина с обеспечением
Мы взялись за проект, где протокол привлёк $40M TVL за три месяца. На четвёртый месяц ETH упал на 35% за 4 часа — быстрее, чем liquidation bot успел обработать очередь. Несколько позиций с collateral ratio 150% стали undercollateralized раньше, чем их ликвидировали. Протокол напечатал необеспеченные стейблкоины. Именно так работает системный риск в overcollateralized stablecoin — не через взлом контракта, а через архитектурный просчёт в механике ликвидаций. Наш опыт разработки таких систем позволяет избежать этих ошибок.
Как работает система ликвидаций overcollateralized стейблкоина?
Самое сложное в CDP-протоколе — не сам mint/burn, а система ликвидаций под нагрузкой. Классическая схема: если collateralRatio < liquidationThreshold, позицию можно ликвидировать. Проблема начинается, когда Chainlink price feed обновляется раз в heartbeat (обычно 1 час или при отклонении >0.5%), а цена актива падает быстрее.
При flash crash ETH -20% за 30 минут несколько вещей происходят одновременно: on-chain цена от Chainlink ещё не обновилась, реальная цена уже на 18% ниже oracle price, liquidation bots видят позиции как здоровые по on-chain данным, а к моменту обновления оракула очередь ликвидаций становится огромной. Gas войны между ботами заставляют платить 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. Если пуст — происходит redistribution между всеми vault holders, что может запустить каскадную цепную реакцию. В нашей реализации используется Insurance Fund, формируемый из части liquidation penalty (10-13%). При bad debt он покрывает первые потери, не перенося риск на держателей governance токена. Экономия на газе при использовании Dutch auction достигает 30-50%.
Проблема прайс-манипуляции через flash loan
Классический вектор: взять flash loan, задепить как collateral, отминтить stablecoin по завышенной цене (если оракул использует spot price из DEX), вывести стейблкоин. TWAP закрывает это — манипуляция spot price влияет на TWAP только при длительном удержании. Для новых токенов с малой ликвидностью необходим whitelist с порогом ликвидности от $50M+.
Почему fork-тестирование критично для стейблкоинов?
Ни один unit-тест не заменит fork-тест на реальных исторических данных. Мы тестируем протокол на сценариях: Black Thursday (ETH -55% за 24h) — проверка очереди ликвидаций при нулевой ликвидности в Stability Pool; LUNA/UST депег — симуляция быстрого падения collateral с ростом sell pressure на stablecoin; gas spike до 3000 gwei — проверка экономической выгоды ликвидаций. Foundry vm.createFork + vm.rollFork позволяет воспроизвести точное состояние mainnet в любой момент истории.
Пошаговая разработка CDP-протокола
- Проектирование архитектуры. Определяем storage layout, интерфейсы модулей, схему событий для The Graph.
- Написание контрактов. Solidity 0.8.x с акцентом на gas optimization и безопасность.
- Комплексное тестирование. Unit, integration, fork-тесты на исторических сценариях, fuzz-тесты через Echidna с property-based проверками инвариантов.
- Внешний аудит. Обязательный этап для CDP-протоколов с TVL > $1M.
- Деплой и управление. Мультисиг через Gnosis Safe, timelock на критические параметры.
Как мы строим overcollateralized stablecoin
Контрактная архитектура
Разделяем систему на независимые модули:
| Модуль | Ответственность | Апгрейдаемость |
|---|---|---|
VaultManager |
Открытие/закрытие позиций, collateral учёт | UUPS |
PriceOracle |
Агрегация Chainlink + TWAP, circuit breaker | Replaceable |
LiquidationEngine |
Очередь ликвидаций, dutch auction | UUPS |
StabilityPool |
Буфер для покрытия ликвидаций | Immutable |
StablecoinToken |
ERC-20 с mint/burn только от VaultManager | Immutable |
StablecoinToken immutable намеренно — держатели не должны зависеть от governance в изменении логики токена.
Dutch auction для ликвидаций
Вместо фиксированной penalty используем аукцион: discount начинается с 0% и увеличивается каждый блок, пока кто-то не возьмёт позицию. Конкуренция переходит в «кто быстрее примет выгодную цену», а протокол не переплачивает ликвидаторам. Если аукцион длится дольше maxAuctionDuration без покупателя — позиция переходит в redistribution.
Параметры системы и governance
Ключевые параметры для контроля:
| Параметр | Рекомендация | Описание |
|---|---|---|
| minimumCollateralRatio | 150% | Минимальный уровень обеспечения |
| liquidationPenalty | 10% | Штраф при ликвидации |
| borrowingFee | 0.5-1% | Комиссия за mint |
| stabilityFee | 0-5% годовых | Процент за использование (опционально) |
Подробный чек-лист параметров
Для новых протоколов рекомендуем консервативные настройки: MCR 150%, penalty 10%, borrowingFee 1%. После накопления on-chain истории параметры можно снижать через governance с timelock.
Что входит в работу
Мы предлагаем под ключ разработку overcollateralized стейблкоина: проектирование архитектуры, написание контрактов, тестирование, аудит от партнёров (Trail of Bits, Sherlock), документацию, настройку мультисига и timelock, обучение команды. Наш опыт — 5+ лет в DeFi, 10+ реализованных проектов с TVL до $100M.
Процесс разработки
Аналитика (3-5 дней). Определяем whitelist активов, параметры системы, механику ликвидаций. Анализируем конкурентов: Liquity, Gravita, Raft, Prisma.
Проектирование (5-7 дней). Storage layout, интерфейсы модулей, схема событий для The Graph индексации.
Разработка (4-8 недель). Контракты + comprehensive тесты: unit, integration, fork-тесты на исторических сценариях, fuzz-тесты через Echidna.
Внешний аудит (обязателен). Минимум один внешний аудит для CDP-протоколов с TVL потенциалом > $1M.
Деплой. Мультисиг через Gnosis Safe, timelock на изменение ключевых параметров (минимум 24-48 часов).
Ориентиры по срокам
Минимальная реализация (один тип collateral, базовая ликвидация) — 6-8 недель разработки. Полноценный протокол с несколькими collateral, Dutch auction, Stability Pool и governance — 2-4 месяца включая аудит. Стоимость рассчитывается индивидуально. Получите консультацию по вашему проекту — мы поможем выбрать оптимальные параметры. Оставьте заявку — мы поможем вам создать надёжный и безопасный стейблкоин.







