当前位置: 首页 > news >正文

深入解析AMM交易轨道:从恒定乘积到加权乘积的数学原理与应用

1. 从流动性池到交易轨道:一个被忽视的数学视角

如果你在DeFi领域待过一段时间,肯定对AMM(自动做市商)不陌生。Uniswap V2的恒定乘积公式x * y = k, 几乎成了这个领域的“Hello World”。我们习惯了在DEX上点击“兑换”,看着滑点预估,然后完成交易。但你是否想过,当你点击“兑换”按钮,用1个ETH换取一定数量的USDC时,这个价格到底是怎么算出来的?更深入一步,这个兑换过程,在数学上描绘出了一条怎样的“路径”?这条路径的性质,又决定了我们最终能拿到多少代币,以及池子会承受多大的瞬时价格冲击?这就是“交易轨道”要回答的问题。

大多数文章和文档会直接告诉你公式,比如Δy = (k / (x + Δx)) - y。这没错,但它更像是一个“黑箱”输出。作为一个在量化设计和协议分析中踩过无数坑的从业者,我越来越意识到,理解交易背后的连续数学过程——也就是“轨道”——至关重要。它不仅是学术上的优雅,更是实战中优化交易策略、设计新AMM曲线、甚至进行套利和风险管理的基石。今天,我们就抛开表面的公式,深入AMM的数学腹地,一起推导从最经典的对数价格轨道,到更具一般性的加权乘积不变量所定义的轨道。你会发现,Uniswap V2/V3、Curve的StableSwap,甚至是那些新兴的AMM变体,都能在这个统一的框架下找到自己的位置。

2. 交易轨道的核心思想:价格如何连续移动

在开始数学推导前,我们得先统一思想:到底什么是“交易轨道”?想象一下,你有一个流动性池,里面有x个ETH和y个USDC。池子遵循x * y = k的不变式。现在,你想用Δx个ETH买入USDC。

一个常见的误解是:池子瞬间从状态(x, y)跳到了新状态(x + Δx, y - Δy)。在离散的、一次性的交易视角下,这没错。但如果我们把交易想象成一个连续的过程呢?比如,你有一大笔钱要换,为了减少滑点,你把它拆分成无数个无限小的订单。那么,你的这笔大交易,实际上就是让池子状态沿着某条数学曲线,从起点(x, y)连续地“滑动”到终点(x + Δx, y - Δy)。这条曲线,就是交易轨道

轨道的形状,由AMM的不变式决定。对于x * y = k, 这条轨道就是一条双曲线。但轨道更深刻的含义在于它定义了瞬时价格如何变化。在任意一个池子状态点(x, y)上,ETH相对于USDC的瞬时价格P定义为dy/dx的负值(因为你要减少y来增加x),即P = - dy/dx。对于恒定乘积池,对x*y=k两边微分,得到y*dx + x*dy = 0, 所以-dy/dx = y/x。看,瞬时价格就是储备量比率y/x, 这和我们直觉一致。

所以,交易轨道的数学任务就是:给定一个起点(x0, y0)和一个不变式(如x*y=k), 当我们注入dx的资产X时,资产Y会减少dy, 并且(x0+dx, y0+dy)仍然满足不变式。这个dy是多少?这就是微分方程要解决的问题。而积分这个微分方程,我们就得到了轨道曲线。

注意:这里dy是负值,因为我们是在用X换取Y,Y在减少。但在数学推导中,我们通常将其视为一个微小的变化量,最后通过积分确定总的Δy是负的。

3. 对数价格轨道:恒定乘积模型的本质

让我们从最经典的恒定乘积模型x * y = k开始,推导它的交易轨道。这是理解所有更复杂模型的基础。

我们设起点为(x0, y0), 满足x0 * y0 = k。 当我们进行一个无限小的交易,用dx的X换取dy的Y时,新状态(x0+dx, y0+dy)也必须满足(x0+dx)*(y0+dy) = k。 将左边展开:(x0+dx)*(y0+dy) = x0*y0 + x0*dy + y0*dx + dx*dy = k

