Skip to content
survivorff's blog
Go back

结算不对称:我那个"无风险"跨平台对冲,风险到底藏在哪

11 min read

上一篇《跨平台价差不等于套利》结尾,我下了一个结论:短周期市场才是价差生意的主场——时间价值项小、资金周转快、结算风险窗口短。

这篇要部分推翻它。

因为我后来把结算层认真啃了一遍,发现一个很扎人的事实:短周期恰好是对争议延期最敏感的品类。名义年化最漂亮的那些机会,抗打击能力最差。

更根本的问题是这个:预测市场没有杠杆、没有清算、没有穿仓,最大损失就是本金——所以这个赛道的风险总量几乎全部压在结算层。而我做聚合器时,前三篇都在琢磨交易层。

一句话总结这篇:读一个市场的预言机配置,比读它的盘口重要。


两条裁定路径,差别不是速度

常见的说法是:乐观预言机「慢,但能处理主观事件」,价格 feed「快,但只能处理价格」。

这是个性能视角的误读。它们真正的区别是尾部风险由谁承担

乐观预言机价格 feed
信任对象提议者 + 争议者 + 投票者的经济激励feed 的节点集合 + 它的方法论
人为判断
出错后的救济(争议、投票、改判)没有
尾部由谁承担投票机制的设计者与代币持有人交易者自己

「没有救济」这一格是关键。价格 feed 路径的干净是真的,但它把「万一喂错了」这个分支直接删掉了。删掉分支不等于消灭风险——它等于把风险从「可能被错判」变成「一定按 feed 说的执行,无论 feed 说了什么」。

而且它的安全性取决于 feed 的方法论(聚合了哪些场所、如何加权、如何剔除异常、成分场所停机时如何降级),而这套方法论由第三方控制,预测市场平台无权干预。一个市场的赔付函数,依赖一个它无法控制的第三方参数集。

对短周期市场,这里还有个更锋利的问题:操纵参考价一秒钟的成本,可能远低于该市场的未平仓量。


乐观预言机的三层安全,中间那层经常是空的

乐观预言机的安全性由三层组成,缺任何一层都会塌:

保证什么断掉的条件
提议保证金提议者不会随手乱报保证金远小于错报可获得的收益
有人在看错报会被发现并挑战持仓分散、无人知情、窗口落在不友好时区
投票机制的作恶成本最终答案不会被买通单市场利益 > 操纵投票的成本

第二层最脆弱,也最少被讨论。注意这个不对称:

争议者的直接奖励上限是提议者的保证金(一个小数目),但错误裁定的受害者损失可以是任意大。

所以这个机制不依赖职业赏金猎人,它依赖利益相关方自我防卫——一个持有大量 YES 的人,为了保住仓位愿意付出远超赏金的成本去挑战。

这条逻辑成立的前提是持仓足够集中、足够专业。当仓位主要由分散的散户持有时,这一层实质上是空的。

由此推出一条很反直觉的结论:

错误提议的风险集中在低关注度市场,而不是高价值市场。

大市场有很多眼睛盯着,小市场一双都没有。而我们做风控的直觉通常是反过来的——按未平仓量排序去盯大市场。那恰好盯错了方向。


判无效是输家的免费彩票

这是我读完整个结算机制后最意外的一条,也是我认为聚合器最容易漏算的一项。

CTF 里 payouts = [1, 1] 表示判无效,两侧各按 $0.50 兑付。现在设想一个持有 YES 的人,而现实明显指向 NO:

情形他每份值多少相对「按事实裁定」
按事实裁定(NO 胜)$0.00
判无效$0.50+$0.50

他的下行已经是零。 所以他愿意为「把结果推成无效」花的钱,上限是 $0.50 × 持仓份额——这个数字可以轻易超过提议保证金几个数量级。

对称地看获胜方:从 $1.00 掉到 $0.50,损失 $0.50。双方动机对称,但下行不对称:败方已经在地板上,胜方还有东西可输。在一个双方都要花钱、而败方无所畏惧的博弈里,败方的出价意愿系统性更高

结论:

争议的发起者不是「追求真相的人」,而是「即将输掉的人」。

于是「判无效」在结构上是一个被持续施压的出口,而不是罕见的例外。两个直接推论:

为什么不能”按成本价退款”

一个自然的想法:判无效时按买入成本退款,谁都不受损。

在 CTF 架构下这做不到。 结果代币是 ERC-1155 的同质化余额,链上不记录任何一份份额的取得成本。同一个地址里的 100 份 YES,可能是 $0.20 买的、$0.80 买的、Mint 来的、别人转来的——链上只有一个数字 100

