在 DeFi 中看起来像滑点的,大多其实是价格冲击(price impact)——一种被写入 AMM 曲线中的、确定性的成本;一旦你在 CLOB 上成交,这种成本就会立刻消失。
作者: Gokce Calisan|April 27, 2026|2 分钟阅读
March 28, 2026 | ,
April 09, 2026 | ,
你查看一份报价。你点击交换(swap)。交易确认了。你支付的价格比刚才看到的略差,你把这归结为“市场移动了”。对大多数基于 AMM 的 DeFi 交易来说,这个解释是错的。市场没有移动。是你把它移动了。
零售交易者所说的滑点(slippage)很少是市场波动造成的。它是一种结构性的、可预测的成本,写入了他们正在使用的交易所设计之中。一旦你弄清楚它从何而来,两件事就变得清晰:你到底在为多少付费,以及为什么它根本不需要存在。
滑点是你原本预期支付的价格与最终实际支付价格之间的差额。它有两个明确来源,而大多数 DeFi 界面会把这两者混在一起,用同一个“滑点(slippage)”标签来模糊处理。
第一个是 执行滑点(execution slippage) —— 在你的报价(quote)到成交(fill)这几秒之间发生的现实世界、外部的价格波动。对于流动性充足的交易对以及 12 秒的出块时间来说,这种影响很小,通常也不具有实质性。
第二个是 价格影响(price impact) —— 由你自己的交易与流动性池(liquidity pool)互动所引发的价格变动。在 AMM 上,这不是意外,也不是延迟造成的。它是确定性的。池子的定价函数保证你的交易会把价格推向对你不利的方向,并且在你点击确认之前就可以计算出精确幅度。
之所以大多数 DeFi 的“滑点”并不是真正的滑点,是因为它并非随机。它是一笔费用,由曲线(curve)收取,并且会在之前就计算好。
像 Uniswap v2 这样的标准 AMM 使用恒定乘积公式:x × y = k。该池持有两种代币的储备量,并且在每一笔交易中都要保持这两者储备的乘积不变。这是一种优雅的方式,用来在不需要对手方(counterparties)的情况下提供流动性——但它使价格影响在数学上变得不可避免。
以一个简单的池为例:1,000 ETH 和 3,200,000 USDC,对应的 ETH 价格为 $3,200。如果你想买 10 ETH,你不可能以 $3,200 的价格买到它们。该池必须维持 k,这意味着在你的交易之后,USDC 的储备会上升,ETH 的储备会下降,而二者的比例——也就是价格——会向上移动。最终你平均要支付大约 $3,232/ETH。将这 $32/ETH 的差距在你的交易中放大之后,这就是价格影响(price impact)。它并不是协议为你收取的一笔费用。它是与曲线交易相关的结构性结果。
把交易规模放大。用同一个池买 50 ETH,有效价格会更接近 $3,360。买 100 ETH 时,你在支付任何 LP 手续费、任何 gas、任何 MEV 之前,成本就已经超过 5%。你的交易相对于池子深度(depth)的比例越大,曲线就越“惩罚”你。这就是为什么严肃的链上大额交易要么在许多池之间拆分,要么通过聚合器(aggregators)进行路由,要么接受执行质量,而这种质量在任何中心化场所都可能是不可接受的。
不存在任何一种恒定乘积 AMM 的版本不会这么做。曲线本身就是成本。
每一个 AMM 前端都会要求你设置 滑点容忍度(slippage tolerance)。大多数交易者把它留在默认值,有些人把它调高以阻止失败的交易,但很少有人真正理解这个设置到底在做什么。
滑点容忍度(slippage tolerance)是你愿意接受的最差成交价格的上限。如果实际成交价格落在该上限之外,交易就会回滚。这个设置不会减少你的滑点 — 它只是定义了天花板。当容忍度为 0.5% 时,你仍然要支付曲线向你收取的价格冲击(price impact);只是如果它越过半个百分点,你就会中止交易。
它强迫你做出的取舍很难看。较低的容忍度能保护你免于糟糕成交(bad fills),但会导致在波动的交易对上交易频繁回滚,浪费 gas 并使交易无法执行。较高的容忍度能让交易通过,但同时也打开了一个有据可查的攻击面:夹心套利机器人(sandwich bots)。我们在上一篇关于 MEV 的文章里已经讲过:它们会从 mempool 读取你的容忍度,并尽可能在对他们有利的情况下,从接近你这个上限的空间里获利。把容忍度在流动性不足的交易对上设置得太高,你就会变成别人“搜寻者(searcher)”策略里的轻松钱。
在 AMM 模型内部,没有“正确”的滑点容忍度。每一个设置都是在回滚与提取( extraction )之间做的折中。
单个池子的滑点是一回事。大多数非平凡交易会经过多个环节。
当 DEX 聚合器把交易拆分到 Uniswap、Curve 和 Balancer 上以找到最佳执行时,每一次跳转都会支付自己那一份价格冲击(price impact)。聚合器会优化最低的总和,但它们无法把它压到零 — 曲线仍然会收费。在那些没有深度池子的“长尾”交易对上,仍然是昂贵的路由才能拿到最优方案。AMM 生态系统中,流动性被设计成碎片化,而这种碎片化会在滑点上付出代价。
对于任何以规模运行的交易者 — 做市商、金库(treasuries)、有信息的流(informed flow)— 这笔成本经常会超过他们原本希望捕获的优势(edge)。这也是为什么大型 DeFi 持仓经常通过场外(OTC)渠道来搭建,或者在中心化场所执行并再桥接过去。在链上以同样方式进行的交易,如果用 AMM,就会因为被曲线吞掉太多而变得不具备可行性。
问题不在于去中心化。问题在于定价机制。
在 中央限价订单簿(Central Limit Order Book,CLOB) 上,你不会与一条曲线对赌。你是在对抗其他交易者 — 更具体地说,是他们挂在簿上的限价订单。你提交市价单时,会以簿内可用的最佳价格先成交,然后是下一个最佳价格,再下一个,直到你的订单被填满,或订单簿被耗尽。如果订单簿最上层挂着 50 ETH,报价为 $3,200,而你买入 30 ETH,那么所有这些都会按 $3,200 的价格支付给对方。没有曲线,没有隐含费用(implicit fee),也没有确定性的斜率。
限价订单(limit order) 还更进一步。你指定你愿意买入或卖出的精确价格,交易所要么在该价格成交你,要么一笔也不成交。在 AMM 的语境下,滑点这种东西根本就不存在 — 你的成交价格就是你选择的价格。
这是许多“原生加密”的交易者忘记自己正在做的取舍。每一家中心化交易所都会运行一个 CLOB。那里的交易者从来不需要设置所谓“滑点容忍度(slippage tolerance)”,因为这种架构不会把滑点作为副作用产生。在 CLOB 上唯一仍然存在的滑点,是那种确实配得上这个名字的滑点:当你要求立即执行某笔订单,而该订单规模又大于订单簿顶部流动性的水平时,你为了“走完订单簿(walking the book)”所付出的成本。这是真实的成本,它在你提交之前就能看到,并且与订单规模的激进程度成正比。
Dexalot 是一个去中心化的 CLOB。订单上链托管,市价单和限价单都能原生执行,并且在整个技术栈的任何地方都不存在绑定曲线。对于需要放大交易规模的交易者而言,这会改变默认方式:你不再去配置滑点容忍度并祈祷 MEV 环境足够安静,而是以你想要的价格挂出限价单——要么成交,要么不成交。
对于来自 AMM 的交易者来说,这种行为上的转变幅度很小 — 界面看起来像是一个交易所 — 但其成本结构却不同,且会随着时间复利式地累积。你不再为曲线付费。你不再向内存池暴露容忍度设置。你不再为了降低本不该存在的影响而把订单拆分到不同的池中。费用就只是费用,价格就只是价格。
滑点并非去中心化交易不可避免的成本。它是 AMM 的成本。当架构发生变化,成本也会随之改变。