跳到正文

跨链中继者活性风险

跨链中继者活性风险是指已经过认证的跨链消息未能及时送达或执行的风险;诊断时必须区分源链最终确定性、证明可用性、消息传递、目标链执行和资产核算。

更新于

仅供教育参考,不构成投资建议。跨链延迟可能使资产滞留、消耗费用;当证明、到期、合约或恢复假设失效时,还可能造成永久损失。

直接答案

跨链中继者活性风险,是指一条有效且已经过认证的消息未能及时提交到目标链或在目标链执行的风险。中继者通常负责传递消息及证明或元数据;它既不能赋予源链事件最终确定性,也不负责授权消息载荷。源链共识、证明或证明签发、目标链验证以及接收方执行,是彼此独立的依赖环节。

传递延迟最初属于可用性问题,并不证明资产已被盗。不过,按照具体产品规则,延迟仍可能带来融资成本、错过期限、凭证过期、流动性无法使用,甚至永久损失。反过来,源链收据和前端的 Pending 标签也不能证明故障出在中继者:源链可能尚未最终确定、证明可能尚不存在、目标链可能暂停、燃料费可能不足,接收合约也可能回滚。

无许可传递能力取决于具体协议。Hyperlane 和 Wormhole 描述了第三方可以传递已认证消息的路径,其他部署则可能限制执行者、目标链调用者或恢复函数。开放提交不代表中继者可以篡改已经过认证的载荷;把中继者列入许可名单,也不能取代目标链验证或防重放机制。

工作原理

有效的生命周期分析应区分 source submittedsource finalizedproof pendingreadydestination submittedfailed/retryableexecutedexpired/cancelled。这些是分析标签;每个协议都有自己的链上字段。OP Stack 提款、CCTP 销毁铸造消息、Wormhole VAA 和 Hyperlane 消息采用不同的证明、时序、费用与重试规则。

首先确认源链操作究竟是锁定、销毁还是发出了价值,以及它是否达到规定的最终确定性。随后确认预期的根、验证者签名、守护者 VAA 或证明是否可用且仍然有效。完成这两步后,才应判断中继者是否观察到消息、接受其费用策略、构造了正确的元数据,并把消息提交给准确的目标合约。

目标链执行有其独立故障模式:链或排序器停机、RPC 数据陈旧、合约暂停、接收方版本错误、燃料不足、有序 nonce 阻塞、过期或应用调用回滚。交易哈希只是提交参考。要确认完成,还需核验成功收据、协议的已处理状态、接收方事件或状态变化、正确的代币身份,以及达到所需目标链最终确定性后的预期余额影响。

手动中继并非通用的救援按钮。只有在已部署协议开放合格入口、可以取得原始消息和准确证明、调用者具有权限、消息尚未被消费且未过期,并且调用者能够支付目标链燃料费及随调用转移的价值时,手动中继才可行。应先模拟官方目标链调用。切勿为了修复第一条原因未明的消息而再次在源链锁定或销毁资产。

重试与重放不同。有文档依据的重试,是在目标链效果失败后重新提交同一条规范消息;正确的已消费状态或 nonce 状态最多只允许一次成功效果。即使防重放机制保障了安全,多个中继者同时竞争仍可能浪费燃料费。取消本地任务无法撤回已经广播或纳入区块的目标链交易。

请按以下流程操作:

  1. 固定协议、通道与已部署版本,以及源链和目标链的域与合约;记录源链交易与日志、消息 ID 或 nonce、资产动作、原始数量、接收方和到期时间。
  2. 验证源链收据与事件,再应用该链和协议规定的确认或最终确定性规则;检查区块身份及重组状态,不要只相信界面。
  3. 找到协议规定的证明、VAA、证明签发、检查点或根;核验其对应的源链状态、版本、签名者集合、可用性以及失效或过期状态。
  4. 检查目标链健康状况、消息合约和接收方版本、暂停状态、nonce 或已处理状态、前序要求、截止时间及所需原生燃料资产。
  5. 判断消息传递是无许可、许可名单制还是限制调用者;若存在合格的手动路径,应重建并模拟完全相同的原始载荷、证明和官方目标链调用。
  6. 刷新燃料上限、价格、汇率加价、费用上限、退款和报价有效期;提交或重试同一消息,处理重复提交与替换竞争,并保留目标链收据。
  7. 对账源链托管或销毁、在途负债、目标链铸造、解锁或调用、协议费与燃料费、退款及最终状态;仅通过文档所列渠道升级处理,绝不披露助记词或私钥。