由于x0*y0 = k, 且dx*dy是二阶无穷小可以忽略,我们得到:x0*dy + y0*dx ≈ 0这就是我们之前提到的微分关系。由此得到瞬时价格:P(x) = -dy/dx = y0/x0(在起点处) 但更一般地,在轨道上任意点(x, y), 有P(x) = y/x

现在,我们想找到y关于x的函数形式,即轨道曲线。由x*y = k, 显然y = k / x。 但这还没体现出“轨道”的动态过程。我们通过积分来展示它。

从微分方程x*dy + y*dx = 0出发,可以改写为:dy/y = - dx/x两边从起点(x0, y0)到终点(x1, y1)积分:∫_{y0}^{y1} (1/y) dy = - ∫_{x0}^{x1} (1/x) dx计算积分:ln(y1) - ln(y0) = - [ln(x1) - ln(x0)]ln(y1/y0) = ln(x0/x1)y1/y0 = x0/x1这等价于x0*y0 = x1*y1 = k。 这个积分过程告诉我们,在交易中,资产数量的对数变化量是互为相反数的

这才是关键!我们定义对数价格p = ln(P) = ln(y/x)。 那么:p = ln(y) - ln(x)在交易过程中,从(x0, y0)(x1, y1), 对数价格的变化是:Δp = p1 - p0 = [ln(y1) - ln(x1)] - [ln(y0) - ln(x0)] = [ln(y1)-ln(y0)] - [ln(x1)-ln(x0)]根据上面的积分结果ln(y1)-ln(y0) = -[ln(x1)-ln(x0)], 代入得:Δp = -[ln(x1)-ln(x0)] - [ln(x1)-ln(x0)] = -2 * [ln(x1) - ln(x0)]

这个式子不那么直观。我们换一个更常用的视角:考虑用X换取Y的过程,x增加,y减少。我们关心的是,当xx0增加到x1时,对数价格p移动了多少。由p = ln(y/x)y = k/x, 得p = ln(k/x^2) = ln(k) - 2ln(x)。 所以:Δp = p1 - p0 = -2ln(x1) + 2ln(x0) = 2 ln(x0/x1)由于x1 > x0(我们买入X,卖出Y),x0/x1 < 1ln(x0/x1) < 0, 所以Δp < 0。 这意味着用X换取Y的过程,会导致对数价格p下降,即X相对于Y的价格下降(因为p = ln(P), P是X的价格),这完全符合市场规律:你卖出X,其价格应该下跌。

实操心得:理解对数价格轨道,对于计算“价格冲击”非常有用。滑点通常定义为(执行价格 - 标记价格)/标记价格。而标记价格就是起点瞬时价格P0 = y0/x0。执行价格是平均价格Δy/Δx(注意符号,Δy为负)。通过对数轨道,我们可以更精确地估算大额交易对价格的影响,这对于做市商和大型交易者设计交易路径(比如通过多个池子路由)至关重要。许多专业的交易分析工具背后,都在进行类似的计算。

4. 迈向一般化:加权乘积不变式及其微分方程

恒定乘积模型虽然优美,但滑点太大,尤其不适合稳定币这类价格锚定资产。于是人们开始思考更一般的形式。加权乘积不变式(Weighted Product Invariant)就是一个强大的推广,它也是许多高级AMM(如Balancer V1)的数学核心。

加权乘积不变式的一般形式为:x^w_x * y^w_y = k其中,w_xw_y是大于0的权重,k是常数。当w_x = w_y = 1时,它就退化为了标准的恒定乘积公式。

这个不变式如何影响价格和轨道呢?我们同样从微分入手。对等式两边取自然对数,线性化处理:w_x * ln(x) + w_y * ln(y) = ln(k)现在对两边进行微分(k是常数,微分为0):w_x * (dx/x) + w_y * (dy/y) = 0这个微分方程描述了在任意无限小交易下,两种资产数量变化率必须满足的关系。

