去中心化交易所是怎样撮合交易的?

自动做市商(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 等改进进一步优化了效率。