跨链消息传递系统的抗联盟证明 第一部分

  • thogiti
  • 发布于 4小时前
  • 阅读 47

本文深入探讨了LayerZero、CCIP和Across等跨链桥的安全经济学,提出了一个包含联盟、相关性和机制的框架,用于评估和提高桥的安全性。核心观点是桥的安全性取决于打破它所需的最廉价的相关联盟,因此需要购买独立性、支付检测费用和投资未来,使作弊在经济上不可行。

LayerZero(分割式)、CCIP(仲裁)和 Across(乐观式)的博弈论、相关性和机制设计的实践性深入研究

大多数桥并非因密码学失效而崩溃,而是因为经济因素使得一小群相关联的人员同时作弊变得有利可图。如果我们想清楚地推理 LayerZero 的分割证明(独立的 Oracle + Relayer)、CCIP 的 仲裁/DON 以及 Across 的 乐观挑战,我们需要一个框架来捕获以下三个方面:

  1. 可以串通的战略参与者的联盟
  2. 这些参与者之间的相关性(相同的所有者、云、客户端栈、管辖权),以及
  3. 使勾结在均衡状态下无利可图的机制(stakes,费用,赏金,选择,保险)。

这篇博客为你提供了该框架,然后展示了如何应用它。


为什么这很重要

  • 低有效仲裁 ≠ 安全。 几次备受瞩目的桥事件成功的原因在于少数密钥或验证者被控制、泄露或以锁步方式移动。“m-of-n” 只有在 m 个最容易腐败的密钥或验证者不相关时才有用。
  • 只有当有人真正观看时,乐观主义才有效。 如果挑战很少或激励不足,单靠 bonds 无法在高价值窗口期间拯救你;检测必须可靠。
  • 拆分证明功能强大——但前提是实际上已拆分。 在同一运营商、云区域或社交关系下运行 Oracle 和 Relayer 会悄悄扼杀主要优势。

常见陷阱:

  • “我们添加了更多验证者,所以我们更安全了。” 如果他们共享相同的云或所有者,则不然。
  • “我们使 bonds 翻了一番,因此风险减半了。” 如果检测仍然很低或攻击者扩大贿赂规模,则不然。
  • “乐观主义 = 更便宜。” 仅当观察者激励机制使检测概率保持较高水平时才成立。

1) 一个不等式中的博弈

设 $C$ 为攻击成功必须作弊的最小联盟

  • LayerZero:$C={O,R}$(Oracle 和 Relayer)。
  • CCIP:$m$ 中的任何 $t$ 个。
  • Across:relayer(以及未在窗口内提出质疑)。

每个 $i\in C$ 都有可以被 slashing 的 stake $S_i$,一个 franchise $Ri=\sum{t\ge0}\deltai^t F{i,t}$(未来费用的 NPV——即声誉),一个内部成本 $c_i$,以及一个条件联盟概率 $p_i=\Pr(\text{others collude}\mid i\text{ colludes})$,它随着相关性而上升。如果攻击者仅在成功时才支付贿赂,则 $i$ 的预期收益为 $b_i p_i$。只有在以下情况下,理性的 $i$ 才会串通

$$ b_i p_i \;\le\; q S_i + R_i - c_i, $$

其中 $q$ 是检测概率。对联盟求和并使用攻击者的预算/价值 $V$ 产生威慑条件

$$ \boxed{\;\sum_{i\in C}\frac{qS_i+R_i-c_i}{p_i} \;>\; V\;}\tag{★} $$

左侧是腐败成本 (CoC); 右侧是风险价值 (VaR)。使 CoC 超过 VaR,理性的攻击者无法支付足够的钱来让联盟背叛你。

如何提高 CoC: • 提高检测 $q$(观察者,赏金), • 提高 stake $S_i$ 和 franchise $R_i$(归属费用), • 降低相关性(从而降低 $p_i$)。

架构镜头。

  • LayerZero: 两个独立的条目;如果你真正拆分供应商并降低 $p_O,p_R$,CoC 会迅速跃升。
  • CCIP: 攻击者只需要最便宜的 $t$ 项;相关性使这些项更便宜。
  • Across: 单个项 $qS+R-c>V$;乐观的系统生死取决于检测

2) “相关性”的作用

相关性显示在 $p_i$ 中。两个有用的思维模型:

(a) 高斯 copula(对于像 $O$,$R$ 这样的对)。 如果边际 “接受贿赂” 概率为 $u$ 和 $v$,则联合接受为

$$ C\rho(u,v)=\Phi\rho(\Phi^{-1}u,\Phi^{-1}v), $$