示例

  • 按阶段归因延迟。 源链最终确定耗时 12 minutes,生成证明或证明签发耗时 8 minutes,中继队列耗时 35 minutes,目标链纳入区块耗时 5 minutes。端到端时间为 12 + 8 + 35 + 5 = 60 minutes。只有 35-minute 队列属于传递活性;最初的 20 minutes 和最后的 5 minutes 由不同环节负责。
  • 目标链燃料报价变得不足。 燃料上限为 300,000。按 25 gwei 计算,报价是 300,000 * 25 * 10^-9 = 0.0075 ETH。执行时,60 gwei 需要 0.018 ETH,形成 0.018 - 0.0075 = 0.0105 ETH 的缺口。在源链支付更多燃料费,不一定能为目标链执行补足资金。
  • 重复中继者消耗燃料,而非本金。 三个中继者提交同一条 100,000 USDC 消息。胜出交易使用 180,000 gas * 30 gwei = 0.0054 ETH;另外两笔交易各在消耗 70,000 gas * 30 gwei = 0.0021 ETH 后回滚。中继燃料总成本为 0.0054 + 0.0021 + 0.0021 = 0.0096 ETH;若防重放状态正确,只会产生一次 100,000 USDC 效果,而非 300,000 USDC
  • 跟踪在途负债。 一条锁定铸造路径锁定了 25 ETH,但目标链调用失败:托管余额为 +25 ETH,封装资产供应量为 +0 ETH,在途负债为 25 ETH。重试同一消息成功后,托管余额仍为 25 ETH,封装资产供应量升至 25 ETH,在途负债降为 0 ETH。若在源链另行存入一笔新的 25 ETH,则会形成 50 ETH 的托管余额和两项义务。

风险

  • 源链交易仍在待处理或已经回滚,但界面显示已发送。
  • 在源链事件达到足够最终确定性之前就采取行动。
  • 源链重组移除或改变该事件。
  • 证明、证明签发、检查点或签名数据不可用。
  • 使用了陈旧、错误或已经失效的根或签名者集合。
  • 许可名单中的中继者密钥或服务不可用。
  • 把无许可传递误认为消息一定会被及时传递。
  • 把限制调用者的入口误认为公开的手动路径。
  • 目标链、排序器、RPC 或索引器不可用或数据陈旧。
  • 目标链消息合约或接收方已暂停。
  • 接收方升级或地址不匹配导致调用回滚。
  • 目标链燃料上限过低。
  • 燃料报价、汇率、费用上限或退款假设变得陈旧。
  • 钱包缺少正确的目标链原生燃料资产。
  • 消息、凭证、证明或执行截止时间已经过期。
  • 有序 nonce 缺口阻塞后续消息。
  • 重试或已消费状态逻辑造成重复效果或阻碍恢复。
  • 重复提交、取消或替换竞争浪费燃料费。
  • 虚假支持渠道提供恶意合约、证明或调用数据。
  • 源链锁定或销毁、在途债权、目标链效果、费用和退款未能正确对账。

常见误解

  • 中继者负责认证消息。 消息传递只负责携带证据;目标链验证器和应用负责执行源链、发送方、载荷及防重放规则。
  • 中继者停机意味着资产已经丢失或一定会自动退款。 最初结果是延迟;到期、恢复、偿付能力及退款后果取决于具体产品。
  • 无许可中继意味着任何人都能修改载荷,或保证消息立即执行。 认证机制防止篡改,而证明、燃料、链和接收方的可用性仍决定活性。
  • 任何重试都会造成重复铸造。 正确的重试会重复使用同一条消息,并且最多只允许一次成功效果;新的源链转账则会形成新的义务。
  • 目标链交易哈希或界面显示完成就证明已经收到资产。 应确认收据成功、已处理状态、接收方事件、余额、代币身份及所需最终确定性。

相关主题

来源

导航

搜索知识库...