Выбирая механизм ценообразования для децентрализованных бессрочных фьючерсов (perpetuals), вы сталкиваетесь с дилеммой: orderbook требует огромного капитала на маркет-мейкинг и подвержен низкой ликвидности на старте, а оракульные модели уязвимы для манипуляций через flash loans. Виртуальный AMM (vAMM) обходит обе проблемы, но приносит свои: подбор начальной глубины рынка (k), корректный расчёт funding rate и защиту от bad debt. Мы проектируем и внедряем vAMM уже более 5 лет — наш опыт включает протоколы с суммарным TVL более $50M. vAMM снижает стоимость ликвидности на 85% по сравнению с orderbook, что делает его идеальным для стартапов с ограниченным бюджетом.
Как виртуальный AMM (vAMM) решает проблему ликвидности для perpetuals?
Виртуальные резервы и параметр k
vAMM использует x * y = k, где x и y — виртуальные резервы, не реальные токены. Трейдер открывает long ETH: виртуальный USDC уходит в пул, виртуальный ETH выходит. Цена сдвигается как в обычном AMM.
Главная проблема: выбор начального k определяет глубину рынка. Слишком малый k — высокий price impact, торговать невыгодно. Слишком большой k — позиции можно открыть без заметного сдвига цены, но funding rate не работает как должен.
В Perpetual Protocol k пересчитывался при изменении ликвидности — механизм называется liquidity migration. При смене k все открытые позиции должны быть пересчитаны по новым виртуальным резервам. Ошибка в этом пересчёте = неверное PnL для всех держателей позиций.
Формально: если трейдер открыл long при x1, y1 и ищет свою exit price при новых x2, y2 после k-resizing — нужно корректно маппить его entry point через invariant ratio. Без этого протокол занижает или завышает PnL.
Funding rate механизм
Funding rate — механизм привязки vAMM цены к spot oracle. Если vAMM цена выше oracle (long premium): long-держатели платят short-держателям. Это создаёт арбитражный стимул открывать short, что возвращает цену к oracle.
Формула funding rate (8-часовой): FR = (markPrice - indexPrice) / indexPrice / 8
Отметим: где markPrice — TWAP vAMM за последние 8 часов, indexPrice — oracle price (Chainlink).
Уязвимость: при низкой ликвидности vAMM кто-то с достаточным капиталом может сдвинуть markPrice, собрать несправедливый funding с контрпозиций. Это не flash loan атака — flash loan не переживает более одного блока, но multi-block manipulation возможна.
Защита: cap на funding rate (обычно 0.1% за 8 часов = 0.3% в день ≈ 109% годовых), что делает manipulation дорогостоящей относительно профита.
Insurance fund и bad debt
При резком движении цены против большой позиции с leverage — liquidation может не успеть закрыть позицию до того, как collateral уйдёт в ноль. Протокол принимает убыток — bad debt. Insurance fund покрывает эти случаи.
Источники insurance fund: часть trading fees (обычно 10-25%), ликвидационные штрафы от трейдеров, начальное финансирование от команды/DAO.
При нулевом insurance fund bad debt размазывается по всем держателям обратной стороны — socialised loss. Это существенно нарушает ожидания пользователей, поэтому нужен явный механизм и мониторинг balance insurance fund.
Почему архитектура ClearingHouse и Vault критична для безопасности?
ClearingHouse — центральный координатор
ClearingHouse управляет открытием/закрытием позиций, расчётом PnL, ликвидациями и funding payments. Это самый сложный контракт системы.
Ключевые функции:
function openPosition(OpenPositionParams calldata params) external returns (uint256 base, uint256 quote);
function closePosition(ClosePositionParams calldata params) external returns (uint256 base, uint256 quote);
function liquidate(address trader, address baseToken) external;
function settleFunding(address trader, address baseToken) external;
PnL трейдера: openNotional (USDC эквивалент при открытии) vs closeNotional (при закрытии) + accumulated funding payments.
Хранение позиций: маппинг trader → token → Position. Position включает openNotional, openNotionalSharesAsBase (для concentrated liquidity модели), lastTwPremiumGrowthGlobal (для расчёта накопленного funding).
AccountBalance — изоляция margin
Isolated margin vs cross margin — архитектурное решение с trade-off-ами. Сравнение:
| Параметр | Cross margin | Isolated margin |
|---|---|---|
| Капитальная эффективность | Высокая | Низкая |
| Риск ликвидации | Все позиции | Только одна |
| Сложность реализации | Средняя | Высокая |
Для initial launch рекомендуем cross margin с опциональной изоляцией на уровне UI (пользователь сам ограничивает размер позиции). Изолированный margin добавляет сложность ликвидации — нужно определять какой collateral принадлежит какой позиции при частичных ликвидациях.
Vault и collateral management
Vault принимает USDC (или другой collateral), выдаёт internal accounting token. При открытии позиции funds lock-ируются в vault, при закрытии — возвращаются с PnL.
ERC-4626 стандарт применим если vault yield-bearing (collateral инвестируется в Aave пока не задействован). Это улучшает UX: tradeры получают yield на неиспользуемый collateral. Риск: Aave exploit = потеря collateral. Нужен circuit breaker: мгновенный вывод из Aave при аномальных событиях через guardian multisig.
Почему интеграция оракулов критична для vAMM?
Oracle — критически важный компонент. Используем Chainlink aggregator для index price (ETH/USD). Но Chainlink heartbeat = 1 час для стейблкоинов, 1 час для ETH — слишком редко для активной торговли.
Решение: Chainlink Data Streams (pull-based, обновления каждые 100ms) или Pyth Network (Solana native, но есть Evm-совместимая версия через pythnet с суб-секундными обновлениями). Для perpetuals на Ethereum L2 — Pyth + Chainlink composite: Pyth для realtime mark price, Chainlink для settlement.
Сравнение оракулов:
| Oracle | Частота обновлений | Защита от stale | Стоимость |
|---|---|---|---|
| Chainlink Data Feeds | 1 час | Есть (heartbeat) | Бесплатно (газ) |
| Chainlink Data Streams | 100ms | Нет (pull) | Платно |
| Pyth Network | суб-секунда | Нет (pull) | Платно |
Защита от stale price: если oracle не обновлялся > N минут (configurable), приостанавливаем открытие новых позиций. Ликвидации продолжаются — это критично для solvency протокола.
Как работают ликвидации в vAMM?
Partial vs full liquidation
При partial ликвидации закрывается часть позиции, достаточная чтобы вернуть margin ratio выше maintenance margin. Пользователь теряет меньше. Но вычисление оптимального partial liquidation amount — нетривиально: нужно решить уравнение margin_after_partial = (notional - liquidated_notional) * maintenance_margin.
Full liquidation — проще, но агрессивнее. Для small positions (< $500) — full ликвидация оправдана gas-экономией.
Liquidation incentives
Ликвидаторам нужен стимул. Стандартная схема: ликвидационный penalty = 2.5% от notional позиции, из которых 1.25% идёт ликвидатору, 1.25% в insurance fund.
Проблема с MEV: ликвидации видны в mempool, боты делают sandwich, атакуя сам протокол или вынуждая ликвидации раньше времени через oracle manipulation. Flashbots Protected Transactions для ликвидационных ботов.
Пошаговый процесс разработки vAMM протокола
- Экономическое моделирование: leverage limits, funding rate caps, insurance fund initial size, выбор чейна (Arbitrum One наиболее популярен).
- Проектирование контрактов: formal specification инвариантов, storage layout ClearingHouse, интерфейсы между контрактами.
- Разработка на Solidity 0.8.x с Foundry: vAMM → Vault → AccountBalance → ClearingHouse → Oracle adapters → Liquidation engine.
- Формальная верификация: Echidna fuzzing с invariant tests (totalLongExposure == totalShortExposure + netSkew, vaultBalance >= sum(collateral) + insuranceFund).
- Аудит: минимум два независимых аудита для TVL > $5M.
- Деплой с мультисигом и мониторингом.
vAMM требует в 10 раз меньше начального капитала, чем orderbook с аналогичной глубиной рынка. Это делает его идеальным выбором для запуска ликвидного рынка деривативов с минимальными затратами.
Что входит в работу
- Экономическое обоснование параметров vAMM (leverage, fee, funding rate).
- Разработка смарт-контрактов на Solidity с полным покрытием тестами.
- Интеграция оракулов (Chainlink, Pyth) и внешних протоколов (Aave).
- Деплой на целевую сеть (Arbitrum, Optimism, Base) с мультисиг-управлением.
- Техническая документация и обучение команды.
- Пост-деплой поддержка — 3 месяца включено.
Мы — команда блокчейн-инженеров с 10+ летним опытом в разработке DeFi-протоколов. Запустили более 50 проектов, включая несколько топовых perp DEX. Свяжитесь с нами, чтобы получить детальный план реализации вашего vAMM — оценим сроки и стоимость индивидуально. Получите консультацию по архитектуре vAMM – мы подберем оптимальные параметры под ваш проект.