其中 $\rho$ 是相关性旋钮。随着 $\rho$ 的升高,尾部事件对齐:“我们都说是” 的可能性不成比例地增加,因此条件概率 $p_i$ 升高,你的威慑项 $(qS_i+R_i-c_i)/p_i$ 缩小

(b) Beta – 二项式 / 类内相关 (对于委员会)。 具有类内相关 $\rho_g$ 的可交换伯努利类型会增加许多验证者一起移动的可能性。攻击者只需要翻转最便宜的 $t$ 个;$\rho_g\uparrow$ 使这些更便宜。

非数学观点: 如果两个验证者共享一个数据中心和一个管理员,他们更有可能一起失败或说 “是”。上面的数学只是量化了这一点。


3) 重复博弈:使用声誉作为真正的抵押品

验证者是企业。良好的声誉是继续赚取费用的权利。在具有不完善监控的无限重复博弈中,“不叛逃” 条件与之前相同:

$$ b_i p_i \;<\; qS_i + R_i - c_i. $$

如果你想要宽恕(对 $T$ 期的暂时惩罚),则耐心阈值变为

$$ \delta_i^*(T)=\frac{b_i p_i - qS_i - c_i}{R_i + (b_i p_i - qS_i - c_i)\frac{1-\delta_i^T}{1-\delta_i}}, $$

因此,更严厉/更长的惩罚会降低运营商保持诚实所需的耐心程度。在实践中:将费用归属到 $R_i$ 中,以及可信的驱逐(提高 $q$)将未来变成抵押品。


4) 可组合性:确保路线安全,而不仅仅是跳

实际流程链式机制:LZ 消息触发 CCIP 读取,CCIP 读取通过 Across 结算。考虑阶段 $s=1,\dots,S$,其中阶段级别为 $\mathrm{CoC}_s$ 和 $V_s$。

  • OR 组合(任何阶段都会破坏路线):路线 CoC $=\min_s \mathrm{CoC}_s$;你需要每个阶段的 CoC $>V_s$。
  • AND 组合(所有阶段都必须中断):路线 CoC $=\sum_s \mathrm{CoC}_s$。

一个实用的工具包是信任图:不可或缺的参与者是边,其权重为 $w_i=(qS_i+R_i-c_i)/p_i$。对于 OR 组合,攻击成本是最小割;首先加强最薄弱的割。

(如果你是视觉型:将路线绘制为 DAG 并用 $w_i$ 标记每个边。移除后断开 source→sink 连接的最小边集是最小割。那是你最薄弱的联盟。)


5) 具体数字,以及 “假设” 和敏感性

设 $V= USD 10M$。为了便于阅读,我们将 $c_i=0$。

LayerZero(拆分 $O+R$):两个角色上的相同 stake 和 franchise

选择 $S_O=S_R=8.5M$, $R_O=R_R=1M$, $q=0.5$。那么每个角色贡献 $(qS+R)=0.5\cdot 8.5+1=5.25M$。

  • 低相关性 ($p=0.3$):每个角色 $\frac{5.25}{0.3}=17.50M$;总和 $=35.0M$ ≫ $V$。
  • 中等 ($p=0.6$):每个角色 $8.75M$;总和 $=17.5M$。
  • 高 ($p=0.9$):每个角色 $5.833M$;总和 $=11.667M$。
  • 如果 $p\to0.95$ 怎么办?总和 $\approx 2\times(5.25/0.95)=11.053M$。
  • 如果在事件期间 $q$ 降至 $0.3$ 怎么办?每个角色的 $(qS+R)=0.3\cdot 8.5+1=3.55M$。当 $p=0.6$ 时:每个角色 $3.55/0.6=5.917M$;总和 $=11.833M$(仍然 >$V$,但幅度缩小了)。

敏感性(CoC 的导数): $\displaystyle \frac{\partial \mathrm{CoC}}{\partial q}=\sum_i \frac{S_i}{p_i} > 0,\quad \frac{\partial \mathrm{CoC}}{\partial p_j}=-\frac{qS_j+R_j}{p_j^2}<0,$ $\displaystyle \frac{\partial \mathrm{CoC}}{\partial S_j}=\frac{q}{p_j},\quad \frac{\partial \mathrm{CoC}}{\partial R_j}=\frac{1}{p_j}.$ 因此:CoC 对 $p$(相关性)的增加最脆弱,尤其是在 $p$ 已经很小的时候——这正是选择重要的原因。

CCIP(仲裁 $m$ 中的 $t$)

