Разработка leveraged yield farming
Alpaca Finance на BSC в 2021 году показала proof-of-concept: берёшь кредит под залог LP-токенов, добавляешь ликвидность в пул с плечом, farming rewards покрывают стоимость займа и дают net yield 50-200% APY. Это привлекло миллиарды долларов. Это же создало волну ликвидаций при падении BNB в мае 2021.
Leveraged yield farming — это протокол, где пользователь открывает позицию с плечом (2x-10x) в yield-farming стратегии. Lending pool предоставляет займ, borrower фармит с плечом, протокол управляет ликвидациями. Все три компонента тесно связаны, и ошибка в любом из них создаёт системный риск.
Почему это сложнее обычного лендинга
Проблема ценообразования LP-токенов
В обычном лендинге залог — это ETH или USDC с ликвидной ценой от Chainlink. В leveraged farming залог — это LP-токен Uniswap V2, Curve или другого DEX. Цена LP-токена нетривиальна и зависит от цен обоих активов в пуле.
Формула fair price LP-токена (для Uniswap V2 x*y=k пула):
LP_price = 2 * sqrt(reserve0 * reserve1 * price0 * price1) / totalSupply
Это не (reserve0 * price0 + reserve1 * price1) / totalSupply — такой подход уязвим для price manipulation через флеш-займы. Атакующий может временно дисбалансировать пул, завысить spot price LP-токена, занять больше, вернуть пул обратно. Alpha Homora V1 потеряла $37M в феврале 2021 именно через манипуляцию ценой залога.
Правильный расчёт использует sqrt(price0 * price1) — это не зависит от текущего баланса пула, только от рыночных цен активов. Цены берём из Chainlink, не из пула.
Liquidation при impermanent loss
Стандартный collateral ratio в лендинге — статичный: ETH упал на 20%, вы близко к ликвидации. В leveraged farming ситуация хуже: даже без движения цены ETH, impermanent loss снижает стоимость LP-позиции при росте одного актива относительно другого.
Протокол должен учитывать IL при расчёте health factor. Позиция 2x ETH-USDC при 10% росте ETH имеет ~0.25% IL, что на 2x плечо даёт ~0.5% снижения equity. Маленькие числа, но при 10x плечо и 50% движении рынка — это уже критично.
Правильная реализация считает equity = position_value - debt где position_value вычисляется через fair price LP. Liquidation threshold устанавливается с учётом worst-case IL для данной пары.
Debt ratio и kill factor
Два ключевых параметра позиции:
Debt ratio = debt / position_value. При открытии с 2x плечом и $1000 собственных средств: позиция $2000, долг $1000, debt ratio 50%.
Kill factor (liquidation threshold) — максимальный debt ratio, при достижении которого ликвидатор может закрыть позицию. Обычно 80-85%. Kill factor устанавливается per-pair: USDC/ETH в стейбл-пуле — выше (меньше IL риск), ETH/BTC-альткоин — ниже.
При ликвидации: ликвидатор вызывает liquidate(), протокол продаёт LP-позицию (снимает ликвидность, делает своп), погашает долг из выручки, остаток возвращает пользователю. Liquidation penalty (обычно 5%) уходит ликвидатору как incentive.
Архитектура контрактов
Три ключевых контракта
Lending Pool: пулы ликвидности для каждого токена (ETH, USDC, BNB). Лендеры депонируют, получают ibTokens (interest-bearing tokens, аналог Compound cToken). Borrowers занимают под залог позиций в Vault.
Worker: adapter-контракт для каждой стратегии (Uniswap V3 ETH-USDC 0.3%, PancakeSwap BNB-BUSD). Worker знает, как открывать/закрывать позицию, добавлять/убирать ликвидность в конкретном пуле. Новую стратегию добавляем как новый Worker без изменения основных контрактов.
Vault: управляет позициями пользователей. Хранит данные о каждой позиции (owner, debt, position id в Worker), вычисляет health factor, принимает вызовы ликвидации.
struct Position {
address worker; // какая стратегия
address owner; // владелец
uint256 debtShare; // доля в общем долге (не абсолютная сумма)
uint256 id; // id в Worker контракте
}
Долг храним в shares, а не абсолютных значениях — это автоматически учитывает накопленные проценты (как Aave aToken ratio).
Автоматический реинвест (auto-compound)
Farming rewards (например, CAKE на PancakeSwap) нужно регулярно клеймить, продавать в базовые токены и добавлять обратно в позицию. Это reinvest. Чем чаще — тем выше APY за счёт сложного процента, но выше gas costs.
Reinvest вызывают боты-киперы (любой желающий за небольшое вознаграждение) через reinvest() на Worker контракте. Optimum frequency зависит от размера позиции и стоимости газа — для маленьких позиций раз в день достаточно, для крупных — раз в час.
Управление рисками governance
Параметры, которые должны быть под governance timelock:
- Kill factor per-pair
- Min debt size (защита от dust атак)
- Max leverage per-pair
- Reinvest bounty rate
- Новые Workers (добавление новых стратегий)
Ни один из этих параметров не должен изменяться мгновенно. Timelock минимум 48 часов для критических параметров (kill factor), 24 часа для менее критичных.
Риски, которые нужно принять заранее
Smart contract risk: контракт сложный, attack surface большой. Внешний аудит обязателен. Alpha Homora, Alpaca — оба были взломаны, причём повторно.
Liquidation cascade: при резком падении рынка много позиций одновременно достигают kill factor. Ликвидаторы выходят на рынок с большими объёмами, цена падает ещё сильнее, новые ликвидации. Протокол должен иметь emergency pause и параметры максимального объёма ликвидаций за блок.
Oracle manipulation: критично защитить LP-price от spot manipulation. TWAP минимум 30 минут + Chainlink secondary source.
Процесс разработки
Токеномика и параметры (1-2 недели). Расчёт kill factor для каждой пары, модель interest rate (utilization-based как Compound), incentive для ликвидаторов. Агентное моделирование liquidation cascade.
Core контракты (3-5 недель). Lending Pool с ibToken, базовый Vault, один тестовый Worker.
Workers для целевых стратегий (1-2 недели на Worker). Интеграция с Uniswap V3, PancakeSwap V3, или Curve в зависимости от целевых пулов.
Keeper infrastructure (1 неделя). Автоматизация reinvest и ликвидаций.
Аудит (обязателен). Не запускать с реальными средствами без внешнего аудита. Минимум 3-4 недели для полного аудита протокола этой сложности.
Сроки от проектирования до готовности к аудиту: 2-3 месяца. Стоимость рассчитывается после финализации целевых пулов и сетей.