由此,我们可以解出瞬时价格P。 回顾P = -dy/dx(用X换Y)。 由上面的微分方程:w_y * (dy/y) = -w_x * (dx/x)dy = - (w_x / w_y) * (y/x) * dx因此,瞬时价格为:P(x, y) = -dy/dx = (w_x / w_y) * (y/x)

看!这与恒定乘积模型的价格公式y/x相比,多了一个系数(w_x / w_y)。 这个系数就是权重比。它意味着你可以通过调整权重,来改变资产在池子中的“价值占比”或“定价影响力”。例如,如果设置w_x = 2w_y = 1, 那么即使y/x = 1, 价格P也会是2。 这相当于放大了资产X的价值权重。

为什么这样设计?这给了流动性提供者(LP)巨大的灵活性。在Balancer池中,你可以创建一个包含多种资产、且每种资产目标权重不同的投资组合。池子会自动通过这个定价公式进行再平衡。当某资产价格上涨导致其在池内价值占比超过目标权重时,它的相对价格(相对于其他资产)在池内就会变低,激励交易者买入该资产,使其数量减少,价值占比回归目标。这是一个内置的自动再平衡机制。

5. 加权乘积模型下的交易轨道推导

有了微分方程,我们就可以推导加权乘积模型的交易轨道了。我们想找到,从起点(x0, y0)开始,当x变化到x1时,y会变化到多少y1, 并且整个路径满足x^w_x * y^w_y = k

我们从对数形式的微分方程出发:w_x * (dx/x) + w_y * (dy/y) = 0这可以方便地分离变量:w_y * (dy/y) = -w_x * (dx/x)两边同时积分,从起点(x0, y0)积到轨道上任意点(x, y)∫_{y0}^{y} w_y * (1/y) dy = - ∫_{x0}^{x} w_x * (1/x) dxw_y * [ln(y) - ln(y0)] = -w_x * [ln(x) - ln(x0)]ln((y/y0)^{w_y}) = ln((x0/x)^{w_x})因此,我们得到轨道方程:(y / y0)^{w_y} = (x0 / x)^{w_x}或者写成更对称的形式:x^{w_x} * y^{w_y} = x0^{w_x} * y0^{w_y} = k

这个轨道方程描述了状态(x, y)必须满足的关系。为了更清楚看到y如何随x变化,我们可以解出yy = y0 * (x0 / x)^{w_x / w_y}

让我们对比一下恒定乘积轨道y = k / x = y0 * (x0 / x)。 加权乘积轨道多了一个指数w_x / w_y。 这个指数决定了轨道的“弯曲程度”。

  • 如果w_x / w_y > 1(即X权重更高),那么(x0/x)的指数大于1。当x增加时,(x0/x)变小(因为x > x0), 一个大于1的指数会让这个值变得更小,从而导致y下降得比恒定乘积情况更快。这意味着用权重高的资产X去换取权重低的资产Y,Y的数量会急剧减少,滑点很大。这符合直觉:你想从池子里拿走更多价值权重低的资产,就需要付出更多价值权重高的资产。
  • 如果w_x / w_y < 1(即Y权重更高),结论相反,用X换Y会更“划算”,滑点较小。
  • 如果w_x / w_y = 1, 就回到了恒定乘积模型。

实操中的坑:在为一个多资产加权池设置权重时,必须非常小心。权重不仅代表了资产的目标价值比例,更直接定义了交易轨道和滑点曲线。如果你错误地将一个低流动性、高波动性的资产设置了过高的权重,那么当有人试图用该资产兑换其他资产时,轨道会非常陡峭(滑点极大),可能导致交易失败或付出极高成本。相反,如果权重设得过低,该资产很容易被“买光”。通常,权重需要根据资产的波动性、流动性和期望的池子平衡状态来综合设定。

6. 从轨道到执行价格:计算实际兑换率

