喂价只许升不许降:收益型凭证进稳定池为什么必须加一道平滑 图 1
喂价只许升不许降:收益型凭证进稳定池为什么必须加一道平滑 · 图 1

稳定池要撮合两种资产,就得知道它们之间的兑换比例。两个都是稳定币时比例恒为一,省事;可一旦池子里放进去的是 wstETH、sUSDe 这类收益型凭证,比例就成了喂价问题:池子内部要持续引用一个汇率,把凭证数量折算成底层资产口径。Curve 官方文档在这件事上写了两条相当硬的约束——汇率只能升不能降,单个区块的变化不能超过池子手续费的两倍——理解这两句话,比理解 Stableswap 公式本身更能决定你能不能睡好觉。

先说为什么只能升。这类凭证的价值来自持续累积的收益,兑换一份凭证可换回的底层币数量理论上单调爬升。池子的流动性重心围绕这个汇率展开,汇率每上移一次,重心整体上移,这是设计内的正常行为。反过来,如果汇率喂价能在某一刻报出比历史更低的值,等于池子当场宣布凭证贬值了:流动性重心瞬间下移,原本该慢慢挣到的收益被压缩进一秒钟的价格,持有升值资产的那一侧 LP 被迫按折价卖货。更糟的是,攻击者可以在自己提交交易的那一秒构造这个下调——先用大单压低汇率,再以旧的内刻度价把凭证卖回池子,等到汇率恢复,下一位买家按新价格接盘,差价就是利润。文档把这套攻击路径点得很清楚,并要求喂价必须严格不减,正是为了把这条前跑加后跑的三明治合拢不起来。

那为什么还要限单区块变动幅度?因为只升不降挡不住升得太快。收益型凭证在极端情形下——某些机制性收益集中入账、汇率跳步计提——一个区块里跳涨超过手续费两倍的幅度并非不可能。若汇率在一次更新里跳一大截,等于给了一个免费的前跑窗口:任何人看到下一区块汇率要跳,可以先按当前内刻度买凭证,跳完再按新刻度卖出,稳赚这段跳变。文档给的算术很朴素:百分之零点零四的池费,汇率单区块最多变动百分之零点零八,超出必须由汇率合约自己做平滑。平滑的常见形态是限速累加器:合约按时间把应计收益一点点摊开,把任何跳步切成每区块一小片。

喂价来源的黑名单同样重要。文档明确列出不能用的几种:任何 DeFi 池的现货价,因为闪贷可以直接把它推高或砸低;calc_withdraw_one_coin 这类赎回模拟,它读的是池子当下的状态,本身就是可操纵对象;由现货余额倒推的价值;低流动性市场来源的价格。这些被排除项有一个共同特征——它们的数值可以被一笔交易改写。而像 wstETH 用 stEthPerToken 这样由协议自己记账的兑换率,操纵成本结构完全不同,这也是为什么新池子部署文档宁愿你去读凭证合约,也不接受看似更方便的市价。

对进出这类池子的 LP,机制含义落在三处。你的收益里有一部分永远来自汇率上移带来的重心抬升,这部分和手续费收入是两本账,用某一刻的枚数快照评估盈亏会系统性看漏;当汇率平滑层出故障或被治理改动,先受影响的是报价与公允值的差,套利者会迅速把它抹平,这段抹平收益归外人而不归你;如果你正在比较两个装着同一凭证的稳定池,除了费率,还应核对两边引用的是否同一个汇率合约、平滑节奏是否一致,同币不同池的账面差常在这里。

一个常被误解的点是:汇率只升不降不等于凭证永不贬值。机制约束的是喂价通道,不是资产风险本身;当底层协议真的出损失时,问题会以喂价源与实际赎回价值脱钩的形式暴露,这时池子的价格会持续偏离、兑换变得不利。所以尽调该分两层,一层查汇率合约的实现是否单调、是否限速,另一层查凭证本身的协议风险,不能因为喂价合规就以为资产端安全。

最后给部署者与 LP 各一句话。部署者要按文档逐项核对喂价黑名单与平滑上限,别把省事的路径当标准答案;LP 则要把汇率喂价地址列进池子监控清单,它是这类池子里权限最大、影响最快的一行字节。这类机制的成败往往不在公式,而在公式抬头引用的那行数字从哪来。

本文只讨论机制与公式,示例数字不构成收益承诺,本文内容不构成投资建议;收益型凭证与其喂价合约均存在协议风险,参与前请核对官方文档并自担风险。

喂价只许升不许降:收益型凭证进稳定池为什么必须加一道平滑 图 2
喂价只许升不许降:收益型凭证进稳定池为什么必须加一道平滑 · 图 2