Інцидент 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.