理解了轨道,我们最终要落地到交易者最关心的问题:我投入Δx, 到底能拿到多少Δy

对于加权乘积模型x^{w_x} * y^{w_y} = k, 已知起点(x0, y0), 投入Δx后,x1 = x0 + Δx。 我们需要找到y1, 使得(x1)^{w_x} * (y1)^{w_y} = k

由轨道方程(y1 / y0)^{w_y} = (x0 / x1)^{w_x}, 可得:y1 = y0 * (x0 / x1)^{w_x / w_y}那么,我们能得到的Δy为:Δy = y1 - y0 = y0 * [ (x0 / x1)^{w_x / w_y} - 1 ]注意,Δy是负值,因为我们得到了Y,池子里的Y减少了|Δy|。交易者得到的Y数量是-Δy

执行价格(平均价格)就是总产出除以总投入:(-Δy) / Δx。 这个价格一定比交易前的瞬时价格P0 = (w_x/w_y)*(y0/x0)要差(除非交易量无限小),差额就是滑点。

让我们用一个具体例子来感受一下权重的影响。假设一个ETH/USDC池,初始状态x0 = 100 ETHy0 = 200,000 USDC(初始价格1 ETH = 2000 USDC)。

  • 场景A:恒定乘积(权重1:1)w_x = 1w_y = 1。 瞬时价格P0 = (1/1)*(200000/100) = 2000。 用户投入Δx = 10 ETHx1 = 110y1 = 200000 * (100/110)^{1} ≈ 181,818.18 USDCΔy ≈ 181818.18 - 200000 = -18181.82 USDC用户得到约18181.82 USDC, 执行均价18181.82 / 10 ≈ 1818.18 USDC/ETH。 滑点约为(2000-1818.18)/2000 ≈ 9.09%

  • 场景B:加权乘积(权重2:1)w_x = 2w_y = 1(ETH权重高)。 瞬时价格P0 = (2/1)*(200000/100) = 4000 USDC/ETH。 注意,由于ETH权重加倍,其在池内的“定价”被抬高了。 用户同样投入Δx = 10 ETHx1 = 110y1 = 200000 * (100/110)^{2/1} = 200000 * (100/110)^2 ≈ 165,289.26 USDCΔy ≈ 165289.26 - 200000 = -34710.74 USDC用户得到约34710.74 USDC, 执行均价34710.74 / 10 ≈ 3471.07 USDC/ETH。 滑点相对于瞬时价格4000(4000-3471.07)/4000 ≈ 13.22%

对比发现,在投入相同ETH的情况下,权重高的池子给出了更高的执行价格(3471 vs 1818),但滑点也更大(13.22% vs 9.09%)。这是因为高权重放大了价格影响。对于交易者而言,如果你想卖出高权重的资产,你会获得一个更“好”的价格(因为池子认为它更值钱),但大额交易时价格恶化得也更快。

提示:在实际的Balancer池中,权重通常归一化,使得所有权重之和为1。例如,一个80%/20%的ETH/USDC池,w_x=0.8w_y=0.2。 价格公式变为P = (0.8/0.2)*(y/x) = 4*(y/x)。 推导过程完全一致,只需将w_xw_y替换为归一化后的权重即可。

7. 超越加权乘积:广义不变式与轨道形态的探索

加权乘积模型x^w_x * y^w_y = k虽然比恒定乘积更通用,但它仍然属于“乘积”类不变式。它的轨道方程y = C * x^{-w_x/w_y}(C为常数)是一个幂函数。在数学上,这描述了一条等弹性(Constant Elasticity)曲线。这里的“弹性”指的是价格变化率相对于数量变化率的敏感度。对于加权乘积模型,这个弹性是常数,等于权重比的倒数w_y/w_x

但AMM的世界不止于此。为了在稳定币交易(极低滑点)和波动性资产交易(需要足够的流动性深度)之间取得平衡,人们发明了更复杂的不变式。最著名的就是Curve的StableSwap,它本质上是恒定乘积和恒定加和的混合。

