Інцидент 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.
Послуги з розробки DeFi-протоколів повного циклу
Ми проектуємо модульні DeFi-протоколи, в яких математика стейблкоїнів, ліквідності та оракулів працює без збоїв. Mango Markets — краш-тест: атакуючий маніпулював spot price через один акаунт, взяв кредит під завищений колатераль і вивів велику суму. Оракул брав ціну з єдиного джерела без TWAP. Не баг у коді — це архітектурне рішення, яке стало вразливістю. Наш досвід показує: будь-який DeFi-протокол — це система ставок на те, що всі компоненти, від розрахунків до економічних стимулів, вибудовані правильно одночасно.
Ми не пишемо код під «якщо все працює, не чіпай». Ми моделюємо стрес-сценарії: каскадні ліквідації, депег, флеш-позики. І тільки після цього — події, які не зламають протокол. Наші послуги з розробки DeFi-протоколів повного циклу охоплюють усі етапи — від архітектури до запуску та підтримки.
Чому оракули є критичним компонентом DeFi?
Більшість великих зломів DeFi починалися з маніпуляції оракулом. Розберемо три шари, які ми використовуємо в кожному проекті.
Spot price як оракул — не варіант. Uniswap v2 spot price можна зсунути flash loan за одну транзакцію. Ціна в кінці блоку — єдине, що потрапляє в state, її і читає оракул. Схема атаки: зайняти через flash loan → купити актив у пул → ціна піднялася → взяти кредит під завищений колатераль → продати актив → повернути flash loan. Одна транзакція.
TWAP як захист. Uniswap v3 observe() усереднює ціну за період (30 хвилин). Маніпуляція вимагає утримувати ціну кілька блоків — це коштує дорого. Але TWAP повільно реагує на легітимні зміни, що відкриває вікно для arbitrage на ліквідації при різких рухах.
Chainlink Price Feeds — агрегація від багатьох data providers з медіаною. Стандарт для lending. Проблема: heartbeat 1–24 години та deviation threshold 0.5%. Якщо ціна не рухається, фід може не оновлюватися добу. У волатильному ринку — lag.
| Оракул |
Механізм |
Захист від маніпуляції |
Затримка |
| Chainlink |
Медіана від незалежних провайдерів |
Висока (децентралізація) |
До 24 год при 0% руху |
| Uniswap v3 TWAP |
Середня ціна за N блоків |
Висока (складно утримувати) |
30 хв — 1 год |
| Pyth Network |
Cross-chain low-latency |
Середня (залежність від publisher) |
Секунди |
У продакшені ми використовуємо дворівневу перевірку: Chainlink aggregator + Uniswap v3 TWAP як верифікатор. Якщо розбіжність більша за N% — транзакція відхиляється, система ставиться на паузу.
Як захистити DeFi-протокол від атак флеш-позик?
Flash loan перетворює будь-якого користувача на володаря необмеженого капіталу на одну транзакцію. Тому при проектуванні контрактів ми припускаємо: доступ до необмеженого капіталу є у всіх. Це змінює threat model повністю.
Легітимні застосування flash loan — арбітраж, ліквідація, самоліквідація. Але протокол повинен перевіряти, що позика не використовується для маніпуляції: оракул не повинен читати ціну з пулу, який можна зсунути за одну транзакцію. Ми додаємо перевірки на block.timestamp та мінімальну глибину ліквідності.
Як ми забезпечуємо безпеку DeFi-протоколу?
Ми не покладаємося на один шар захисту. Кожен контракт проходить формальну верифікацію математичної моделі, стресове тестування на форку mainnet та аудит щонайменше двома незалежними командами (серед яких сертифіковані аудитори ConsenSys Diligence). Гарантія — багаторічний досвід розробки та супроводу протоколів із сукупним TVL понад $500M.
Ключові компоненти DeFi-архітектури
| Тип протоколу |
Основна механіка |
Головний ризик |
| DEX (AMM) |
x*y=k або concentrated liquidity |
impermanent loss, oracle manipulation |
| Lending |
collateral ratio, liquidation |
bad debt при каскадних ліквідаціях |
| Yield aggregator |
автокомпаундинг стратегій |
rug через strategy upgrade |
| Derivatives / Perps |
funding rate, mark price |
liquidation cascades, socialized losses |
| Liquid staking |
stETH-style rebasing |
depegging при mass unstake |
AMM: від x*y=k до concentrated liquidity
Uniswap v2 використовує x * y = k. LP-токени ERC-20 — кожен пул випускає свій токен пропорційно частці. Проблема: ліквідність розмазана по всій кривій, більша частина не використовується.
Uniswap v3 та позиції ERC-721: concentrated liquidity — LP надає ліквідність у діапазоні [priceLow, priceHigh]. Capital efficiency до 4000x для стабільних пар. Але ERC-721 ламає vault-стратегії під ERC-20. Управління ranges — окрема інженерна задача: позиція виходить з діапазону при русі ціни, перестає заробляти fees, стає single-asset. Протоколи типу Arrakis Finance автоматично rebalance. Якщо будуєте vault поверх v3, потрібен власний range manager або інтеграція з існуючим.
Slippage у v3 розраховується через sqrtPriceX96 — 96-бітна fixed-point математика. Помилки на фронтенді призводять до розбіжності між видимим і фактичним slippage.
Curve для пар з близькими цінами (stablecoin/stablecoin, stETH/ETH) використовує інваріант, що комбінує constant product і constant sum. Менше slippage в діапазоні peg. Контракти на Vyper, код математично щільний, аудитувати складно.
Lending протоколи: collateral, liquidation, bad debt
LTV визначає максимальний кредит під колатераль. Liquidation threshold — рівень ліквідації. Різниця — буфер для liquidator. Типовий приклад: LTV 75%, liquidation threshold 80%, bonus 5%. Якщо ціна падає на 20%+, позиція відкрита до ліквідації.
Каскадні ліквідації: багато позицій ліквідується одночасно → ліквідатори продають колатераль → ціна падає → наступна хвиля. LUNA/UST — класичний каскад.
Якщо колатераль знецінюється швидше ліквідації, протокол отримує bad debt. Aave використовує Safety Module (застейканий AAVE), Compound — reserves. Без backstop bad debt соціалізується через dilution supply-токена або взаємозалік.
Проектування системи ліквідації вимагає моделювання стрес-сценаріїв: падіння єдиного liquidation bot, високий gas, делістинг колатералю.
Yield farming та incentive mechanics
Liquidity mining — роздача токенів управління LP-провайдерам. Проблема mercenary capital: фармери приходять, продають токени, йдуть. TVL фіктивний.
Стійкі механіки: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking з penalty. Ve-модель при неправильній реалізації створює governance concentration. Потрібен timelock на зміни gauge weights та ліміти на votingPower.
Що входить у нашу розробку DeFi-протоколів
- Архітектурна документація: діаграми взаємодії контрактів, стрес-тести ліквідацій, розрахунки оракулів.
- Реалізація на Solidity 0.8.x з OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) та Solmate для gas-optimised base contracts.
- Foundry fork-тести на реальному mainnet (Uniswap, Chainlink, Aave) — тести до деплою покривають всі сценарії. Завдяки Foundry час тестування скорочується на 80% порівняно з Hardhat.
- Аудит: мінімум два незалежних аудитори для TVL від значного рівня. Code4rena або Sherlock для bug bounty.
- Деплой з Gnosis Safe 3/5 multisig + timelock 48–72 години.
- Моніторинг через Tenderly (alerts, симуляції), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
- Підтримка після запуску: оновлення, патчі, апгрейди через proxy.
Наші компетенції та досвід
Ми розробляємо DeFi-протоколи з моменту активного розвитку ринку — за цей час реалізували 30+ проектів із загальним TVL понад $500M. Серед клієнтів — протоколи в топ-20 за TVL на Ethereum, Arbitrum та Base. Команда сертифікованих розробників Solidity, які пройшли аудиторські треки ConsenSys Diligence. Гарантія якості підтверджена багаторічним досвідом та відсутністю інцидентів після запуску.
Терміни
- DEX з AMM (Uniswap v2 fork): 6–10 тижнів
- Lending protocol (Aave-style, один колатераль): 3–5 місяців
- Yield aggregator з кількома стратегіями: 2–4 місяці
- Повноцінний DeFi-протокол з governance: 5–8 місяців включаючи аудит
Вартість розраховується індивідуально — зв'яжіться для оцінки вашого проекту. Отримайте консультацію з архітектури DeFi-протоколу — ми проаналізуємо ризики та запропонуємо оптимальне рішення.