Инцидент Black Thursday в MakerDAO показал: даже топовый протокол может потерять миллионы из-за архитектурной ошибки в системе ликвидаций. Английский аукцион (ставки растут) требовал ожидания 6 часов и был уязвим для gas wars. В ответ MakerDAO внедрил голландский аукцион (Clip) — цена стартует выше рыночной и экспоненциально снижается, любой может купить залог в любой момент. Наша команда с 10+ лет опыта в DeFi предлагает разработку под ключ: от проектирования параметров до деплоя и мониторинга. При газе 300k units и 50 gwei стоимость одной ликвидации составляет 0.015 ETH, а правильная калибровка incentive может сэкономить до 0.01 ETH на ликвидацию. Для протокола с долговым лимитом $10M тонкая настройка параметров экономит до $5000 в месяц на bad debt и gas.
Как работает голландский аукцион в системе ликвидаций CDP?
Collateralization Ratio и момент триггера
CDP — позиция с залогом и долгом в синтетическом активе. Позиция ликвидируема, когда:
CR = (collateral_value / debt_value) < liquidation_ratio Liquidation ratio зависит от актива: для ETH обычно 150%, для более волатильных — 175-200%, для stablecoins — 105-110%. Правильный выбор liquidation ratio — это балансирование между защитой протокола и риском bad debt.
Триггер ликвидации происходит при вызове liquidate() кем угодно (permissionless). Вызывающий получает kick reward — небольшое вознаграждение за инициацию аукциона.
Dutch auction (Clip): почему лучше английского
Английский аукцион (ставки растут) требует ожидания конца аукциона (до 6 часов) и подвержен gas wars. Голландский аукцион (Clip) стартует выше рыночной цены и экспоненциально снижается. Параметры аукциона:
Подробные параметры аукциона
| Параметр | Описание | Типичное значение |
|---|---|---|
buf |
Начальный мультипликатор цены | 1.2 (20% выше рыночной) |
tail |
Максимальная продолжительность | 3600 секунд |
cusp |
Максимальное падение цены | 0.4 (40% от стартовой) |
chip |
% залога как kick reward | 0.02% (2 bps) |
tip |
Фиксированный flat incentive | 300 DAI |
Если аукцион достигает tail или цена падает до cusp без завершения — срабатывает reset: цена сбрасывается к рыночной * buf. Это защита от ситуации Liquidations 1.0.
Flash loan ликвидации через take()
Clip.take() поддерживает callback: ликвидатор получает залог, продаёт через DEX и возвращает долг в одной транзакции — стандартный flash loan паттерн.
interface ClipperCallee { function clipperCall( address sender, uint256 owe, // долг для погашения uint256 slice, // полученный залог bytes calldata data ) external; } Интеграция с Uniswap V3 или 1inch внутри clipperCall — стандартная практика для ликвидационных ботов.
Почему модульная архитектура критична для ликвидаций?
Компоненты
| Компонент | Функция |
|---|---|
Dog.sol |
Реестр активных CDP, триггер ликвидаций |
Clip.sol |
Движок голландского аукциона |
Abacus.sol |
Расчёт цены (экспоненциальное/линейное падение) |
Spotter.sol |
Оракульный адаптер, подаёт цену в Dog |
Vat.sol |
Core accounting, хранит все CDP и долги |
Мы реализуем аналогичную модульную архитектуру, адаптированную под конкретный протокол. Ключевое: Vat — единственное место хранения балансов; остальные контракты только записывают в Vat через авторизованные вызовы.
Оракульная безопасность
Dog получает цену через Spotter из OSM (Oracle Security Module) — с задержкой 1 час, и текущую цену для emergency liquidations. Задержка даёт время пользователям добавить залог при резком падении. Для волатильных активов выбираем задержку 30-60 минут, для stablecoins — без задержки.
Liquidator incentive калибровка
Оптимальный incentive = gas cost ликвидации + premium за риск + profit margin. При газе 300k units и 50 gwei = 0.015 ETH. Kick reward покрывает gas, chip даёт profit margin. Например, для ETH при рыночной цене $2000 и debt ceiling в 10 млн оптимальный incentive составляет 0.02 ETH, что стимулирует ликвидаторов без избыточного дисконта.
Что входит в работу
- Аналитика: параметры аукциона для каждого типа залога, моделирование incentive structure
- Разработка: Dog, Clip, Abacus, оракульная интеграция, Liquidator bot (off-chain)
- Тестирование: fork-тесты стресс-сценариев (симуляция Black Thursday), unit-тесты граничных случаев
- Деплой: сначала testnet с форком mainnet, затем mainnet с ограниченным debt ceiling
- Документация: описание архитектуры, параметров, инструкции для ликвидаторов
- Поддержка: 2 недели мониторинга после запуска, обучение команды
По итогам вы получаете: полную документацию, доступ к репозиторию с кодом, обучение ваших разработчиков и 2-недельную поддержку после деплоя. Свяжитесь с нами, чтобы обсудить детали.
Тестирование: что нельзя пропустить
Симуляция сценария, аналогичного Black Thursday, через Foundry fork:
forge test --fork-url $ETH_MAINNET_RPC --fork-block-number 9763200 --match-test testBlackThursdayScenario Тест: залог падает на 40% за 100 блоков. Проверяем: все CDP с CR < LR уходят на аукцион, аукционы завершаются, bad debt = 0, reset срабатывает при отсутствии ликвидаторов.
Echidna property: totalSystemDebt <= totalSystemCollateralValue * (1 / minimumCR) при любой последовательности операций.
Ориентиры по срокам
Базовая система ликвидаций CDP с dutch auction для 1-3 типов залога — 1-2 недели. Расширенная система с NFT залогом и кастомным auction механизмом — 3-4 недели. Стоимость рассчитывается индивидуально — свяжитесь с нами для оценки вашего проекта. Наш опыт гарантирует надёжность и защиту от bad debt.
Закажите разработку системы ликвидаций CDP — получите консультацию инженеров с 10+ лет опыта в DeFi.