其不变式可以简化为:A * (x + y) + (x * y) = D * (A + 1)其中A是一个放大系数,D是储备量之和的某种度量。当A→0时,它退化为恒定乘积x*y = D^2/4;当A→∞时,它趋近于恒定加和x+y = D。恒定加和轨道是一条直线,滑点为0(在池子耗光前),但这只在价格严格1:1时可行。

StableSwap的轨道介于直线和双曲线之间。在价格锚定区(如0.999-1.001),它的曲线非常平坦,近似直线,提供极低滑点;当资产价格偏离锚定区越来越远时,曲线越来越像双曲线,以应对巨大的套利压力并防止池子枯竭。这种轨道的数学推导更为复杂,通常需要求解一个关于xy的二次或高次方程。

设计心得:设计一个AMM不变式,本质上就是在设计其交易轨道的形状。你需要问自己:

  1. 目标资产对的价格关系是什么?(是锚定的,还是自由浮动的?)
  2. 你希望流动性集中在哪个价格区间?(像Uniswap V3那样通过区间集中流动性,本质上就是改变了轨道的有效部分)。
  3. 你希望滑点曲线是怎样的?(是希望小交易量时滑点极低,大交易量时滑点急剧上升,还是希望滑点变化更平缓?)

例如,Uniswap V3的“浓缩流动性”,可以看作是在一个全局的恒定乘积轨道上,只取其中一段([Pa, Pb])作为有效轨道。当价格移动到这个区间外时,其中一种资产会完全耗尽,轨道失效。这实际上是通过外部参数(价格区间)对基础轨道进行了裁剪。

8. 轨道分析的实际应用:策略与风险管理

理解了交易轨道的数学,我们能做什么?以下是几个直接的实战应用:

1. 最优拆单路由计算:当你有一笔大额交易时,直接在一个池子里完成可能滑点巨大。你可以选择拆分成多笔小交易,或者通过多个不同的池子(可能具有不同的权重或曲线)进行路由。如何找到最优路径?这需要你计算每条可能路径(每个池子对应一段轨道)的最终产出。这通常转化为一个优化问题:在满足各个池子不变式约束的条件下,最大化最终产出资产。许多DEX聚合器(如1inch、ParaSwap)的核心算法就在干这件事,它们需要快速计算不同路径沿不同轨道的积分结果。

2. 流动性提供(LP)的“无常损失”量化:无常损失本质上就是由于外部市场价格变动,导致LP资产在池内与单纯持有所产生的价值差异。从轨道视角看,当市场价格从P0变为P1时,套利者会通过交易将池子价格推到P1。这个套利过程就是池子状态沿轨道从旧平衡点(x0, y0)移动到新平衡点(x1, y1)的过程。新点满足y1/x1 = P1且仍在轨道x*y=k(或更一般的曲线)上。通过联立这两个方程,可以解出x1y1, 进而计算LP资产价值与持有价值的比值。对于加权乘积池,无常损失公式是权重和价格比的函数,其推导完全依赖于轨道方程。

3. 自定义AMM曲线设计:如果你想为一个特定场景(如期权交易、预测市场)设计一个AMM,你需要首先定义你希望的价格-数量关系。例如,你可能希望某个资产的价格在某个数量区间内几乎不变(像阶梯函数),这对应着一段近乎垂直/水平的轨道。然后,你需要反向推导出能满足这种轨道形状的不变式。这通常涉及求解一个微分方程:给定价格函数P(x) = -dy/dx, 以及一个初始条件,求xy的关系F(x, y)=k。 这是一个反问题,但轨道思维为你提供了明确的设计起点。

