Вводный курс DeFi для всех. Занятие №01. Пулы. Часть IV. CFAMM
Такой маркетмейкер соединяет формулы постоянного произведения и постоянной суммы. Она стал популярным благодаря Curve Finance. Торговля происходит по кривой постоянной суммы, когда портфель относительно сбалансирован, и переключается на постоянное произведение, когда не сбалансирован.
Это позволяет снизить проскальзывание и непостоянные потери, но применимо только к активам с близкой стоимостью, поскольку цена желаемого торгового диапазона всегда близка к 1. Например, это будет полезно для торговли между стейблкоинами (DAI и USDC) и обёрнутыми активами (wBTC и sBTC).
Оракул цен
Рыночная цена на AMM меняется только при изменении коэффициента резервирования активов в пуле, таким образом, цена актива на AMM может отличаться от других бирж.
Например: В пуле ликвидности DAI / ETH Uniswap v2 насчитывалось 5 300 000 DAI и 2 300 ETH. Коэффициент резервирования означает, что цена ETH на тот момент составляет 5 300 000 DAI / 2 300 ETH = 2 304 DAI.
Сравнение оракулов Chainlink и WETH-USDC 0.05% Uniswap Pool
Зачем использовать v2 пулы с общей (во всем диапазоне цен) ликвидностью?
- Меньше экономических рисков и выход за границы диапазона.
- Скорость появления. DEX с такими пулами проще в разработке и они обычно первыми появляются в новых сетях с наградами.
- Простота реализации. В некоторых сетях, например TON из-за сложности языка разработки смарт-контрактов и аудитов до сих пор нет v3 пулов с концентрированной ликвидностью.
- Безопасность. Кодовая база меньше в 4 раза.
- Ниже риск непостоянных потерь (IL).
- Отсутствие затрат и рисков при использовании средств отслеживания позиций.
Руководства
- Добавить ликвидность в v2 пул
- Вывести ликвидность из v2 пула
- Добавить ликвидность в v3 пул
- Вывести ликвидность из v3 пула
Curve Ecosystem
Протокол кредитования Curve использует ту же механику и код, что и CrvUSD. Основное различие заключается в том, что в CrvUSD создаются новые стейблкоины, а в кредитовании они берутся из пула ликвидности:
В основе обоих механизмов лежит LLAMMA - AMM с уникальным дизайном.
Ликвидность в LLAMMA организована в "группах" (bands), аналогичных "тикам" в Uniswap V3, где каждая группа отвечает за свой ценовой диапазон. Свопы также последовательно «пересекают» диапазоны, оставляя слева от текущего диапазона только заемные активы, а справа - только обеспеченные активы:
Идея CrvUSD и кредитования заключается в создании AMM, который стимулирует маркет-мейкеров постоянно обменивать обеспеченные активы на заёмные токены и наоборот, чтобы улучшать позиции пользователей.
Когда своп перемещается в следующий диапазон (выходя за пределы белой зоны), цена AMM увеличивается или уменьшается более резко, чем линейно (зеленая и желтая зоны).
Эта смена цен за пределами текущего диапазона достигается путём изменения всей ценовой сетки для диапазонов. Это отличается от Uniswap V3, где интервалы между тиками фиксированы.
В Curve цены, "привязанные" к диапазонам выше и ниже текущего, изменяются нелинейно, что создаёт дополнительные стимулы для маркет-мейкеров обмениваться в "правильном" направлении.
Когда своп перемещается в следующий диапазон (выходя за пределы белой зоны), цена AMM увеличивается или уменьшается более резко (зелёная и жёлтая зоны). Эта нелинейная смена цен за пределами текущего диапазона достигается путем изменения всей ценовой сетки для диапазонов.
Это существенно отличается от Uniswap V3, где интервалы между тиками фиксированы.
Обеспеченные активы пользователей распределяются по диапазонам, а свопы в LLAMMA одновременно конвертируют обеспеченный актив в заёмный токен и наоборот. Если операция происходит в "правильном" направлении, то она покупает активы, чья цена упала, повышая их стоимость (когда цена обеспечения падает, а пользователи становятся "нездоровыми"), и продаёт активы в обратном случае.
Этот механизм позволяет AMM Curve поддерживать кредитные механики, создавая стимулы для автоматической ликвидации и "мягких ликвидаций".
Таким образом, ликвидации в CrvUSD (если цены не демонстрируют резких изменений) на самом деле не являются ликвидациями. Это непрерывный обмен обеспеченного актива на долговой актив и наоборот, перемещающий позиции пользователей в "здоровое" состояние.
В случае резкого изменения цен Curve также поддерживает традиционные «жесткие ликвидации», аналогичные другим протоколам, где долг пользователя погашается за счет его обеспечения.
Мягкие ликвидации делают позиции пользователей нестабильными, так как их обеспеченные активы могут разделяться на две части: одна часть остаётся в обеспеченном активе (например, WETH), а другая - в стейблкоине (например, CrvUSD). Соотношение между этими активами изменяется в зависимости от цены обеспечения.
При экстремальных изменениях цен может возникнуть ситуация, когда всё обеспечение пользователя конвертируется в стейблкоины. В таком случае "здоровье" позиции становится странным: например, CrvUSD может оказаться и обеспечением, и долгом одновременно, что добавляет сложности.
Структура Curve LLamaLend
В основе работы Curve LlamaLend лежит комбинация трёх контрактов: Vault, AMM (LLAMMA) и Controller. Эти контракты совместно создают рынок кредитования для двух токенов: один из них используется как заемный актив, а другой - в качестве обеспечения.
Существует два варианта развертывания этой комбинации:
- OneWayFactory создаёт рынок кредитования для пары CrvUSD и токена обеспечения. Например, CrvUSD выступает в роли заёмного актива, а другой токен, такой как WETH, используется в качестве обеспечения.
- TwoWayFactory создаёт два взаимосвязанных кредитных рынка с "зеркальными" ролями токенов. Один рынок ориентирован на "лонг", а другой - на "шорт".
Например: На первом рынке CrvUSD используется как заёмный токен, а WETH - как обеспечение. На втором рынке роли меняются: WETH становится заёмным токеном, а CrvUSD используется в качестве обеспечения.
Этот подход обеспечивает большую гибкость для пользователей, позволяя им как занимать стейблкоины под активы, так и использовать стейблкоины для получения ликвидных активов в долг.
Factory (Фабрика)
Первым шагом является инициализация фабрики, где задаются адреса для контрактов AMM, Controller и Vault, а также адреса оракулов, параметры денежной политики и другие настройки.
После инициализации фабрика может развёртывать новые рынки кредитования (в настоящее время только с CrvUSD в качестве стейблкоина).
- Создание хранилища (Vault). Для определения цены можно использовать:
- Уже существующий пул AMM (например, обычный пул Curve), который выступает в роли ценового оракула.
- Пользовательский ценовой оракул.
- Параметр A (коэффициент усиления), который аналогичен tickSpacing в тиках Uniswap V3. Этот параметр определяет, как AMM будет реагировать на изменения цен (описание см. ниже).
После настройки параметров фабрика создаёт хранилище (Vault) и связанные с ним контракты AMM и Controller. Это обеспечивает полное взаимодействие всех элементов системы.
В случае TwoWayLendingFactory создаются два хранилища, каждое из которых представляет свой рынок кредитования.
Оба рынка используют один и тот же ценовой оракул. Если для каждого рынка использовать разные ценовые оракулы, это может сделать систему уязвимой к манипуляциям с ценами. Даже небольшие изменения цен могут привести к усиленным арбитражным возможностям между хранилищами.
LLAMMA (Ключевая часть AMM)
LLAMMA (Liquidity Lending AMM) - основной механизм кредитования. Он связывает рыночные цены с внутренними ценами AMM, обеспечивая уникальную механику распределения ликвидности и управления ценовыми диапазонами.
Самая важная функция в LLAMMА - _p_oracle_up(), которая вычисляет верхнюю цену для n-го диапазона. Эта функция управляет ценовыми диапазонами для каждого бэнда и при изменении «сдвигает» распределение ценовых диапазонов по всем бэндам.
Все остальные "растущие" и "падающие" цены (опорные и AMM) для каждой группы рассчитываются на основе этой функции.
Функция обмена, как и в Uniswap, имеет две ветви для расчёта целевых параметров обмена на основе необходимого "входящего" или "исходящего" количества токенов. Основной цикл "прохождения" по бэндам с обновлением резервов каждого пересекаемого бэнда находится здесь. После этого активный бэнд AMM меняется.
- принимает залог от пользователя и помещает его в бэнд (от n1 до n2).
- залог разделяется на равные части,
- для каждого бэнда добавляются доли пользователю,
- обновляется общее количество долей диапазона.
В Uniswap V3 не использовалась операция для каждого тика. Здесь мы не можем избежать операций "для каждого бэнда" из-за "плавающей" сетки цен и мягкой ликвидации.
Функция вывода средств работает аналогично функции ввода, перебирая диапазоны, удаляя ликвидность и доли.
Controller отвечает за управление долгами пользователей, и за обработку заемных активов, предоставленных кредиторами. Когда пользователь вносит средства, заемные токены передаются в Controller, который затем переводит их пользователю, формируя займ.
- Определяется количество bands, в которые равными частями распределяется обеспечение.
- При формировании долга определяется начальный диапазон n1, начиная с которого обеспечение распределяется по последующим N диапазонам.
- После сохранения данных о займе Controller передает обеспечение напрямую в LLAMMA.
Этот процесс обеспечивает тесную связь между обеспечением и AMM, позволяя автоматически использовать его в механизмах стабилизации и управления ликвидностью.
Хранилище Vault
Vault отвечает за управление долями (vault shares) кредиторов и заемщиков, обеспечивая их взаимодействие с остальными компонентами системы.
Управление рисками (Risk Management)
Основной аспект управления рисками - это "здоровье" позиции пользователя - health. Значение должно быть положительным.
В расчёте, кроме соотношения обеспечения к долгу дополнительно учитывается разница цен выше самого высокого диапазона обеспечения пользователя, которая влияет на стоимость обеспечения и, соответственно, на "здоровье" позиции.
Формула и калькулятор здоровья при ликвидациях
APY для кредитования и заимствования (основанный на ставках заимствования) в CrvUSD не фиксированный и определяется денежной политикой. В системе реализованы несколько вариантов таких политик, включая SemilogMonetaryPolicy и SecondaryMonetaryPolicy.
Например, пул кредитования CRV/CrvUSD использует SemilogMonetaryPolicy. Эта политика рассчитывает ставку, используемую в AMM, на основе коэффициента использования рынка (total_debt/total_collateral). Администратор фабрики может изменять денежную политику, чтобы адаптировать протокол к рыночным условиям.
Curve StableSwap Exchange (Curve v1)
Алгоритм StableSwap сочетает в себе неизменность (инвариант) постоянной суммы и постоянного продукта. Эта модель корректируется по мере изменения баланса пула, переходя к модели постоянного продукта, когда происходит значительный дисбаланс.
Curve поддерживает стейблкоины в долларах США, Евро, обёрнутые / синтетические BTC и обернутые/синтетические ETH-активы.
Curve сотрудничает с Yearn Finance для выпуска пула yUSD, состоящий из токенов с доходностью yDAI, yUSDT, yUSDC, и yTUSD. Пользователи, участвовавшие в этом пуле, получают доходность от базовых токенов, комисси за обмен, генерируемые пулом Curve, и вознаграждения в виде CRV за предоставление ликвидности.
Чтобы повысить ликвидность токенов с низким уровнем объема торгов, Curve представила концепцию базовых пулов и метапулов.
Базовый пул. Обычно это пул стабильных монет, например 3Pool (USDT, USDC, DAI). Токен LP базового пула используется в метапуле.
Метапул объединяет LP-токен базового пула с другим токеном, позволяя пользователям обмениваться между этим токеном и всеми токенами базового пула, не разбавляя ликвидность базового пула.
Метапулы позволяют эффективно обменивать один токен (например, USDN) на все токены в базовом пуле (например, 3Pool). Это достигается путем обмена одного токена на токен LP базового пула, который представляет собой долю ликвидности базового пула
В настоящее время наиболее ликвидным базовым пулом является 3CRV пул стейблкоинов, состоящий из DAI, USDT и USDC. Соотношение трех стейблкоинов в пуле зависит от спроса и предложения на рынке. Внесение монеты с меньшим коэффициентом принесет пользователю более высокий процент от пула. Когда соотношение одной из монет существенно больше, это может послужить хорошим шансом для арбитража.
Создание мета-пулов помогает Curve:
- Предотвращать разбавление существующих пулов.
- Вносить неликвидные активы.
- Больший объём и торговые комиссии для держателей токенов CRV.
Поставщики ликвидности в 3Pool, которые не предоставляют ликвидность в метапуле, защищены от системных рисков со стороны метапула.
Когда пользователи вносят депозит в пул, они получают токены Liquidity Provider (LP tokens), представляющие их активы в пуле. С помощью этих LP-токенов пользователи могут заработать два различных вида доходности:
- Базовая vAPY: Это увеличивает стоимость токена LP за счет начисления комиссии пула. Обратите внимание, что для ребейс-токенов, таких как stETH, эта доходность также включается в базовую vAPY.
- Вознаграждения tAPR: Это вознаграждения за инфляцию CRV, другие поощрения за токены и баллы. Чтобы заработать вознаграждения, основанные на активах, таких как CRV или другие активы, пользователи должны застейкать свои токены LP. Однако многие программы начисления баллов не требуют стейкинга.
Некоторые пулы включают в себя токены, приносящие доход, такие как sUSDe и sDAI. Вся прибыль от этих токенов идет напрямую поставщикам ликвидности, и ни одна из них не забирается комиссиями или пулом. Это также относится к ребейс-токенам, таким как stETH..
Пулы всегда пытаются сбалансировать себя и вернуться к равным частям, поэтому, внося монету с наименьшей долей, вы получите бонус на депозит.
Существует две основные реализации инварианта stableswap в различных цепочках: Оригинальный stableswap был первой реализацией.
Stableswap-NG (new generation) обеспечивает расширенные возможности и позволяет включать до восьми токенов в стандартные пулы и до двух в метапулы. Она расширяет поддержку различных типов токенов, включая токены, оцениваемые оракулами, такие как wstETH, токены ERC4626 хранилищ, такие как sDAI, и ребейс-токены*, такие как stETH.
Предложение ребейс-токена (rebase-token) периодически автоматически корректируется в зависимости от колебания цены токена.
Представьте, что в обращении находится 100 токенов stETH, и у вас есть 10 из них-, что означает, что вы держите 10% от общего обращающегося предложения. Если в течение короткого периода спрос на stETH внезапно растет. stETH становится редким, и его цена удваивается, переходя от $1000 до $2000. В этой ситуации во время следующего ребейса сеть добавит в обращение дополнительные 100 токенов stETH. В результате количество stETH в вашем кошельке изменится с 10 токенов на (100+100)/10% = 20 токенов. Однако фактическая стоимость ваших активов, в теории, остается неизменной.
Однако нативные токены, такие как ETH, не поддерживаются напрямую в рамках данной реализации. Для транзакций с ETH необходимо использовать его обернутую версию, wETH. Это решение обусловлено обеспечением более высоких стандартов безопасности.
Кроме того, в пулы теперь встроены оракулы скользящего среднего.
Stableswap-NG вводит динамические комиссии, позволяя корректировать комиссию в зависимости от состояния пула. Если баланс обмениваемых токенов сильно разбалансирован или значительно отличается от привязки, комиссия корректируется.
Визуализация динамической комиссии:
Stableswap NG представляет два новых оракула, встроенных в пул:
Функция exchange_received позволяет обмениваться токенами без фактической передачи токенов, так как обмен основан на изменении баланса монет в пуле.
Этим методом могут воспользоваться агрегаторы, арбитражники или другие пользователи, которые не хотят давать разрешения на заключение контракта. Вместо этого они могут отправить токены непосредственно в контракт и вызвать exchange_received().
Пример заработка на предоставлении ликвидности.
Примечание: Алиса может вводить/выводить любую комбинацию активов/сумм, но платит небольшую комиссию за несбалансированные действия (например, ввод только USDC).
CryptoSwap Exchange (Curve v2)
Алгоритм Automatic Market-Making with Dynamic Peg (CryptoSwap) представляет собой новый подход к созданию ликвидности для активов, которые не обязательно привязаны друг к другу.
Суть алгоритма заключается в его способности концентрировать ликвидность вокруг ценовой точки, определяемой внутренним оракулом, и корректировать эту цену таким образом, чтобы сбалансировать потенциальные убытки и системную прибыль.
Алгоритм также включает в себя динамическую структуру комиссии, которая реагирует на изменение рыночных условий. Этот подход направлен на повышение качества предоставления ликвидности и оптимизацию прибыли для поставщиков ликвидности.
Вайтпейпер
Пример заработка на предоставлении ликвидности.
Боб может вводить/выводить любую комбинацию активов/сумм, но платит небольшую комиссию за несбалансированные действия (например, ввод только ETH):
Сбалансированные депозиты и снятие средств бесплатны. За несбалансированные действия взимается небольшая комиссия (не более 50% от комиссии за своп). Это предотвращает бесплатные свопы через циклы ввода/вывода средств.
Сбалансированный означает равную стоимость активов в пулах Cryptoswap!
Существует несколько реализаций алгоритма CryptoSwap:
- CryptoSwap Genesis интеграция пула волатильных активов на две монеты.
- Tricrypto Genesis интеграция пула волатильных активов на три монеты.
- TwoCrypto-NG Улучшенная версия CryptoSwap.
- Tricrypto-NG Улучшенная версия Tricrypto
Исходный код
Поскольку различные торговые пары могут иметь разную динамику цен, Curve v2 предлагает множество настраиваемых параметров, которые можно использовать для оптимизации под различные типы активов.
Алгоритм маркет-мейкинга CryptoSwap состоит из трёх различных классов параметров:
Параметры кривой связывания
Чтобы сконцентрировать ликвидность в районе середины кривой, Curve v2 использует инвариант, который находится между подходом StableSwap (Curve v1) и методом постоянного продукта, используемым такими платформами, как Uniswap и Balancer.
В отличие от других AMM, "центр" (точка равновесия) кривой связывания Curve v2 динамически смещается в соответствии с изменениями цен.
Форма кривой регулируется двумя параметрами:
- A (коэффициент усиления) : как и в Curve v1, параметр A регулирует, насколько плоской является центральная часть кривой связывания. Таким образом, он контролирует концентрацию ликвидности вблизи ожидаемого обменного курса (т. е. "шкалы цен");
- Гамма: параметр "растягивает" кривую "скорректированного постоянного продукта" к нижнему левому углу графика, сдвигая асимптоты кривой ближе к осям и делая кривую в целом более широкой.
Комиссии
Пулы Curve v2 взимают динамические сборы в зависимости от баланса/дисбаланса пула. Комиссии минимальны, когда пул находится в сбалансированном состоянии, и увеличиваются с ростом дисбаланса.
Комиссии определяются с использованием трёх параметров:
- Fee Mid: Плата, взимаемая при полной балансировке пула. Это минимальная комиссия.
- Fee Out: Плата, взимаемая при полном дисбалансе пула. Это максимальная комиссия.
- Fee Gamma: Регулирует, насколько быстро увеличиваются комиссии от Mid Fee до Out Fee при большем дисбалансе. Более низкие значения приводят к резкому увеличению сборов при большем дисбалансе; более высокие значения приводят к более плавному увеличению сборов при большем дисбалансе. Рекомендуемое значение 0,0023 для волатильных активов и 0,005 для менее волатильных активов.
Комиссии как функцию баланса пула. По мере того, как пул переходит от полностью сбалансированного (ось x = 1) к полностью несбалансированному (ось x = 0), сборы увеличиваются от среднего сбора до внешнего сбора. Скорость увеличения контролируется параметром гамма сбора.
Симулятор комиссий
В обмен на внесение ликвидности в пул Curve поставщики получают токены пула LP (пула ликвидности). Токен LP пула Curve - это ERC20-контракт. Следовательно, токены LP можно передавать. Владельцы токенов LP пула могут стейкать LP-токен, чтобы получить вознаграждение в виде токенов CRV (токен управления Curve).
"Допустимая дополнительная прибыль" (Allowed Extra Profit): По мере того как пул получает прибыль, параметр допускает большие значения. Рекомендуется 0,000002 для волатильных активов и 0,00000001 для менее волатильных активов.
Шаг корректировки (Adjustment Step): При ребалансировке пула он должен делать это в единицах, превышающих размер шага корректировки. Для волатильных активов рекомендуется использовать большие значения (0,000146), в то время как менее волатильные активы движутся не так часто и могут использовать меньшие размеры шага (по умолчанию 0,0000055).
Время скользящего среднего (Moving Average Time): ценовой оракул использует экспоненциальное скользящее среднее, чтобы приглушить эффект изменений. Этот параметр регулирует используемый период, деленный на 2 (полупериод).
veCRV
CRV это токен экосистемы Curve. Чтобы участвовать в ДАО необходимо заблокировать CRV на срок от одной недели до четырех лет. Заблокированные CRV дают силу голоса vote-escrowed CRV (veCRV). Более длительные блокировки дают больше права голоса и вознаграждения].
Токеномика CRV
Вес вашего голоса уменьшается со временем, но ваш буст будет уменьшаться только в определенных контрольных точках, таких как снятие средств, пополнение калибра (gauge) или чеканка CRV.
Например, если у вас 1000 veCRV и ваша сила голоса уменьшается до 800 veCRV, ваш буст будет использовать вашу первоначальную силу голоса в 1000 veCRV до контрольной точки.
Блокировка - концепция, созданная для выравнивания стимулов управления. Во многих системах голосования монетами существует проблема, когда кто-то может купить токены на рынке, чтобы повлиять на голосование по управлению, а затем продать их после того, как голосование прошло/не прошло. Такие пользователи могут сильно влиять на голосование и рисковать лишь минимально, удерживая токены в течение нескольких дней. Блокировка не позволяет этому произойти. Пользователи должны заблокировать свои токены на определенное время, чтобы получить право голоса, и пользователи вознаграждаются большим правом голоса, если они заблокируют свои токены на более длительный период времени.
veCRV нестандартный ERC-20, и используется в Aragon DAO для определения силы голоса каждого аккаунта.
Пользователи veCRV получают следующие преимущества:
- Комиссии:
- 50% всех комиссий с обменов распределяется между держателями veCRV, а остальные 50% идут соответствующим поставщикам ликвидности пулов.
- 80% начисленных процентов с рынков crvUSD поступает держателям veCRV. Оставшиеся 20 % идут в scrvUSD.
- Держатели veCRV не получают прямой выгоды от рынков кредитования, но получают косвенную выгоду от увеличения предложения crvUSD.
- Все собранные комиссии конвертируются в crvUSD и распределяются между держателями veCRV. Комиссии собираются еженедельно с пулов, конвертируются в crvUSD и затем распределяются. Пользователи, заблокировавшие CRV, могут клеймить комиссии в любой момент; однако они будут конвертироваться в crvUSD только раз в неделю
- Повышение вознаграждения CRV для LP и рынка кредитования;
- Управление. veCRV представляет собой право голоса пользователя в Curve DAO.
Внешние рынки (не относящиеся к Curve) были созданы для того, чтобы платить пользователям за голосование за определенные своп-пулы/рынки кредитования и получать за это вознаграждение.
Эти стимулы могут быть очень выгодными и кратно превышать комиссии, получаемые платформой veCRV еженедельно. Например проект хочет получить ликвидность для своего токена в своп-пуле на Curve.
Проект размещает стимул для пользователей проголосовать за своп-пул в еженедельном голосовании gauge. Этот стимул может быть любой суммы в любом токене, например, $100k в ETH.
Если пользователи голосуют за пул, они получают часть поощрения в зависимости от того, сколько у них veCRV и сколько всего проголосовало за пул.
Например, за пул голосуют 2 пользователя - Алиса и Боб. У Алисы 100k veCRV, у Боба 900k veCRV. Всего за пул проголосовало 1M. $100k ETH будут разделены между Алисой и Бобом на основе их veCRV, так что Алиса получит $10k в ETH, а Боб - $90k в ETH.
Блокировка CRV для veCRV чтобы получить
- Увеличение держателями veCRV вознаграждения в CRV при предоставлении ликвидности в соответствующих пулах
- Калькулятор буста
Доминирование Convex: Convex Finance владеет значительной долей veCRV, что позволяет ей контролировать распределение вознаграждений CRV. Протоколы часто приобретают токены CVX или подкупают держателей CVX, чтобы повлиять на решения.. Такие платформы, как Yearn и StakeDAO, участвуют в экосистеме Curve через Convex, используя ее эффективность для максимизации дохода от veCRV.
Стейблкоин crvUSD
Curve Stablecoin позволяет пользователям выпускать crvUSD, используя различные криптовалютные залоги.
Управление позициями осуществляется пассивно: если цена залога снижается, кредит автоматически переходит в режим мягкой ликвидации, при котором часть залога конвертируется в crvUSD. И наоборот, если цена залога растет, система возвращает залог, конвертируя crvUSD обратно в токен залога.
Однако этот процесс может повлечь за собой некоторые потери из-за мягких ликвидаций и деликвидаций.
Управляйте позициями crvUSD на сайте crvusd.curve.fi.
Llamalend
- Если ваш залог перейдет в режим мягкой ликвидации, вы не сможете снять его или добавить к своей позиции еще один залог. Если цена залога резко упадет за короткий промежуток времени, ваша позиция будет жестко ликвидирована, без возможности деликвидации. Пожалуйста, выбирайте кредитное плечо с умом, как и в случае с любой другой долговой позицией, обеспеченной залогом.
- Если вы находитесь в режиме мягкой ликвидации и цена залога резко растет, это может привести к убыткам от ликвидации по пути вверх. Если состояние вашего кредита низкое, рост стоимости залога может потенциально снизить состояние здоровья вашего подводного кредита. (кредит, рыночная стоимость которого меньше номинальной).
- Если здоровье вашего кредита упадет до нуля или ниже, ваша позиция будет жестко ликвидирована без возможности деликвидации. Выбирайте кредитное плечо с умом.
Когда пользователь создает заем, его залог распределяется по нескольким диапазонам (bands) ликвидации (liquidation range). Если цена актива попадает в этот диапазон, заем переходит в режим мягкой ликвидации.
Когда позиция находилась или находится в режиме мягкой ликвидации, возникают убытки. Пользовательский интерфейс отображает эти потери тремя способами:
- LOSS AMOUNT - сколько вы потеряли при мягкой ликвидации в формате залога, например, 0,001 ETH.
- % ПОТЕРЬ - процент от внесенного залога, который вы потеряли при мягкой ликвидации.
- COLLATERAL CURRENT BALANCE (EST.) / DEPOSITED показывает ваш текущий залог за вычетом потерь по сравнению с внесенной суммой.
В разделе LLAMMA показана разбивка вашего текущего обеспечения по кредиту. Например, на картинке ниже есть 0,01 ETH и 0 crvUSD. Если бы пользователь находился в режиме мягкой ликвидации, часть залога была бы обменена на crvUSD для защиты от дальнейшего снижения цены, что уменьшило бы текущий баланс ETH и увеличило баланс crvUSD.
Расширенный режим добавляет вкладку с информацией о диапазонах LLAMMA для всех кредитов вместе:
Он также расширяет интерфейс создания займа, отображая диапазон ликвидаций, количество диапазонов, ставку по займу и отношение стоимости займа к стоимости кредита (LTV). Кроме того, пользователи могут вручную выбрать количество диапазонов для займа, нажав кнопку настройки и используя ползунок для увеличения или уменьшения количества диапазонов.
Большее количество диапазонов N обычно приводит к меньшим потерям, когда кредит находится в режиме мягкой ликвидации. Максимальное количество полос 50, а минимальное 4.
На практике это влияет на ваш максимальный LTV
Если вы установите N на минимально возможное значение, то у вас будет очень узкий диапазон ликвидации.
Пример того как обеспечение было разделено на четыре диапазона, все из которых зарезервированы по ценам, максимально приближенным к текущей цене WBTC.
Внезапное движение цены WBTC в этот узкий диапазон не ликвидирует вас мгновенно. Вместо этого ваш залог начинает конвертироваться в $crvUSD, чтобы защитить вас от ликвидации. Но высокая волатильность в этом диапазоне с большей вероятностью вызовет ликвидацию.
Кредитное плечо может быть увеличено до 9x, в зависимости от количества выбранных диапазонов. Если пользователь хочет использовать максимальное кредитное плечо (9x), его кредит будет иметь минимальное количество диапазонов (4). Использование наибольшего количества полос (50) позволяет использовать кредитное плечо только до 3x.
В Curve Lending три типа ликвидаций:
- Мягкая ликвидация;
- Жёсткая ликвидация -, залог теряется, но заемные средства сохраняются;
- Самоликвидация - пользователи могут выбрать самостоятельную ликвидацию, что иногда бывает выгодно.
Мягкая ликвидация. Во время этой фазы система автоматически защищает кредиты путем:
- преобразования первоначального залога в заемный актив по мере снижения цен
- возврата к первоначальному залогу при росте цен (де-ликвидация).
- Жёсткая ликвидация не запускается в нижней части диапазона мягкой ликвидации (например, ниже $2000 на изображении выше).
- Залог постепенно теряется на комиссии за своп во время мягкой ликвидации и ликвидации по мере колебания цен.
- Ухудшение состояния значительно ускоряется во время высокой волатильности рынка.
- Погашение долга влияет на позицию по-разному в зависимости от времени:
- Во время мягкой ликвидации: Увеличивает здоровье, но сохраняет тот же диапазон мягкой ликвидации.
- За пределами мягкой ликвидации: Увеличивает здоровье и снижает диапазон мягкой ликвидации.
Жёсткая ликвидация
Когда здоровье позиции достигает 0%, заем становится пригодным для жесткой ликвидации. В этот момент любой пользователь может инициировать жесткую ликвидацию, погасив долг заемщика. В обмен на погашение долга ликвидатор получает вознаграждение в виде оставшегося залога заемщика.
После жесткой ликвидации заемщик:
Если есть возможность, всегда лучше погасить долг или самоликвидироваться перед жесткой ликвидацией.
Пример жесткой ликвидации на рынке CRV/crvUSD. Здоровье кредита уменьшается с течением времени. Видно, что жесткая ликвидация зависит только от здоровья. Нижняя граница диапазона мягкой ликвидации не является местом, где происходит жесткая ликвидация.
Всегда лучше само-ликвидировать кредит до того, как он будет жёстко ликвидирован. Это связано с тем, что при расчете стоимости здоровья залог оценивается ниже, чем его реальная стоимость. В данном примере заёмщик получил бы на 11 107 crvUSD больше, если бы само-ликвидировал свой кредит, а не допустил его жесткую ликвидацию.
Самоликвидация позволяет пользователям добровольно закрыть свою позицию до достижения жесткой ликвидации, обычно когда они уже находятся в мягкой ликвидации. Эта функция помогает пользователям вернуть оставшийся залог, избежав при этом штрафа.
Пример: Алиса берет в долг 1000 crvUSD, используя в качестве залога 1 WETH. Её позиция переходит в режим мягкой ликвидации, где 0,2 WETH автоматически конвертируются в 250 crvUSD. Теперь ее текущая позиция состоит из:
Чтобы самоликвидироваться, Алисе нужно погасить только 750 crvUSD (поскольку 250 crvUSD уже находятся в ее залоге). После погашения долга Алиса получает свои оставшиеся 0,8 WETH.
Пример управления здоровьем и самоликвидацией.
Здесь (см. ниже) показан заем на рынке кредитования WETH/crvUSD. Когда пользователь попал в состояние "мягкой ликвидации", он решил погасить около 10 % своего долга, что увеличило его здоровье примерно с 3 % до 13 %, но сохранило диапазон "мягкой ликвидации" прежним.
Затем он долгое время находился в состоянии мягкой ликвидации, и самоликвидировался. Если погасить часть долга, находясь в состоянии мягкой ликвидации, то диапазон останется прежним, но здоровье увеличится, если же долг будет погашен за пределами диапазона мягкой ликвидации, то диапазон уменьшится.
Самоликвидация здесь была хорошей идеей, потому что у пользователя уже было 38 857 crvUSD в качестве залога (от обмененных WETH в мягкой ликвидации), а долг составлял 98 299 crvUSD, и пришлось отправить только 59 442 crvUSD, и получить обратно 24,3371 WETH. Если бы он решил погасить долг, то пришлось бы погасить все 98 299 crvUSD, а взамен получить весь залог (38 857 crvUSD и 24,3371 WETH).
В чём разница между самоликвидацией и погашением?
Самоликвидация закрывает кредит, вы не можете самоликвидировать часть кредита,, но вы можете погасить часть долга, это увеличивает здоровье кредита.
Пример. При самоликвидации, если часть WETH была конвертирована в crvUSD во время мягкой ликвидации, то пользователь должен перевести разницу между crvUSD, находящимися в качестве залога, и долгом.
При погашении с помощью crvUSD вы должны перевести достаточно crvUSD для покрытия долга, а взамен получаете весь залог. Однако на новых рынках (рынках с кредитным плечом) возможно погашение с помощью залога. В этом случае пользователю не нужно ничего отправлять, весь залог переводится в crvUSD, а пользователь получает обратно все crvUSD, оставшиеся после погашения долга.
При внесении базовых активов в хранилище ставка кредитования может снижаться в зависимости от количества добавленных активов. Причина в том, что при внесении дополнительных активов коэффициент использования рынка снижается (так как теперь есть больше активов, которые можно взять в долг), что одновременно снижает ставку заимствования. Когда ставка заимствования снижается, снижается и ставка кредитования.
И наоборот: изъятие активов из хранилища уменьшает их общее количество. Это повышает коэффициент использования (utilization rate), что увеличивает ставку заимствования, а значит, и ставку кредитования.
Оракулы цен
В экосистеме Curve используются различные оракулы. Хотя возможно подключение к Chainlink или другим внешним оракулам, наиболее логичным решением является использование собственных пулов Curve, обладающих значительной ликвидностью.
Например, кредитный AMM WETH/CrvUSD берёт цену из пула crvUSD-WETH-CRV.
Важной частью дизайна оракулов в CrvUSD является ограничение скорости изменения цен Резкие изменения цены оракула могут влиять на здоровье позиций пользователей и вызывать потери в AMM.
Также изменения цен, выдаваемых оракулом, влияют на динамическую комиссию для свопов. Это снижает риски значительных потерь AMM в условиях резких ценовых колебаний и атак типа «сэндвич».
Stableswap и Cryptoswap не полагаются на внешние ценовые оракулы.
Пулы CrytoSwap рассчитывает цену активов внутри себя, основываясь на торговой активности внутри пула.
Это отслеживается по двум схожим, но разным параметрам:
- Ценовой оракул (Price Oracle): Пулы отслеживают последние сделки внутри пула. Цена оракула рассчитывается как экспоненциальное скользящее среднее exponential moving average EMA) цен последних сделок.
- Шкала цен (Price Scale): Цена, основанная на фактической концентрации ликвидности в пуле. Это моментальный снимок того, как ликвидность в пуле распределена на самом деле. По этой причине шкала цен отстает от оракула. По мере того как пользователи совершают сделки, пул рассчитывает, как выгодно перенастроить ликвидность, и шкала цен движется в направлении цены оракула.
В качестве индикатора технического анализа трейдеры обычно используют «простую скользящую среднюю» (“simple moving average” SMA), которая рассчитывает среднее значение определенного количества пунктов (например, 200-дневная скользящая средняя рассчитывает среднее значение данных за 200 дней).
Экспоненциальная скользящая средняя» использует весовой коэффициент, подчеркивающий более новые данные по сравнению со старыми. Этот вес экспоненциально уменьшается по мере углубления в прошлое, поэтому она может быстрее реагировать на последние тенденции.
Пулы Cryptoswap работают на основе прибыли. То есть ликвидность ребалансируется, когда пул получает достаточную для этого прибыль. Каждый раз, когда происходит операция с ликвидностью, пул решает, стоит ли ему тратить прибыль на ребалансировку.
Действия пула можно рассматривать как попытку ребалансировать ликвидность вблизи рыночных цен.
Пулы выполняют все подобные операции исключительно за счет прибыли, никогда не используя средства пользователей.
Пул проверяет, что шкала цен отличается от цены оракула, чтобы избежать ребалансировки ликвидности при привязке цен, вычисляет обновления и то, как это влияет на другие параметры пула. Если прибыль позволяет, то ликвидность ребалансируется и цены корректируются.
Curve не рекомендует использовать пулы сами по себе в качестве оракулов цен. При низкой ликвидности пулов, сторонние пользователи могут манипулировать ценами.
Тем не менее, в пулах Curve предусмотрена защита от некоторых форм манипулирования. Цена оракула обновляется только один раз за блок, что делает ее более устойчивой к манипуляциям в результате злонамеренной торговой деятельности в пределах одного блока.
Если вы полагаетесь на оракулы на цепочке, безопаснее всего сравнивать результаты нескольких оракулов и возвращать транзакцию, если какой-либо из них ведет себя необычно.
Пулы Stableswap также содержат функцию ценового оракула, которая также отображает скользящее среднее значение последних цен.
В пулах Stableswap нет понятия шкалы цен.
В LLAMMA можно использовать внешние ценовые оракулы.
Награды
Ликвидность для заемщиков обеспечивается в хранилищах стандарта ERC-4626. Эти хранилища приносят доход, то есть пользователю не нужно требовать вознаграждения за предоставление своих активов в долг. Токены, которые они получают за внесение активов в хранилище, растут в цене, поскольку баланс базового актива увеличивается за счет комиссий.
После внесения средств в хранилище, при желании, пользователь может застейкать свои токены хранилища в соответствующий калибр “Gauge” (если таковой имеется) на вкладке «Stake». Это позволит пользователю получить награды (Rewards APR), если таковые имеются.
Стейкая токены хранилища, вы отправляете их в Rewards Gauge, сохраняете право собственности, но они не подлежат передаче, пока застейканы.
Годж (Gauge) - смарт-контракт, который измеряют активность пользователей, например, объем предоставленной ликвидности в пулы. Например, в Curve Finance "LiquidityGauge" измеряет, сколько долларов пользователь вложил в пул, и на основе этого распределяет награды
На Curve Finance инфляция CRV идет пользователям, которые стейкают в Reward Gauges на пулах и рынках кредитования.
Некоторые специальные годжи существуют для финансирования конкретных инициатив, например, разработки Vyper (veFunder-vyper).
DAO должно проголосовать и одобрить каждый новый добавленный Gauge, который, имеет вес и тип. Вес показывает, сколько ежедневной CRV-инфляции будет выделено на награды.
Проголосовать можно по этому адресу: curve.fi/dao/ethereum/gauges/.
Пользователи с veCRV могут направить свою силу голоса на пул, рынок кредитования или другой показатель, который, по их мнению, должен получить больше всего CRV.
В основной сети Ethereum веса и вознаграждения обновляются каждый четверг в 00:00 UTC.
Вознаграждения на L2 отстают от вознаграждений в Ethereum mainnet на 1 неделю.
Первый шаг к получению вознаграждения - определение количества CRV, необходимого для блокировки. Для каждого пула существуют свои требования, поэтому некоторые пулы легче разгонять, чем другие. Это зависит от суммы, которую заблокировали другие, и от объема gauge-ликвидности.
Калькулятор буста
Определив, сколько и на какой срок нужно заблокировать, введите сумму для блокировки и выберите срок действия: curve.fi/dao/#/ethereum/vecrv/create.
Применение буста и буст-инфо. Перейдите на страницу нужного пула и нажмите на вкладку Your Details. На этой вкладке вы можете увидеть текущий буст вознаграждения.
Калибровочная масса (gauge weights) означает, сколько процентов от ежедневной инфляции CRV он получает.
На этой странице вы можете ознакомиться с относительным весом каждого индикатора ликвидности: curve.fi/dao/ethereum/gauges/.
Масштабирование цен
Пулы Curve v2 динамически смещают ликвидность, чтобы максимизировать глубину (т. е. минимизировать проскальзывание) вблизи текущих рыночных цен. Это достигается путем взятия текущей EMA (экспоненциальной скользящей средней) недавних обменных курсов пула («внутренний оракул») и повторного центрирования ликвидности на EMA только тогда, когда это финансово обоснованно для поставщиков ликвидности LP.
Этот процесс можно рассматривать как «перепривязку» (“re-pegging”) кривой, чтобы точка максимальной концентрации ликвидности (т. е. центр кривой) соответствовала EMA.
«Шкала цен» и «оракул цен» могут отличаться, поскольку шкалы цен обновляются только при выполнении определенных условий.
Масштабирование цен регулируется тремя параметрами.
- параметр времени полураспада MA корректирует время полураспада ценового оракула EMA. Это контролирует, насколько сглажен во времени ценовой оракул, причем большие значения увеличивают сглаживание.
- параметры разрешенной дополнительной прибыли и шага корректировки определяют, когда разрешается повторная привязка (т.е. обновление «шкалы цен» до уровня «цены оракула»). В частности, перегруппировка происходит только в том случае, если:
- Текущая прибыль больше половины возможной прибыли (т.е. прибыли, не учитывающей убытки от “перепривязки”) плюс параметр допустимой дополнительной прибыли
- Корректировка шкалы цен больше, чем параметр шага корректировки (в единицах логарифмического евклидова расстояния между текущими и обновленными ценами)
- Изменение шкалы цен сохранит по крайней мере половину прибыли пула
Ссылки
- Документация
- Блог на русском
- Симулятор поиска оптимальных параметров (комиссии, А, потери при разном количестве N)
Инструменты дополнительные
- Uniswap's Pool Explorer
- Выбор и симулятор доходности пулов: app.metrix.finance/discover
- Uniswap. V3 Calculator & Simulator:
- Uniswap Calculator: poolfish.xyz/calculators/uniswap
- Трекер пулов по стейблам: stableyields.sealaunch.xyz
- Аггрегатор пулов DEX: defi.krystal.app/strategies
- Выбор пулов:
- Arkm
- DexTools
- Трекер ставок лендинга, стейкинга: dor.treehouse.finance
- Голосование и трекинг пулов наград для Curve, Balancer и других протоколов: votemarket.org/curve