往一条链喊话,所有表亲链都能听见:ERC-7888 用状态承诺广播消息
多条 Layer2 挂在同一条主链下面,它们互为“表亲”:各自的批次最终都提交给同一个共识层。ERC-7888 创建于 2025 年 2 月 18 日,仓库记录状态为 Draft,它利用这层亲缘关系设计了一种极简跨链消息:不需要中继网络,不需要桥锁资金,消息发在源链上,目标链自己找证据证明它发过。
一次广播只有一个事件
发布侧的接口小得惊人:IBroadcaster 只有一个函数 broadcastMessage,把任意一条 bytes32 消息写进存储,同时发出 MessageBroadcast 事件,事件索引消息与发布者地址。标准规定同一发布者的同一条消息不允许重复计效,去重压力落在协议使用方。接收侧没有消息投递——目标链上的合约从不知道广播何时发生,它是在需要时反查:IReceiver 的 verifyBroadcastMessage 接收远程读取参数、消息和发布者地址,验证通过即承认事实。推送被改写成拉取验证,这是该协议与传统桥的本质差别。

状态承诺与证明链条
验证的锚点是状态承诺:一个 bytes32 哈希,承诺某条链某时刻的状态,推荐用区块哈希,状态根、批次哈希亦可。IStateProver 提供四步工具:getTargetStateCommitment 从输入算出目标链的承诺,verifyTargetStateCommitment 核对承诺与源链共识层的对应关系,verifyStorageSlot 在此之上验证源链某个存储槽的值,version 报版本号。完整的信任链条因此是三段:源链交易进了某个区块、该区块的承诺被序列化为批次交给共同主链、主链的数据可用性证明承诺无法伪造。证明 StateProver 的实现地址放在可更新的 IStateProverPointer 下,实现升级与代码哈希各有一条事件可查;目标链缓存的证明副本由 updateStateProverCopy 维护。证明逻辑出错时,责任定位在指针指向的地址上,这是审计的第一站。
一次跨链验证的字节旅程
把接收方视角的流程串起来更直观。调用方先构造远程读取参数,告诉目标链要查哪个网络、哪个地址的哪个槽位;StateProver 用当前活跃子树的根构造Merkle 包含证明,证明该笔广播交易的存储确实长在那棵树的某片叶子上。这些字节连同消息一起送进 verifyBroadcastMessage,合约先验证承诺与共识层批次记录的对应关系,再顺存储证明走到槽位值。若源链做过升级或换过证明后端,指针合约里的实现地址与代码哈希就是排查入口:哈希和公开仓库里审计过的二进制对不上,任何验证结论都作废。整条链路上没有可信中继驻留,消息的生死只取决于证明能否在目标链上重放通过。
与桥与同步机制的坐标系
把跨链方案排进坐标系更清楚:锁定释放桥引入新信任集合,中继网络引入运维假设,轻量验证路线如状态同步读同步提交,本标准的广播路线反过来——源链什么都不寄给目标链,目标链凭数据可用性自证所见。代价也对称:广播只有事实性,没有排序性,同一轮次里多条消息的先后要靠应用层逻辑自己定义;消息即内容、内容即标识符,承载复杂指令需要在应用层设计编码。读这类协议时最省心的判断是:它是否声称免信任并不重要,重要的是它把哪些环节诚实地留给了读者自己的验证预算。
广播的语义与它的代价
标准特意区分广播与单播:单播要指定接收方,广播谁都能验,但标识符因此变得相对——远程账户编号由路由与地址共同折叠而成,同一个账户从不同链看会得到不同编号。使用时要记住三点。第一,验证的是数据可用性而非执行正确性,源链若把错误状态也承诺进批次,协议层没有办法替你判断内容对错。第二,验证成本在接收方,每笔跨链读取都要带证明字节串,Gas 消耗比桥推模式更分散但单笔更贵,适合事件频率低、验证频率更低的场景,比如一条治理结果向多条链宣告。第三,Draft 状态意味着接口仍可能改动,实现分散,评估具体产品时以它的部署文档和实际合约为准。这套协议的真正卖点在信任模型:消息的有效性不依赖任何新增Validator集合,只继承两条链共同依赖的那条主链。
本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。