Розробка системи ліквідацій CDP з голландським аукціоном

Інцидент <cite>Black Thursday</cite> в MakerDAO показав: навіть топовий протокол може втратити мільйони через архітектурну помилку в системі ліквідацій. Англійський аукціон (ставки зростають) вимагав очікування 6 годин і був вразливим для gas wars. У відповідь MakerDAO впровадив [голландський аукціо

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

Часті запитання

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

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

Інцидент 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, що стимулює ліквідаторів без надлишкового дисконту.

Що входить у роботу

  1. Аналітика: параметри аукціону для кожного типу застави, моделювання incentive structure
  2. Розробка: Dog, Clip, Abacus, оракульна інтеграція, Liquidator bot (off-chain)
  3. Тестування: fork-тести стрес-сценаріїв (симуляція Black Thursday), unit-тести граничних випадків
  4. Деплой: спочатку testnet з форком mainnet, потім mainnet з обмеженим debt ceiling
  5. Документація: опис архітектури, параметрів, інструкції для ліквідаторів
  6. Підтримка: 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.