水池两侧具有不同位置转盘的闸门,示意买卖方向的动态费用
AI生成的主题示意图,不是真实界面、交易记录或数据截图。

同一组 ETH/USDC,买入 ETH 和卖出 ETH 可能被收不一样比例的费用,这是 Uniswap 在 10 月 14 日公告中介绍的 VolatilePair Hook 带来的机制变化。公告称该 Hook 已在 Ethereum 主网上线,起步交易对是 ETH/USDC,属于 Uniswap v4 面向波动交易对的动态费用组件。本文于 10 月 26 日整理,依据这份公告和 Uniswap 帮助文档;没有访问任何池参数,也没有实时费率可供核对。

公告说了什么

用一句话概括:这个 Hook 会参考近期价格变化,分别给买入和卖出设定费用,每笔 swap 重新计算。

方向上的说法是:池价上升时,买 ETH 的成本提高,卖出 ETH 的成本降低;池价下降时,两边反过来。另外,在大幅价格变动之后,那些把价格往回推的交易可能被收一笔临时费用。官方给出的目标是让价值留在池内、服务流动性提供者。

这里要收紧一句:以上只是该机制在公告中的解释,不表示所有 Uniswap 池都这么收费,也不等于官方已经证明 LP 收益增加、或所有交易者都变得更便宜。公告没有说它消除了无常损失、套利或 MEV,这些推不出来的结论都不要往上加。

费率标签不等于你实际付的钱

对普通用户来说,最容易踩的坑是把界面上一个百分比当成最终成本。实际成交结果至少受几件事影响:

  • 哪个池:同一组资产可能有多个池,费用逻辑各不相同,VolatilePair Hook 只作用于挂了它的池。
  • 哪个方向:买和卖在这套机制下本来就是两套价格。
  • 走哪条路由:报价可能经过聚合或拆单,费用按各段分别计算。
  • 订单规模:大单本身的价格影响会改变成交均价,和费率是两回事。
  • 你核查的时点:费用每笔重新计算,上一分钟看到的数字不保证下一分钟还成立。

Uniswap 帮助文档专门区分了价格影响和价格滑点:价格影响是你的订单规模对池价的推动,价格滑点是预期成交价与实际成交价之间的差。这两项和 Hook 收的费用是不同层面的东西,读报价时要分开看,别把它们揉成一个“手续费”来理解。

怎么读一笔报价

公告没有给出具体的界面操作说明,下面这套读法是自主分析,不是官方步骤,也不是实际交易记录。

第一,先弄清报价来自哪里。 如果页面或路由信息里能看出池的标识、是否挂了 VolatilePair Hook,就据此核对;识别不了就标为未知,不要凭感觉认定。Uniswap 的兑换页面字段说明可以帮助辨认各字段含义,但这份文档并没有保证普通页面一定显示池的 Hook 标识,也没有保证 Hook 费用会单独列出。

第二,比较报价要固定条件。 这里有个容易犯的错:不能拿“用 ETH 换 USDC”和“用 USDC 换 ETH”的输出直接比大小,这两个方向互为反向,输入币种不同,输出资产的单位也不同,数字放在一起没有可比性。正确的做法是固定同一输入资产、同一输入数量、同一输出资产和方向,再比较不同路径或不同时点的报价。买入和卖出各自核对自己的那一条,不要跨方向比数字。

第三,把费用和价格影响分开记。 如果界面把 Hook 费用单列,记下它;如果混在总成本里,至少要知道报价里包含哪些项。同时看这笔订单的价格影响有多大。可以用不同规模试算来感受两者谁占主导(仅为教学假设,不是实际数据),但别把试算结果当成真实费率。

第四,临提交前再看一眼。 因为每笔 swap 重新计算,提交前重新获取一次报价是稳妥的做法,但这不是说刷新就一定拿到某个结果,也不是说上一刻的报价必然失效。签名和授权环节的基础知识,可参考钱包连接与代币授权签名;具体到这个 Hook 的授权要求,公告没有交代,未知就保留未知。

如果想把池子的基本情况和报价对照起来看,代币池与流动性核查提供了查池的思路;但本 Hook 的池参数和实时费率,本次没有核实,不在此给出任何合约地址或数字。

参数会变,别当永久规则

公告明确说,池参数和费用逻辑可以通过 Uniswap 治理升级,升级不需要迁移池子。这意味着今天读到的收费方向逻辑,未来可能被治理调整。反过来说,也不能把“可升级”理解成费率随时乱变——公告只说了治理可以改,改的条件、频率和具体方式都没有展开。

对使用者的实际含义是:不要把某次看到的买卖费率差当成长期规律去套算成本,每次交易以当时的报价为准。

资料来源