自动化做市商(AMM)彻底改变了去中心化金融(DeFi)领域的代币交换方式。像 Uniswap、PancakeSwap 和 Balancer 这样的去中心化交易所(DEX)都采用了 AMM 机制。流动性提供者(LP)可以通过为不同代币对提供流动性来赚取交易手续费。Curve Finance 于 2020 年 1 月推出,以其独特的稳定币交易机制在 DeFi 领域占据重要地位。其主要目标是仅通过包含类似属性资产(如稳定币)的资金池,实现低滑点的代币交换。
Curve StableSwap 是一种自动化做市商协议,使用户能够在同类代币之间进行低滑点、低费用的兑换。流动性提供者可以将代币存入任何 Curve 资金池,并从交易手续费中获得收益。与 Uniswap 主要关注流动性最大化但存在较高滑点风险不同,Curve 的最新版本甚至允许用户在不锚定资产之间进行交换。
StableSwap 的独特之处
与其他去中心化交易所相比,Curve StableSwap 提供了独特的交易体验。例如,在 Uniswap 上交易稳定币需要先将稳定币兑换为 ETH,然后再用 ETH 兑换目标稳定币,这导致两次交易和更高的费用。
Curve StableSwap 的资金池设计让用户无需过多担心交易中的价格影响。由于所有资金池都是 1:1 稳定币池(如 USDT/DAI)或 1:1 合成资产池(如 sETH/ETH),将流动性池限制在相似资产范围内,使得无常损失不再是需要担心的问题。
线性不变性与乘积不变性模型数学解析
StableSwap AMM 模型结合了 Uniswap 的常数乘积公式和线性不变性曲线的优点。要理解这个模型,首先需要了解什么是不变性。
不变性是数学对象在操作或特定变换后保持不变的性质。
线性不变性模型
线性不变性模型表示为:
x + y = C其中 x 和 y 代表池中的代币数量,C 是总和不变常量。
x + y = C
y = C - x常数总和公式对应直线方程,其图形为一条直线。
通过一个例子来理解线性不变性:假设池中有 90 个 X 代币和 90 个 Y 代币,则 C 为:
C = 90 + 90 = 180如果 Alex 想要出售 23 个 X 代币,她会收到多少个 Y 代币?
Alex 出售 X 代币会导致池中 Y 代币数量增加。由于常数必须保持不变,我们需要计算新的 Y 数量。
交易后 Y 代币数量为 67,这意味着她通过交换 X 代币将获得 23 个 Y 代币。
资金池现在有 113 个 X 代币和 67 个 Y 代币。
计算价格:
价格 = Δy / Δx = 23 / 23 = 1汇率为 exactly 1:1 个 X 代币兑换 1 个 Y 代币。
我们计算的价格可以表示为梯度或小交易的极限,其导数价格为:
dy/dx = -1如果图中切线陡峭,意味着用较少的 X 可以获得更多的 Y,即 Y 更便宜;如果切线平缓,则用更多的 X 只能获得较少的 Y,即 Y 更昂贵。
通过推导可以看出,当资金池平衡时,价格等于 1。
线性不变性常数总和公式理论上可以实现零滑点,这也被称为无限杠杆。虽然线性不变性有助于保持价格恒定,但它也可能完全耗尽资金池。
Uniswap AMM 模型
Uniswap AMM 基于常数乘积公式运作:
x * y = k其中 x 和 y 是池中的代币,k 是它们的乘积不变常量。
求解 y 得到曲线方程:
x * y = k
y = k / xUniswap AMM 模型始终确保资金池中始终有流动性。
通过以下例子理解该模型:假设有 95 个 X 代币和 95 个 Y 代币,则 k 为:
k = 95 * 95 = 9025如果 Alice 想购买 19 个 Y 代币,她需要向资金池存入多少 X 代币?
由于 9025 是常数,从流动性池中移除 19 个 Y 代币将剩下 71 个 Y 代币:
x * 71 = 9025
x = 9025 / 71 ≈ 127.11这意味着 X 代币需要从 95 个增加到约 127.11 个以保持常数 k。
计算交易前后的 X 代币差异:
Δx = 127.11 - 95 ≈ 32.11因此,Alice 需要存入约 32.11 个 X 代币才能获得 19 个 Y 代币。
计算每代币价格:
价格 = Δy / Δx = 19 / 32.11 ≈ 0.59因此,1 个 Y 代币成本约为 0.59 个 X 代币。
如果 Alice 进行另一笔 24 个 X 代币兑换 Y 代币的交易:
计算常数乘积不变量:
x * y = (127.11 + 24) * 71 ≈ 151.11 * 71 ≈ 10728.81但 k 应该保持不变为 9025,所以需要重新计算 Y:
y = 9025 / 151.11 ≈ 59.72计算交易前后的 Y 差异:
Δy = 71 - 59.72 = 11.28因此,当交易 24 个 X 代币时,Alice 将获得约 11.28 个 Y 代币。
此交易的价格为:
价格 = Δy / Δx = 11.28 / 24 ≈ 0.471 个 Y 代币的价格约为 0.47 个 X 代币。
经过几次交易后,X 代币价值增加,Y 代币价值减少,导致 Y 代币供应减少,因此 Y 变得更为昂贵以保持 k 不变。Uniswap 中的价格在每笔交易后都会调整。
导数价格为:
dy/dx = -k/x²曲线的图形表示如下,斜率用红线表示:
如果用户继续购买 Y 代币,这意味着池中将有更多的 X 代币,Y 的供应量减少。根据订单簿模型,我们购买 Y 代币越多,就越沿着曲线上移。价格和数量由交易者设定。
在 Uniswap AMM 中,常数乘积不变量 xy = k 和曲线的深度指示了滑点程度,深度反映了资金池的流动性。
StableSwap AMM 模型
现在我们来研究 StableSwap 的模型。
到目前为止,我们已经研究了线性不变性没有滑点,但这不是理想的情况,因为这样的资金池可能随时耗尽代币。另一方面,常数乘积不变性是自我调节的,但为了使资金池恢复平衡,交易会变得昂贵。
因此,StableSwap 结合了两种方法,找到了中间道路:资金池既不会耗尽资产,交易者也不必面对昂贵的交易。
在 StableSwap 中,当资金池平衡且价格为 1 美元时,资金池可以沿着曲线 x+y=k 上下滑动。当资金池变得不平衡时,它会转换为乘积不变性,导致交易变贵。StableSwap 在其资金池中保留了不同的稳定币以保持资金池平衡。公式看起来更像 x+y+z=k 和 xyz=k。
StableSwap AMM 模型表示为:
A * (x + y) + (x * y) = A * D + (D/2)^2AMM 是线性不变性和乘积不变性的总和。
例如,对于 USDC+DAI 资金池:
A * (USDC + DAI) + (USDC * DAI) = A * D + (D/2)^2推广到一般形式:
A * sum(x_i) + product(x_i) = A * n * D + (D/n)^n其中 n 表示代币数量。
将方程推广到 y 的形式:
A * (x + y) + x * y = A * D + (D/2)^2对上述方程求导,我们得到:
dy/dx = - [A + y] / [A + x]上述方程的图形表示如下:
该表示类似于 x*y=k 曲线,因为我们没有放大线性不变部分。放大的原因是它有助于放大公式的线性不变部分,从而实现低滑点。随着我们增加放大器,绑定曲线将看起来更像线性不变式。
因此,通过在两边乘以 χ(chi),数学表示变为:
χ * A * (x + y) + x * y = χ * A * D + (D/2)^2这有助于更关注方程的低滑点部分。这通常被称为放大绑定曲线。
对方程求导:
dy/dx = - [χ * A + y] / [χ * A + x]当 χ=0.53 时的方程图形:
理想情况下,在 StableSwap 中,曲线是线性的,因此可以称为 X 和 Y 的函数:
- 如果资金池平衡耗尽,χ 将减小,曲线将开始看起来更像乘积不变曲线
- 如果资金池平衡,χ 将增加,曲线将看起来像零滑点的线性不变曲线
我们将总和不变式乘以 D,使 χ 不依赖于池中的代币数量。
总和不变式公式变为(其中 n 表示维度):
sum(x_i) = DStableSwap 公式将变为:
A * D + product(x_i) = A * n * D + (D/n)^n为了使公式适应各种情况,我们在 χ 的公式中添加一个固定常数 A:
χ = A * D^(n-1) * n^n当资金池平衡时(X=25,Y=25)的值:
χ = A * 50^(1) * 2^2 = A * 50 * 4 = 200A当资金池不平衡时(X=3,Y=50):
χ = A * 53^(1) * 2^2 = A * 53 * 4 = 212A因此,当资金池开始变得不平衡时,曲线开始看起来像乘积不变曲线或 Uniswap 曲线。而 A 是协议选择的常数,称为放大系数。
现在 StableSwap 不变量变为:
A * n^n * sum(x_i) + product(x_i) = A * n^n * D + (D/n)^n因此,StableSwap 的通用模型是:
A * n^n * D + product(x_i) = A * n^n * D + (D/n)^n总结
StableSwap 作为 Uniswap 和其他 DEX 的竞争者进入市场,为用户提供了低费用交易的机会,并允许他们直接在稳定币之间进行交易。其 AMM 设计精巧,确保低滑点或无滑点,并保持资金池中的流动性平衡。然而,如果我们更仔细地观察 AMM 模型,会发现它们仅为流动性而设计,导致市场中的交易昂贵且滑点风险高。
常见问题
Curve StableSwap 的主要优势是什么?
Curve StableSwap 主要优势在于专为稳定币和类似资产设计,通过结合线性不变性和乘积不变性模型,实现低滑点交易。这使得在稳定币之间兑换时,用户能够获得更优的价格,同时流动性提供者面临的无常损失风险较低。
StableSwap 与 Uniswap 的主要区别是什么?
主要区别在于算法模型和适用资产类型。Uniswap 使用常数乘积公式,适合波动性较大的代币交易,但滑点较高;而 StableSwap 采用混合模型,专门为稳定币设计,在相同资产类型的交易中提供更低滑点和更稳定的价格。
什么是放大系数(A)在 StableSwap 中的作用?
放大系数(A)决定资金池在平衡状态下的曲线形状。较高的 A 值使曲线更接近线性不变性,实现更低滑点;当资金池不平衡时,A 值减小,曲线变得更像乘积不变性,防止资金池耗尽。该系数由协议设定,影响交易体验和流动性效率。
如何成为 Curve 流动性提供者?
成为 Curve 流动性提供者需要将资产存入指定的资金池。通过提供流动性,用户可以赚取交易手续费奖励。选择资产相似性高的资金池可以减少无常损失风险,同时获得稳定收益。建议在参与前了解相关风险和池特性。
StableSwap 是否支持非稳定币交易?
是的,Curve 的最新版本已经扩展支持范围,包括一些非锚定资产交易,如封装资产和波动性较小的代币。然而,核心优势仍然体现在稳定币和类似资产交易中,非稳定币交易可能面临较高滑点。
无常损失在 Curve 平台上如何表现?
由于 Curve 资金池通常由价格相关性高的资产组成,无常损失相对传统 AMM 平台较低。当池中资产价格保持相对稳定时,流动性提供者的风险较小。但在极端市场条件下,仍可能发生无常损失,需要谨慎管理。