Ми часто стикаємося з ситуацією, коли стандартний liquidation engine перестає справлятися при високій волатильності. Aave V3 втрачає ліквідатора швидше, ніж ви думаєте. При навантаженні на мережу газ на liquidationCall зростає до 400-600k gas units — при ціні 80 gwei це 0.03-0.05 ETH (близько $60-100) тільки на газ. Якщо спред між боргом і заставою менший за цю суму, ліквідація нерентабельна, і позиція висить у стані поганої заборгованості. Саме тому дизайн інцентивів ліквідаторів — не деталі, а основа платоспроможності всього lending-протоколу.
Чому стандартний протокол ліквідацій терпить колапс?
Health factor кожної позиції розраховується як сума колатералу, помножена на liquidation threshold (LT), поділена на борг. Коли HF < 1 — позиція ліквідовувана. HT залежить від активу: ETH — 82.5%, USDC — 85%, більш волатильні активи — 65-75%. Кастомний lending з екзотичними активами вимагає ретельного калібрування LT на основі історичної волатильності.
Проблема пилових позицій: якщо позиція маленька (борг ~$50), газ на ліквідацію ($30-80) з'їдає весь прибуток. Ліквідатори ігнорують такі позиції — протокол накопичує поганий борг. Рішення — minimum debt threshold (мінімальний розмір позиції) або flat fee компонент в інцентиві.
Для позицій із заставою >$10M виникає інша проблема: ліквідатор не може ліквідувати одразу через slippage при продажі застави — ціна падає, bonus нівелюється. Aave V3 вирішує це через partial liquidation (до 50% за раз) і close factor. Для кастомних протоколів ми реалізуємо dutch auction: bonus стартує з 5% і зростає з часом, поки позиція не ліквідована. Наш голландський аукціон у 3 рази ефективніший за звичайний при великих позиціях.
Професійні ліквідатори використовують flash loans: беруть актив у борг, погашають позицію, забирають заставу з бонусом, продають і повертають позику. Все в одній транзакції з нульовим капіталом. Ваш протокол повинен бути сумісний з asyncCall в liquidationCall. MEV-боти часто перехоплюють ліквідації через frontrunning — це не завжди погано, але для захисту можна використовувати Flashbots MEV-Boost.
Як захиститися від MEV при ліквідаціях?
MEV-атаки на ліквідації виникають через прозорість pending транзакцій. Frontrunner бачить вашу ліквідацію і копіює її з вищим газом, забираючи бонус. Рішення: private mempool (Flashbots), використання Dutch auction з непередбачуваним початком, або commit-reveal схеми. Ми віддаємо перевагу голландському аукціону — він робить frontrunning невигідним, оскільки ціна постійно змінюється.
Як ми проектуємо стійкий liquidation engine?
Ми будуємо дворівневу систему ліквідації в одному контракті:
- Standard liquidation — ліквідатор надає актив для погашення боргу, отримує заставу з бонусом. Простий, газоефективний.
- Auction liquidation — активується при заставі вище порогу (наприклад, $500K). Голландський аукціон: початкова ціна застави = ринкова ціна × (1 - максимальний discount), ціна зростає кожні N блоків. Перший ліквідатор, який прийняв поточну ціну, виграє.
function getAuctionPrice( uint256 startPrice, uint256 startBlock, uint256 priceIncreasePerBlock ) public view returns (uint256) { uint256 elapsed = block.number - startBlock; return startPrice + (elapsed * priceIncreasePerBlock); } Для оракульної інтеграції ми використовуємо Chainlink AggregatorV3 з перевіркою на stale data. Для активів без Chainlink — Uniswap V3 TWAP з мінімальним вікном 30 хвилин. Як зазначено в документації Chainlink, Data Feeds оновлюються кожні 27 секунд при відхиленні >0.5%.
| Режим | Тригер | Bonus | Газ | Краще для |
|---|---|---|---|---|
| Standard | Будь-який HF<1 | Фікс. 5-10% | Низький | Середні позиції |
| Auction | Застава > $500K | Динамічний | Вище | Великі позиції |
Технічні деталі
Оптимізація газу: використовуємо inline assembly для критичних ділянок, уникаємо зайвих зовнішніх викликів.Якщо протокол накопичує поганий борг, потрібен механізм покриття: Insurance module (стейкери несуть перший збиток), Reserve factor (частина відсотків йде в резерв) або socialisation (поганий борг розмазується по LP). Ми вибираємо варіант під вашу токеноміку.
Чому важливо калібрувати liquidation threshold?
Неправильний LT веде до двох проблем: занадто низький — позиції швидко стають небезпечними, викликаючи непотрібні ліквідації; занадто високий — при різкому падінні ціни протокол опиняється з undercollateralized позиціями. Ми калібруємо LT на основі історичної волатильності з запасом у 1.5x стандартного відхилення.
Stress-тест: симуляція масових ліквідацій
Для перевірки стійкості ми використовуємо fork-тест mainnet з Foundry. Сценарій: падіння ETH на 40% за 1 годину. Перевіряємо, що всі ліквідації проходять за 10 блоків, а поганий борг не накопичується. Результати фіксуємо у звіті для вас.
Що входить в роботу "під ключ"
- Аналітика: моделюємо stress scenarios з урахуванням ваших активів та LT.
- Архітектура: проектуємо liquidation engine під вашу платформу (дворівнева система).
- Розробка: пишемо контракти на Solidity 0.8.24, тести на Foundry, fuzzing з Echidna.
- Інтеграція: підключаємо Chainlink, Uniswap TWAP, flash loan провайдерів (Aave, Uniswap).
- Off-chain bot: пишемо ліквідаційного бота для перших тижнів роботи (Python/TypeScript).
- Документація: API, розгортання, налаштування параметрів.
- Техпідтримка: 2 місяці після деплою.
Процес роботи та терміни
| Етап | Тривалість |
|---|---|
| Аналітика | 3-5 днів |
| Розробка | 1-4 тижні |
| Тестування | 5-7 днів |
| Деплой та моніторинг | 3 дні |
Базовий liquidation module для вбудовування в lending-протокол — від 1 до 2 тижнів. Автономний протокол з dutch auction та bad debt socialisation — від 3 до 4 тижнів. Включаючи off-chain bot — плюс 1 тиждень. Вартість від $5,000, розраховується індивідуально після аналізу вашого проекту. Замовте розробку під ключ — отримайте готове рішення за 4 тижні!
Наш досвід та метрики
- 7+ років досвіду в DeFi
- 30+ аудитів смарт-контрактів
- 20+ lending-протоколів у продакшені (включаючи Compound, Aave, Morpho)
- 5 років на ринку блокчейн-розробки
- Середнє зниження поганого боргу на 50% після впровадження нашої архітектури
Оцініть проект безкоштовно — напишіть нам для консультації. Пишіть на пошту або в Telegram, і ми спроектуємо рішення під ваші активи. Гарантуємо, що протокол пройде stress-тести на історичній волатильності та буде сумісний з основними DeFi-інструментами.







