В данной статье будут представлены несколько важных реализаций AMM в экосистеме Solana.
Автор: ZAN
В текущем состоянии индустрии Web3 продукты, связанные с DeFi, занимают абсолютную долю рынка. В этом контексте AMM (Automated Market Maker, автоматический маркет-мейкер) играет ключевую роль и является мощным двигателем изменений в области финансов Web3. В этой статье будут представлены несколько важных реализаций AMM в экосистеме Solana, надеюсь, это поможет LP (Liquidity Provider, поставщикам ликвидности) выбрать свою инвестиционную стратегию.
CPMM
CPMM ( Постоянный продукт маркетмейкера) как наиболее базовая реализация AMM используется во многих продуктах. Здесь в качестве примера используется AMM на основе постоянного произведения, выпущенный Raydium. Постоянное произведение означает, что количество двух токенов в пуле имеет фиксированное произведение: X * Y = k.
Для поставщиков ликвидности, когда кто-либо добавляет ликвидность в пул (добавляет активы), CPMM автоматически создает связанный аккаунт для адреса кошелька и выдает LP Token (каждая пара токенов имеет свой собственный Mint LP Token). Этот LP Token используется для подтверждения доли, которую этот адрес кошелька имеет в определенном пуле, и будет уничтожен при выводе ликвидности поставщиком.
Онлайн-программа CPMM разработана с использованием Anchor, исходный код программы можно найти. Давайте кратко подтвердим, как она реализует постоянное произведение.
Во-первых, когда пользователи используют CPMM Raydium для обмена токенов, будут активированы команды, связанные с обменом.
Например (только для иллюстрации, данная статья не несет ответственности за любые токены): когда пользователь хочет обменять USDC на TRUMP, он может сделать это через пул TRUMP-USDC.
Например, мы рассмотрим эту сделку. Для простоты давайте проигнорируем другие команды в сделке и посмотрим только на часть Raydium. Найдите Raydium CPMM: swapBaseInput:
!
В Input Accounts мы можем увидеть, что входной токен - это USDC, а выходной токен - TRUMP. В экосистеме Solana AMM LP Pair можно просто представить через Token Account, без необходимости создания и развертывания нового контрактного приложения (например, часто используемого фабричного контракта в Ethereum). Когда происходит сделка, взаимодействие происходит напрямую с CPMM программой Raydium, программа Solana будет изменять состояние соответствующего Token Account с помощью переданного адреса пула, адреса токена и т.д., чтобы выполнить операцию swap.
Например, команда swapBaseInput, код которой можно найти здесь. После ряда предварительных проверок, конкретное количество целевых токенов, которое может быть обменяно, было рассчитано в ConstantProductCurve.swap_base_input_without_fees:
!
В используемой формуле:
!
То есть после изменения общего количества TokenX и TokenY их произведение должно оставаться неизменным. Левая часть формулы — это произведение после изменений, правая часть — произведение до изменений.
!
Указанное уравнение после математического преобразования позволяет получить формулу преобразования Δy (то есть количество токенов y, которые мы можем обменять):
!
Это часть кода, где delta_y = (delta_x * y) / (x + delta_x). Обратите внимание, что в этом расчете не учитываются комиссии, они уже были вычтены в предварительной логике swap_base_input.
КЛММ
CLMM ( Концентрированный рыночный маркет-мейкер) является AMM, разработанным Raydium. Он похож на Uniswap V3, каждый торговый токен имеет несколько уровней комиссий, что позволяет создавать соответствующий уровень пула.
Поскольку реализация CLMM основывается на Uniswap V3, при изучении ее многие концепции и способы реализации можно заимствовать из реализации Uniswap. Она также унаследовала концепции Uniswap, такие как tick, многоуровневые комиссии, концентрированная ликвидность и т.д. Более подробную информацию можно найти в курсе разработки DEX, представленном ZAN: DEX Development Practice - Uniswap Code Analysis - How Uniswap works - ZAN
Однако стоит отметить, что, подобно CPMM, из-за особенностей сети Solana, Raydium CLMM не требует развертывания отдельного контракта для каждого пула, поэтому концепция фабричного контракта отсутствует. Это отличается от Uniswap.
CLMM позволяет поставщикам ликвидности выбирать диапазон цен при внесении средств, средства будут распределены только в выбранном диапазоне:
!
Для централизованных ликвидных пулов токены находятся по обе стороны от текущей цены. Выбранный на рисунке диапазон цен включает текущую цену, поэтому средства будут распределены между двумя токенами в пуле.
Мы также можем вводить только один вид токена, чтобы предоставить так называемую одностороннюю ликвидность (как показано на рисунке ниже). Это отчасти похоже на лимитный ордер в традиционных финансовых моделях, где средства LP используются только тогда, когда цена токена достигает определенного диапазона, хотя в этой модели также есть больше рисков, которые необходимо учитывать.
!
В общем, для пулов с небольшими колебаниями цены поставщики ликвидности (LP) склонны выбирать более узкий диапазон; наоборот, для пулов с очень сильными колебаниями цен они склонны выбирать более широкий диапазон. Это делается для того, чтобы максимально избежать выхода текущей цены за пределы выбранного ценового диапазона, что может привести к слишком большим непостоянным убыткам.
Необходимо отметить, что концентрированная ликвидность, хотя и позволяет LP более эффективно использовать свои средства, также предъявляет более высокие требования к финансовой грамотности LP, который должен более активно управлять своей ликвидностью. Если LP не справится с этим, частые колебания на блокчейне могут легко привести к серьезным непостоянным убыткам для LP.
DLMM
DLMM ( Динамический рыночный создатель ликвидности ) - это продукт AMM, выпущенный Meteora, он также является разновидностью Uniswap V3 и очень похож на упомянутый выше CLMM. Однако DLMM имеет некоторые отличия в конкретной реализации и предоставляет несколько уникальных функций.
В DLMM представлена концепция Bin, где пул начнёт с базовой цены, и каждые несколько шагов Bin step будет существовать как отдельный Bin. Если сделка происходит внутри одного и того же Bin, трейдеры будут наслаждаться нулевым проскальзыванием. Это может значительно увеличить объем торговли и процент успешных сделок, теоретически LP сможет получить больше торговых сборов.
!
Подобно CLMM, токены в пуле также распределены по обе стороны от текущей цены, и для одного токена требуется предоставить одностороннюю ликвидность. Но согласно концепции Bin, активный Bin (который указывает на текущую цену обмена) имеет два токена. То есть:
Текущий активный бин: в нем присутствуют два токена, обмен токенов в текущем бине будет производиться по фиксированной цене и с 0 проскальзыванием;
Другие Бины: располагаются по обе стороны от активированного Бина, и существуют только в виде одного токена.
Когда объем токенов в активном Bin изменяется, если у одной из сторон токены уменьшаются до 0, DLMM установит текущий активный Bin в соответствии с реальной ситуацией в пуле на следующий Bin слева или справа. Это будет способствовать изменению цен в пуле.
При предоставлении ликвидности в LP, DLMM предлагает 3 стратегии: Spot, Curve и Bid Ask.
!
Среди них Spot является самым универсальным, практически все ликвидные пулы подходят, это можно считать самой простой стратегией ликвидности.
Curve больше подходит для пулов с очень маленькими изменениями цен, таких как пары стабильных монет. Ценовые колебания в этих пулах очень малы, как и говорит его форма, сосредоточив средства LP в этом диапазоне, можно максимально использовать торговые сборы.
Ставка и предложение лучше подходят для тех пулов, где колебания цен очень велики. Люди всегда склонны проводить больше арбитражных сделок в таких пулах, и цена может быть трудно сосредоточена в каком-либо узком диапазоне. Эта стратегия обычно требует от поставщиков ликвидности частой корректировки своих позиций, чтобы избежать выхода цен за пределы установленного диапазона средств. Поскольку это требует суждений о рынке, это обычно не просто.
Итог
AMM как важная составляющая Web3 финансовой сферы, благодаря своим уникальным механизмам и инновациям, способствует распространению и развитию децентрализованных финансов. С постоянным развитием технологий и совершенствованием экосистемы, AMM ожидается, что в будущем она сыграет еще более значимую роль, изменив традиционные финансовые структуры.
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
Исследование AMM экосистемы Solana
Автор: ZAN
В текущем состоянии индустрии Web3 продукты, связанные с DeFi, занимают абсолютную долю рынка. В этом контексте AMM (Automated Market Maker, автоматический маркет-мейкер) играет ключевую роль и является мощным двигателем изменений в области финансов Web3. В этой статье будут представлены несколько важных реализаций AMM в экосистеме Solana, надеюсь, это поможет LP (Liquidity Provider, поставщикам ликвидности) выбрать свою инвестиционную стратегию.
CPMM
CPMM ( Постоянный продукт маркетмейкера) как наиболее базовая реализация AMM используется во многих продуктах. Здесь в качестве примера используется AMM на основе постоянного произведения, выпущенный Raydium. Постоянное произведение означает, что количество двух токенов в пуле имеет фиксированное произведение: X * Y = k.
Для поставщиков ликвидности, когда кто-либо добавляет ликвидность в пул (добавляет активы), CPMM автоматически создает связанный аккаунт для адреса кошелька и выдает LP Token (каждая пара токенов имеет свой собственный Mint LP Token). Этот LP Token используется для подтверждения доли, которую этот адрес кошелька имеет в определенном пуле, и будет уничтожен при выводе ликвидности поставщиком.
Онлайн-программа CPMM разработана с использованием Anchor, исходный код программы можно найти. Давайте кратко подтвердим, как она реализует постоянное произведение.
Во-первых, когда пользователи используют CPMM Raydium для обмена токенов, будут активированы команды, связанные с обменом.
Например (только для иллюстрации, данная статья не несет ответственности за любые токены): когда пользователь хочет обменять USDC на TRUMP, он может сделать это через пул TRUMP-USDC.
Например, мы рассмотрим эту сделку. Для простоты давайте проигнорируем другие команды в сделке и посмотрим только на часть Raydium. Найдите Raydium CPMM: swapBaseInput:
!
В Input Accounts мы можем увидеть, что входной токен - это USDC, а выходной токен - TRUMP. В экосистеме Solana AMM LP Pair можно просто представить через Token Account, без необходимости создания и развертывания нового контрактного приложения (например, часто используемого фабричного контракта в Ethereum). Когда происходит сделка, взаимодействие происходит напрямую с CPMM программой Raydium, программа Solana будет изменять состояние соответствующего Token Account с помощью переданного адреса пула, адреса токена и т.д., чтобы выполнить операцию swap.
Например, команда swapBaseInput, код которой можно найти здесь. После ряда предварительных проверок, конкретное количество целевых токенов, которое может быть обменяно, было рассчитано в ConstantProductCurve.swap_base_input_without_fees:
!
В используемой формуле:
!
То есть после изменения общего количества TokenX и TokenY их произведение должно оставаться неизменным. Левая часть формулы — это произведение после изменений, правая часть — произведение до изменений.
!
Указанное уравнение после математического преобразования позволяет получить формулу преобразования Δy (то есть количество токенов y, которые мы можем обменять):
!
Это часть кода, где delta_y = (delta_x * y) / (x + delta_x). Обратите внимание, что в этом расчете не учитываются комиссии, они уже были вычтены в предварительной логике swap_base_input.
КЛММ
CLMM ( Концентрированный рыночный маркет-мейкер) является AMM, разработанным Raydium. Он похож на Uniswap V3, каждый торговый токен имеет несколько уровней комиссий, что позволяет создавать соответствующий уровень пула.
Поскольку реализация CLMM основывается на Uniswap V3, при изучении ее многие концепции и способы реализации можно заимствовать из реализации Uniswap. Она также унаследовала концепции Uniswap, такие как tick, многоуровневые комиссии, концентрированная ликвидность и т.д. Более подробную информацию можно найти в курсе разработки DEX, представленном ZAN: DEX Development Practice - Uniswap Code Analysis - How Uniswap works - ZAN
Однако стоит отметить, что, подобно CPMM, из-за особенностей сети Solana, Raydium CLMM не требует развертывания отдельного контракта для каждого пула, поэтому концепция фабричного контракта отсутствует. Это отличается от Uniswap.
CLMM позволяет поставщикам ликвидности выбирать диапазон цен при внесении средств, средства будут распределены только в выбранном диапазоне:
!
Для централизованных ликвидных пулов токены находятся по обе стороны от текущей цены. Выбранный на рисунке диапазон цен включает текущую цену, поэтому средства будут распределены между двумя токенами в пуле.
Мы также можем вводить только один вид токена, чтобы предоставить так называемую одностороннюю ликвидность (как показано на рисунке ниже). Это отчасти похоже на лимитный ордер в традиционных финансовых моделях, где средства LP используются только тогда, когда цена токена достигает определенного диапазона, хотя в этой модели также есть больше рисков, которые необходимо учитывать.
!
В общем, для пулов с небольшими колебаниями цены поставщики ликвидности (LP) склонны выбирать более узкий диапазон; наоборот, для пулов с очень сильными колебаниями цен они склонны выбирать более широкий диапазон. Это делается для того, чтобы максимально избежать выхода текущей цены за пределы выбранного ценового диапазона, что может привести к слишком большим непостоянным убыткам.
Необходимо отметить, что концентрированная ликвидность, хотя и позволяет LP более эффективно использовать свои средства, также предъявляет более высокие требования к финансовой грамотности LP, который должен более активно управлять своей ликвидностью. Если LP не справится с этим, частые колебания на блокчейне могут легко привести к серьезным непостоянным убыткам для LP.
DLMM
DLMM ( Динамический рыночный создатель ликвидности ) - это продукт AMM, выпущенный Meteora, он также является разновидностью Uniswap V3 и очень похож на упомянутый выше CLMM. Однако DLMM имеет некоторые отличия в конкретной реализации и предоставляет несколько уникальных функций.
В DLMM представлена концепция Bin, где пул начнёт с базовой цены, и каждые несколько шагов Bin step будет существовать как отдельный Bin. Если сделка происходит внутри одного и того же Bin, трейдеры будут наслаждаться нулевым проскальзыванием. Это может значительно увеличить объем торговли и процент успешных сделок, теоретически LP сможет получить больше торговых сборов.
!
Подобно CLMM, токены в пуле также распределены по обе стороны от текущей цены, и для одного токена требуется предоставить одностороннюю ликвидность. Но согласно концепции Bin, активный Bin (который указывает на текущую цену обмена) имеет два токена. То есть:
Когда объем токенов в активном Bin изменяется, если у одной из сторон токены уменьшаются до 0, DLMM установит текущий активный Bin в соответствии с реальной ситуацией в пуле на следующий Bin слева или справа. Это будет способствовать изменению цен в пуле.
При предоставлении ликвидности в LP, DLMM предлагает 3 стратегии: Spot, Curve и Bid Ask.
!
Среди них Spot является самым универсальным, практически все ликвидные пулы подходят, это можно считать самой простой стратегией ликвидности.
Curve больше подходит для пулов с очень маленькими изменениями цен, таких как пары стабильных монет. Ценовые колебания в этих пулах очень малы, как и говорит его форма, сосредоточив средства LP в этом диапазоне, можно максимально использовать торговые сборы.
Ставка и предложение лучше подходят для тех пулов, где колебания цен очень велики. Люди всегда склонны проводить больше арбитражных сделок в таких пулах, и цена может быть трудно сосредоточена в каком-либо узком диапазоне. Эта стратегия обычно требует от поставщиков ликвидности частой корректировки своих позиций, чтобы избежать выхода цен за пределы установленного диапазона средств. Поскольку это требует суждений о рынке, это обычно не просто.
Итог
AMM как важная составляющая Web3 финансовой сферы, благодаря своим уникальным механизмам и инновациям, способствует распространению и развитию децентрализованных финансов. С постоянным развитием технологий и совершенствованием экосистемы, AMM ожидается, что в будущем она сыграет еще более значимую роль, изменив традиционные финансовые структуры.