设 $m=7, t=4$。每个验证者都有 $S=3M$, $R=0.5M$, $q=0.5$ → $(qS+R)=2.0M$。攻击者购买最便宜的四个 项 $(2.0/p)$。

  • 中等相关性 ($p=0.7$):per = $2.857M$;总和 (4) $=11.43M$ (> $V$)。
  • 高相关性 ($p=0.9$):per = $2.222M$;总和 (4) $=8.889M$ (< $V$) → 安全性不足

如果我们限制同一所有者的节点为 1 并强制客户端多样性会怎样? 经验表明,这会显着降低 $p$;即使 $p$ 降低 0.1–0.2 通常也会翻转不等式。

Across(乐观式)

Relayer bond $S$,$R=0.5M$。检测 $q$ 取决于观察者的赏金。

  • 如果 $q=0.3$:需要 $qS+R>V \Rightarrow S>(V-R)/q= (10-0.5)/0.3=31.67M$。
  • 如果赏金将 $q$ 提高到 $0.6$:$S>(9.5)/0.6=15.83M$。

如果相关性降低了观察者的可用性(因此在节假日/中断期间 $q$ 会下降)会怎样? 你会想要动态赏金,该赏金会因热门路线/时间而激增,以保持 $q(T)$ 稳定。


6) 使 (★) 成立的机制——而不会破坏产品

具有相关性意识的采购(具有惩罚的 VCG)

运行一个选择拍卖,以相同的预算最大化 CoC。获胜者是那些在 $\rho\le\rho_{\max}$ 的前提下使 $\sum (qS+R)/p$ 最大的获胜者。支付给每个获胜者他们的外部性(标准 VCG);在评分中添加一个简单的相关性惩罚。

## 伪代码草图(链下)
def score(candidate, others, q):
    # 从相关性模型估计条件 p_i
    p_i = estimate_conditional_p(candidate, others)
    return (q*candidate.S + candidate.R - candidate.c) / max(p_i, 1e-3)

def select_committee(candidates, t, rho_max):
    # 贪婪的 VCG 风格:选择 t 个在 rho 上限下具有最高边际 CoC 的
    chosen = []
    while len(chosen) &lt; t:
        feasible = [x for x in candidates if corr_ok(chosen+[x], rho_max)]
        x_star = max(feasible, key=lambda x: score(x, chosen, q))
        chosen.append(x_star); candidates.remove(x_star)
    payments = compute_vcg_transfers(chosen)  # 外部性
    return chosen, payments

为什么这有效: VCG 对于成本/franchise 是真实的;相关性上限是可行性约束。你实际上是购买独立性而不会多付钱。

具有相关性意识的 slashing

使用测量的 $p_i$ 缩放 stake:$S_i(p_i)=S_0\cdot \frac{p_i}{p^\star}$。那么即使相关性漂移,$(qS_i)/p_i$ 的 stake 分量也会稳定在 $qS_0/p^\star$。

function requiredStake(uint256 p_i_bps) public view returns (uint256) {
    // 以基点为单位的 p_i;链上参数 S0 和 pStar
    return S0 * p_i_bps / pStar_bps;
}

观察者市场 将资金转化为检测 $q$

为有效的欺诈证明支付赏金 $b$。如果观察者作为具有速率 $\lambda(t)$ 和单个成功概率 $q_d$ 的泊松过程到达,则到时间 $T$ 的检测为

$$ q(T)=1-\exp!\left(-q_d \int_0^T \lambda(t)\,dt\right). $$

提高 $b$ 以提高 $\lambda$;在公共仪表板上显示此信息,以便应用程序在选择快速层之前看到预期的 $q(T)$。

保护隐私 的相关性估计

使用 MPC 通过运营商提供的元数据(提供商、ASN、客户端、地理位置)计算 $\hat\Sigma$。仅发布 $\hat\Sigma$ 和每对 $\widehat{\mathrm{corr}}$,而不是原始数据。


7) 在现实世界中部署它

  • 从合理的默认设置开始。 为每个路线选择一个目标利润率 $M^\star=\mathrm{CoC}-V$(例如,20-50%)。使用保守的观察者赏金初始化 $q$;使用 $p^\star$ 在观察到的 $p_i$ 的 第 95 个百分位数处的相关性感知公式设置 $S_i$。
  • 衡量正确的事物。 跟踪 $\hat\Sigma$、$p_i$、$q(T)$、按路线的 VaR 以及跨组合路径的最小割 CoC。当利润率低于阈值时发出警报。
  • 平稳调整。 使用滞后带更新 stakes/费用,以避免振荡。当 VaR 飙升时,使用紧急控制杆(速率限制,保险启动)。
  • 记录独立性。 要求运营商证明所有权/基础设施并通过第三方扫描进行验证;在评分/slashing 中惩罚虚报。
  • 需要注意的现实相关性: 云区域中断、跨产品的共享验证者运营商、相同的客户端栈、共享托管/密钥、跨 “独立” 公司的相同法律实体。

