Solana生态AMM机制全解析:CPMM、CLMM与DLMM对比

Solana生态中的自动做市商机制探究

在Web3行业中,去中心化金融(DeFi)产品占据了市场的主导地位。其中,自动做市商(AMM)作为关键环节,极大推动了Web3金融领域的创新。本文将介绍Solana生态中几个重要的AMM实现,希望能为流动性提供者选择投资策略提供参考。

Solana生态AMM调研:高流动性背后的底层代码

恒定乘积做市商(CPMM)

CPMM是最基本的AMM实现,在许多产品中得到应用。以某平台推出的基于恒定乘积的AMM为例,其核心原理是池子中两种代币的供应量具有固定乘积:X * Y = k。

当用户为池子添加流动性时,系统会自动为用户创建关联账户并发放LP Token,用于证明该用户持有池子的份额。提取流动性时,相应的LP Token会被销毁。

CPMM的链上程序使用Anchor开发。当用户交换代币时,会触发swap相关指令。以USDC和TRUMP代币交换为例,可通过TRUMP-USDC池子进行。

Solana生态AMM调研:高流动性背后的底层代码

在swap操作中,具体能换到多少目标代币,是通过恒定乘积公式计算得出:

TokenX和TokenY在总量各自变化后,其乘积应保持不变。通过数学转换,可得到目标代币数量的计算公式。需注意,这里的计算不包含手续费,手续费在前置逻辑中已扣除。

Solana生态AMM调研:高流动性背后的底层代码

集中流动性做市商(CLMM)

CLMM类似于某知名DEX的V3版本,每个代币对有多个费用层级,可创建对应层级的池子。它继承了tick、多费率层级、集中流动性等概念。

与CPMM类似,由于Solana链的特性,CLMM不需要为每个池子单独部署合约,也没有工厂合约概念。

Solana生态AMM调研:高流动性背后的底层代码

CLMM允许流动性提供者在注入资金时选定价格范围,资金仅在所选范围内分布。也可以只注入某一种代币,提供单边流动性,类似传统金融中的限价单。

一般来说,价格波动小的池子倾向于选择小范围;波动剧烈的池子则选择大范围。这样可以尽量避免当前价格脱离所选范围,减少无常损失。

集中流动性虽然提高了资金利用率,但也对流动性提供者的金融意识提出了更高要求。如应对不力,链上频繁波动可能导致严重的无常损失。

Solana生态AMM调研:高流动性背后的底层代码

动态流动性做市商(DLMM)

DLMM是某平台推出的AMM产品,属于Uniswap V3的一种变体,与CLMM相似。DLMM也允许将资金集中在当前价格附近的一定范围内,但在具体实现上有所不同,并提供了一些特色功能。

DLMM引入了Bin的概念,池子从基础价格开始,每隔一小段Bin step作为一个Bin存在。同一Bin内的交易享受零滑点,这可以极大增加交易量和成功率,理论上流动性提供者能收获更多交易费用。

Solana生态AMM调研:高流动性背后的底层代码

与CLMM类似,池子中的代币在当前价格两侧分布,一个代币仅需提供单边流动性。当前激活的Bin存在两种代币,其他Bin则在两侧分布,各自仅存在单个代币。

Solana生态AMM调研:高流动性背后的底层代码

DLMM提供了三种流动性策略:Spot、Curve和Bid Ask。Spot策略最普适;Curve适合价格变化小的池子,如稳定币对;Bid Ask则适合价格波动大的池子,但需要频繁调整仓位。

Solana生态AMM调研:高流动性背后的底层代码

总结

作为Web3金融领域的重要组成部分,AMM通过其独特机制和创新,推动了去中心化金融的普及和发展。随着技术进步和生态完善,AMM有望在未来发挥更大作用,进一步改变传统金融格局。

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 7
  • 分享
评论
0/400
破产艺术家vip
· 6小时前
牛啊很硬核
回复0
币圈鸡汤哥vip
· 7小时前
代码确实狠力害
回复0
GateUser-9ad11037vip
· 7小时前
sol是未来之星
回复0
汤米老师1vip
· 7小时前
实用性很强
回复0
BearMarketBardvip
· 7小时前
图表写得很清晰
回复0
割肉艺术家vip
· 7小时前
效率很高的机制
回复0
gas费烧烤摊vip
· 7小时前
实用干货给我冲
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)