自动做市商(AMM)是一种去中心化交易所(DEX)的核心机制,取代了传统交易所的订单簿,通过流动性池和数学公式(如 Uniswap 的恒定乘积公式)实现代币交易。
核心组件:流动性池(Liquidity Pool)
流动性池是一个智能合约,存储两种或多种代币(如 ETH/USDT),由 流动性提供者(Liquidity Providers, LP) 提供资金。
池子中的代币用于交易,用户通过与池子交互完成买卖,而非直接与其他用户匹配。
创建:
LP 将两种代币按一定比例(如 1 ETH = 2000 USDT)存入池子。
池子发行 LP 代币 给 LP,代表其在池子中的份额,用于提取本金和交易费用收益。
价格机制:
价格由池中代币的 相对比例 决定。例如,池中有 10 ETH 和 20,000 USDT,ETH 价格为 20,000 ÷ 10 = 2,000 USDT。
交易时,池子根据数学公式(如 x*y=k)调整代币数量,保持公式成立。
交易流程(以 Uniswap 为例)
用户想用 1 ETH 换 USDT。
池子接收 1 ETH,ETH 数量增加(x 增加)。
根据恒定乘积公式 x*y=k,USDT 数量减少(y 减少)。
用户收到减少的 USDT 量(扣除交易费用,通常 0.3%)。
交易费用累积到池子中,LP 按比例分享。
关键特性
滑点(Slippage):大额交易会显著改变池子代币比例,导致价格偏离初始预期。例如,买入大量 USDT 会推高其价格。
无常损失(Impermanent Loss):当池子代币价格偏离初始比例时,LP 的资产价值可能低于直接持有代币。
自动化:无需人工做市,价格由算法实时调整。
恒定乘积公式
Uniswap 的核心公式是:
这个公式确保池中两种代币的总价值(以数量乘积表示)保持恒定。交易时,用户输入一种代币,池子会根据公式自动调整另一种代币的输出量,同时保持x * y = k。
流动性池的运作细节
LP 的激励:
LP 提供流动性,赚取交易费用(Uniswap 通常为 0.3%)。
LP 可随时存入或提取资金,但提取时需归还 LP 代币。
池子平衡:
池子通过公式自动调整价格,无需外部干预。
套利者会利用市场价与池子价的差异,保持池子价格与外部市场一致。
多资产池:
如 Balancer,支持多代币池,权重可自定义(如 60% ETH、40% USDT)。
改进版本:
Uniswap V3:引入 集中流动性,LP 可指定价格区间(如仅在 1900-2100 USDT/ETH 提供流动性),提高资本效率。
Curve:使用恒定和公式,优化稳定币交易,减少滑点。
优缺点
优点:
-
去中心化:无需中介,任何人都可提供流动性或交易。
-
简单高效:公式简单,计算成本低,适合链上实现。
-
流动性:通过激励 LP,池子可保持持续流动性。
缺点:
-
滑点问题:在流动性不足或交易量大时,价格波动明显。
-
无常损失:LP 在价格波动大的市场中可能亏损。
-
低资本效率:相比订单簿,资金利用率较低(Uniswap V3 通过集中流动性改进此问题)。
实际例子
总结
Uniswap 的恒定乘积公式通过简单数学模型实现去中心化交易,平衡了流动性和价格发现,但面临滑点和无常损失挑战。其优雅的设计奠定了 AMM 在 DeFi 中的基础,V3 等改进进一步优化了效率。