8) 我们听到的误解(以及数学如何纠正它们)

  • “更多的验证者总是意味着更高的安全性。” 如果他们一起移动,则不然。在 (★) 中,攻击者购买最便宜的 $t$ 项;相关性使这些项更便宜。
  • “更高的 stakes 总是意味着更好的安全性。” 仅当检测 $q$ 和独立性 $1/p$ 跟上步伐时才成立。否则,你将停放资本而没有充分地移动 (★)。
  • “如果我们有足够的验证者,则相关性无关紧要。” 当你添加表面上多样但系统上相同的运营商时,它变得更加重要;尾部风险会增加。
  • “乐观的系统总是更便宜。”$q(T)$ 可靠地高时,它们是。如果不是,则 bonds 会膨胀或风险会增加。

9) 安全边界和验证

绘制 安全性 ($\min_r \mathrm{CoC}_r$)、去中心化(例如,Nakamoto 系数)和 效率 (反向延迟)。在温和的假设下,你会得到一个凸折衷曲线——使用它来发布快速+保险慢速+便宜菜单,其中包含明确的利润率和预期的 $q(T)$。

以统计方式验证。如果你的 CoC 估计的标准偏差为 $\sigma$,为了以置信度 $(1-\alpha)$ 和功效 $(1-\beta)$ 检测安全缺口 $\Delta$,你需要大约

$$ N \ \ge\ \left(\frac{z{1-\alpha/2}+z{1-\beta}}{\Delta/\sigma}\right)^2 $$

观察(模拟 + 事件)。不要根据点估计宣布胜利。


10) 特定于架构的说明

LayerZero(拆分)。 使拆分真正:不同的所有者、云、客户端、地理位置;随机选择;归属费用以提高 $R_i$;使用 $p_i$ 缩放 $S_i$;向用户显示每个消息的 CoC 分数,该分数加总了两个角色。

CCIP(仲裁)。 使用具有相关性意识的 VCG 加上多样性上限;轮换成员;要求客户端多样性;设置 slashing,使得最便宜的 $t$ 总和轻松超过 VaR;发布委员会级别的 CoC 并在其降低时发出警报。

Across(乐观式)。 投资于观察者流动性:在热门时期/路线上激增赏金以稳定 $q(T)$;提供可选的保险以限制尾部风险;如果 $q$ 波动,则限制快速通道或自动提高 bonds。


一句话总结

你的桥的安全性仅取决于可以破坏它的最便宜的相关联盟——因此,购买独立性、为检测付费并归属未来,直到 (★) 使作弊变得不经济。

展望未来

这个框架自然地扩展到 重质押市场共享排序器跨 rollup 证明:一旦你确定了最小的破坏联盟、塑造 $p_i$ 的相关性以及移动 $q, S, R$ 的旋钮,就应用相同的 (★)。随着新架构的出现,你将不需要新理论——只需要新输入。

行动号召

  • 发布你的 CoC。 在链上公开每个路线的 腐败成本 分数。
  • 采购独立性。 将委员会选择切换到具有相关性意识的 VCG(即使是贪婪的近似也有帮助)。
  • 资助观察者。 使 $q(T)$ 可观察且激励兼容。
  • 归属费用。 将声誉转化为真正的抵押品。

附录:快速数学解释(对于非专业人士)

  • 为什么要除以 $p$? 如果一旦你说 “是”,联盟的其余部分很可能会加入(高 $p$),那么你的贿赂更有可能支付;我们需要更少的钱来诱惑你。这就是为什么 $(qS+R)/p$ 随着 $p$ 的升高而下降——相关性会削弱威慑力
  • 什么是 copula? 一种将个体风险分开独立地模拟 “一起出错” 的方法。高斯 copula 的 $\rho$ 是一个旋钮:调高它,联合的 “是” 事件变得非常普遍。
  • 为什么要有声誉 $R$? 它是你被抓住后失去的所有未来费用的现值。通过归属和可信的驱逐来增加 $R$;它的作用类似于赚取收益而不是闲置的额外 stake。
  • 最小割直觉。 在多阶段路线中,攻击者想要通过你的信任图的最便宜的割。计算它,发布它并提高其权重。
  • 原文链接: github.com/thogiti/thogi...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
thogiti
thogiti
https://thogiti.github.io/