返回博客列表

Uniswap 恒定乘积做市商原理详解

web3
UniswapDeFiAMM智能合约

⚠️ 免责声明:本文内容仅供技术学习与研究参考,不构成任何投资建议。请读者独立思考,谨慎决策。

Uniswap 恒定乘积做市商原理详解

Uniswap 作为 DeFi 领域最具影响力的去中心化交易所(DEX),其核心创新在于自动做市商机制。本文将深入剖析其背后的数学原理。

什么是 AMM?

传统交易所采用订单簿模式,买卖双方挂单撮合。而 AMM 则使用数学公式自动计算交易价格,无需对手方即可完成交易。

Uniswap 采用的是恒定乘积做市商模型,其核心公式为:

xy=kx \cdot y = k

其中:

  • xx:池中代币 A 的数量
  • yy:池中代币 B 的数量
  • kk:恒定乘积(流动性常数)

恒定乘积公式的几何意义

xy=kx \cdot y = k 可以推导出 y=kxy = \frac{k}{x},这是一条双曲线。

曲线上的每一个点代表池子的一个状态。交易发生时,池子状态沿着曲线移动,但始终满足 xy=kx \cdot y = k

交易价格如何确定?

假设用户用 Δx\Delta x 个代币 A 购买代币 B,交易后:

(x+Δx)(yΔy)=k(x + \Delta x) \cdot (y - \Delta y) = k

解得用户获得的代币 B 数量:

Δy=ykx+Δx=yxyx+Δx\Delta y = y - \frac{k}{x + \Delta x} = y - \frac{x \cdot y}{x + \Delta x}

价格滑点

AMM 的价格不是固定的,而是取决于交易规模。交易量越大,滑点越大:

图中横轴为输入代币数量,纵轴为输出代币数量。可以看到曲线逐渐平缓,说明大额交易的边际收益递减。

无常损失(Impermanent Loss)

流动性提供者面临的主要风险是无常损失。当池中代币价格相对外部市场发生变化时,LP 的资产价值可能低于单纯持有。

假设初始状态 x1=y1=100x_1 = y_1 = 100,价格 P1=1P_1 = 1。若价格变为 P2=4P_2 = 4

y2x2=4,x2y2=10000\frac{y_2}{x_2} = 4, \quad x_2 \cdot y_2 = 10000

解得 x2=50,y2=200x_2 = 50, y_2 = 200

对比持有与提供流动性的价值:

策略代币 A代币 B总价值(以 A 计)
持有100100125
LP50200100

无常损失 = 1001251=20%\frac{100}{125} - 1 = -20\%

无常损失曲线

横轴为价格比率(新价格/初始价格),纵轴为无常损失百分比。价格偏离 1 越远,损失越大。

集中流动性(Uniswap v3)

Uniswap v3 引入了集中流动性概念,允许 LP 在指定价格区间内提供流动性:

(x+LPb)(y+LPa)=L2(x + \frac{L}{\sqrt{P_b}})(y + L \cdot \sqrt{P_a}) = L^2

这使得资金效率大幅提升,但也增加了无常损失风险。

总结

恒定乘积公式 xy=kx \cdot y = k 看似简单,却蕴含了深刻的金融逻辑:

  1. 自动定价:无需预言机,价格由池内资产比例决定
  2. 无限流动性:任何价格点都有流动性,只是深度不同
  3. 套利驱动平衡:价格偏离时套利者会将其拉回均衡

理解这一数学模型,是深入 DeFi 世界的关键一步。