所以「可替代性让 $0.50 均分成为唯一可行的中性赔付」。这不是懒惰设计,是资产形态的必然。而它恰好给败方创造了那个凸性收益——这是 CTF 范式里无法在资产层解决的结构问题,只能在规则层(把无效条件写窄)缓解。


真实成本主要是资金占用,不是改判

改判罕见,延期常见。把延期的成本算清楚就知道它有多疼。

一笔头寸原计划 $T$ 天后结算,争议让它延长 $\Delta$ 天。名义收益 $e$ 不变,但年化变成:

$$\text{年化}_{\text{实际}} = \frac{e}{T + \Delta}\times 365$$

衰减因子是 $\dfrac{T}{T+\Delta}$。代进几个数:

原计划期限延期年化衰减到
3 天5 天37.5%
30 天5 天85.7%
180 天5 天97.3%

看第一行。这就是我要修正上一篇结论的地方:短周期套利的年化最漂亮,但同样的延期对它的杀伤力是长周期的十几倍。

所以正确的表述应该是:短周期市场是价差生意的主场,但前提是你把争议延期建模成一个分布而不是忽略它。 而且要按分位数取值,不能按均值——因为延期的尾巴很厚(尤其在 EVM 侧,争议升级路径上还藏着一次跨链消息传递)。


我最想强调的一条:裁定风险不可分散

做聚合器时我一度觉得,同时铺 50 个市场就把风险分散了。

错。这 50 个市场共用同一套裁定机制。

它是一个相关性为 1 的风险因子,而大多数风控模型会把它当独立风险处理。正确的分散维度不是市场数量,而是裁定路径

这也是为什么我在第一篇坚持「事件对齐的置信度必须卡住操作权限」:如果两个市场的裁定路径不同,你那个”无风险对冲”对冲的根本不是同一个风险。一边改判,对冲就变成两边都亏。


还有一个几乎不会被提的损失来源

链上没有定时器。到期不会自动裁定、裁定不会自动写入、写入不会自动赎回。每一步都是一笔交易,都要有人付费触发:

动作谁有动力做缺乏动力时
提议结果领提议奖励的人长尾小市场无人提议 → 永不结算
发起争议利益受损的持仓方持仓分散 → 错报通过
把结果写入 CTF通常靠适配器/平台平台不作为 → 已裁定但无法赎回
赎回获胜方自己用户遗忘 → 资金长期滞留

「永不结算」是这个赛道最不起眼的资金损失来源,而它在界面上只显示为一个看起来很正常的「等待结算」,可以持续几个月不触发任何告警。

所以评估平台时我现在会明确问一句:无人提议时的兜底机制是什么? 没有答案,就等于接受资金可能被无限期锁住。


落到聚合器的工程上

这几条最后变成了我系统里的具体改动:

  1. 把「争议中」建模成一个独立的持仓状态,而不是一条通知。处于该状态的资金:不可用、不可对冲、不计入可用余额。这一条如果不做,风控会连锁误判流动性
  2. 争议监控按「提议事件」触发,不轮询状态。争议窗口从提议那一刻开始走,晚发现就是少了时间
  3. 按低关注度而非按金额筛查高风险市场(因为错误提议风险与关注度反相关)
  4. 组合分散按裁定路径统计,不按市场数量
  5. 短周期策略把延期建模成分布,用 $T/(T+\Delta)$ 显式折价,按分位数取值
  6. 把「判无效」当成有正概率的常规结果纳入定价,而不是异常分支。仓位价格偏离 $0.50 越远,这项折价越大
  7. 争议保证金要预备好,且预置在正确的链和资产上——真要争议时临时调资金来不及

一个正面的事实

写了这么多风险,最后说一件让我踏实的事:结算完成后的赎回是纯链上操作,不依赖运营方。

前端宕机、API 宕机、撮合引擎宕机,都不影响 redeemPositions。赎回没有截止时间,任何人都可以自己构造这笔交易。

这是整个架构里非托管性质真正兑现的一个环节。配合我在第三篇提到的「运营方宕机时无法按市价卖出」,可以得到一个更精确的表述:

非托管保证的是「结算后一定能拿到钱」,不是「随时能按市价离场」。

这两件事经常被混为一谈,而它们的差别在极端情况下就是全部。


小结

下一篇写收益型抵押品——为什么它不只是”多赚点利息”,而是把时间从定价里消掉了。


延伸阅读


文中的博弈条件与年化衰减公式是用于说明激励方向的简化模型,不是任何平台的实际参数。保证金金额、争议窗口时长、投票周期一律以各平台官方文档为准。


Share this post on:

Previous Post
收益型抵押品:它不是"多赚点利息",是把时间从定价里消掉了
Next Post
跨平台价差不等于套利:预测市场聚合器的价格归一化

继续阅读

如果觉得有用

订阅更新,每次发新文章第一时间收到。不发广告、不搞推销。