4. 仿真与压力测试:在部署一个新的流动性池或调整参数(如Balancer的权重)之前,可以通过轨道方程进行大量的仿真测试。模拟在各种市场情景(大额买入/卖出、价格剧烈波动)下,池子储备的变化、滑点的变化、以及LP的无常损失情况。这比盲目上线要稳妥得多。我自己的经验是,至少要用历史数据或极端假设跑通上千次模拟,观察池子是否会经常出现一种资产接近耗尽的情况,或者滑点是否在可接受范围内。

最后,我想强调的是,交易轨道这个数学结构,是将AMM从“魔法黑箱”变为“可计算引擎”的关键。它不仅仅属于研究人员,每一个认真的DeFi参与者——无论是交易员、流动性提供者还是协议开发者——都应该对其有直观的理解。下次当你进行交易时,不妨在脑海中想象一下那个代表池子状态的点,正沿着一条美丽的数学曲线滑行,而你付出的滑点,就是为这条曲线的曲率所支付的“通行费”。理解这条曲线的形状,你就能更好地预测费用,并找到更优的通行路线。

http://www.jsqmd.com/news/1065083/

相关文章:

  • 基于核方法与模型集成的LLM认知不确定性量化实践
  • 5分钟快速上手:Better BibTeX插件让你的Zotero文献管理效率翻倍
  • 2026年更新:探寻盐城诚信的滑台直销工厂,助力精密制造升级 - 品牌鉴赏官2026
  • (2026最新)大理防水补漏正规公司甄选推荐:漏水检测维修-暗管漏水精准定位检测漏水点-卫生间/厨房/屋顶/阳台/渗漏水维修-本地人必选的正规测漏公司 - 即刻修防水
  • ClaudeCode Agent核心循环:四层防御式执行架构解析
  • 计算机毕业设计之高速公路交通流量预测算法
  • 无名杀:开源三国杀网页版终极体验指南
  • AI时代架构师的重定义:从画图者到系统导演
  • 钢结构易发生的工程事故有哪些?
  • 揭秘 3C 认证背后强制消防指标,采购对标不踩坑
  • (2026最新)唐山防水补漏正规公司甄选推荐:漏水检测维修-暗管漏水精准定位检测漏水点-卫生间/厨房/屋顶/阳台/渗漏水维修-本地人必选的正规测漏公司 - 即刻修防水
  • 5分钟快速掌握:用Mermaid Live Editor让技术图表创作变得如此简单
  • 基于NLP的本地新闻与移民社区需求智能匹配系统设计与实现
  • 2026年度华南地区办公室家具市场趋势分析:五大品牌评测与采购要点
  • 029、自定义命令开发:创建、参数化、共享与团队复用的最佳实践
  • keytool-importkeypair终极指南:如何快速解决Java密钥管理难题
  • 实时音频对话事实核查系统:多模态AI在信息验证中的工程实践
  • 极智词元企业级RAG系统优化实践:从60分到95分的进阶之路
  • 1M上下文实战:JavaAI插件配置、压缩与压测全链路
  • 产业园区精细化运营时代:第三方专业运营服务模式与实践观察
  • 2026年钟楼区渗水维修企业哪家好,窗户漏水维修/阳台漏水维修/墙面渗水维修/屋顶漏水维修,渗水维修企业哪家好 - 品牌推荐师
  • 软考高项论文总卡 45 分?学长拆解阅卷 5 大得分点,照着写不踩坑
  • 2026年重庆机电安装市场新观察:甄选可靠服务商的战略指南 - 品牌鉴赏官2026
  • 同态加密神经网络推理优化:从算法轻量化到GPU加速的高并发实践
  • 2026年新发布北京艾比森LED显示屏实力厂家专业选择指南 - 品牌鉴赏官2026
  • 如何在智能电视上享受流畅的网页浏览体验?TV Bro为你重新定义客厅上网
  • 2026年腾讯云 618 活动介绍及 Hermes Agent/OpenClaw配置Token Plan搭建新手友好
  • ArkUI 轮播图,选项卡,视频,图片组件全解 1
  • 成都3家头部展厅设计公司推荐:口碑+实力双在线
  • 无U盘,拓展C盘!