Hyperlane 跨链消息传递(General Message Passing,GMP)是一条可在任意支持链之间重复执行的标准化流程:应用调用源链 Mailbox 的 dispatch 函数发送消息,链下 relayer 将消息与验证元数据提交至目标链,Interchain Security Module(ISM)验证通过后,Mailbox 调用接收方合约的 handle 函数完成 delivery。Hyperlane(HYPER) 从 Mailbox、ISM 与 Warp Route 三个组件描述 Hyperlane 互操作层的整体框架。
多链应用中,开发者需要理解消息从发出到交付的完整链路,才能正确配置安全模块、估算费用并排查未交付消息。ISM 与 Warp Route 说明 Multisig、Aggregation 等 ISM 类型与 Warp Route 的分工,有助于在 process 阶段选择匹配的验证强度。
每条跨链消息拥有全局唯一的 messageId,Mailbox 维护已交付消息映射以防止重放攻击。Hyperlane vs LayerZero vs Wormhole 对比三协议在消息验证路径与部署权限上的结构差异。消息发送方在源链通过 Interchain Gas Payment(IGP)预付目标链 delivery 费用,relayer 在目标链支付 gas 完成 process 调用;Explorer 可追踪消息从 dispatch 到 process 的全链路状态。
Hyperlane 跨链消息流程可概括为六个连续阶段:dispatch(源链发送)、Merkle 树写入、validator 签名(若 ISM 需要)、relayer 索引与元数据收集、process(目标链提交)、ISM 验证与 handle(目标链交付)。该流程不依赖特定应用或一次性事件,任何集成 Mailbox 的合约均可重复触发。
| 阶段 | 发生链 | 核心动作 | 关键参与者 |
|---|---|---|---|
| Dispatch | 源链(Origin) | 编码消息、写入 Merkle 树、发出事件 | 发送方合约、Mailbox |
| 签名 attestation | 源链(链下) | 对 Merkle root 签名 checkpoint | Validator(Multisig ISM 场景) |
| Relay | 链下 → 目标链 | 索引事件、收集 metadata、提交 process | Relayer |
| Verify | 目标链(Destination) | 验证消息来源与完整性 | ISM |
| Deliver | 目标链(Destination) | 调用接收方 handle 执行业务逻辑 | Mailbox、Recipient |
上表展示 Hyperlane GMP 从源链到目标链的完整阶段划分。dispatch 与 delivery 分别在两条链的 Mailbox 合约上完成,relayer 与 validator 承担链下传输与安全 attestation 职能,ISM 则在目标链充当消息验证网关。
图 1. Hyperlane 跨链消息流程总览:从源链 dispatch 经 relayer/validator 到目标链 ISM 验证与 handle delivery 的完整路径。
源链 dispatch 阶段由发送方合约调用 Mailbox.dispatch() 触发。Mailbox 接收三个核心参数:目标链 domain ID(destinationDomain)、接收方地址(recipientAddress,以 bytes32 编码)与消息体(messageBody)。Mailbox 在消息体前附加标准消息头,包含 version、nonce、origin、sender、destination、recipient 等字段,确保消息可唯一标识且不可篡改。
dispatch 执行后,Mailbox 将完整消息作为 leaf 插入增量 Merkle 树(由 MerkleTreeHook 合约维护),并发出 Dispatch 与 DispatchId 事件。messageId 为消息(含头部)的 keccak256 哈希,由 dispatch 调用返回,可在 Explorer 中追踪。nonce 为源链 Mailbox 的单调递增计数器,即使消息体相同,nonce 不同也会生成不同 messageId。
发送方可通过 quoteDispatch() 查询跨链费用,费用涵盖源链 dispatch 成本与目标链 delivery 的 interchain gas 预付。Post-Dispatch Hook 可在 dispatch 后通过 InterchainGasPaymaster(IGP)向 relayer 预付目标链 gas。dispatch 完成后,消息进入待 relay 状态。messageId 由完整消息哈希生成,目标链 Mailbox 通过 delivered(messageId) 映射防止重复交付。
Relayer 与 Validator 在 Hyperlane 协议中承担不同但互补的职能。Validator 负责安全 attestation:当源链 Mailbox dispatch 新消息时,MerkleTreeHook 发出 InsertedIntoTree 事件,Validator 读取当前 Merkle root 并对 checkpoint 签名,将签名发布至公开存储(如 AWS S3 或 Google Cloud Storage)。Relayer 负责传输层:监听源链 Mailbox 事件,收集 ISM 所需的 metadata(如 validator 签名、Merkle proof),并在目标链调用 Mailbox.process() 提交消息。
Validator 仅在 Multisig ISM 或 Economic Security Module 场景下必需;若接收方配置 Optimistic ISM、零知识证明 ISM 或其他无需 validator 签名的模块,则 relayer 只需收集对应 ISM 要求的 metadata。Hyperlane 不强制 enshrined validator set,接收方可自行配置 Multisig ISM 中的 validator 地址与签名阈值。
Relayer 内部包含 Indexer 与 Submitter:Indexer 通过 RPC 查询源链事件并写入本地数据库;Submitter 确认 gas 已预付、获取 metadata、模拟并广播 process 调用。delivery 失败时 relayer 按指数退避策略自动重试。Validator 签名公开可获取,任何人均可携带签名调用 process;消息发送方通过 IGP 选择预付对象,relayer 运营者需将收入再平衡至目标链账户。
目标链 delivery 阶段由 relayer 调用 Mailbox.process(metadata, message) 触发。Mailbox 首先检查 messageId 是否已交付,若已存在于 delivered 映射中则拒绝重放。随后 Mailbox 查询接收方合约指定的 ISM(通过 recipientIsm() 或应用自定义配置),将 message 与 metadata 传递给 ISM.verify() 函数。
ISM 验证通过后,Mailbox 调用接收方合约的 handle(origin, sender, body) 函数,将消息体与来源信息传递给应用层逻辑。接收方合约须实现 IMessageRecipient 接口的 handle 函数,在函数内执行跨链治理投票、资产铸造/释放、状态更新等业务操作。delivery 成功后,Mailbox 将 messageId 标记为已交付,并发出 Process 与 ProcessId 事件。
对于 Warp Route 等资产跨链应用,handle 函数内触发锁定、铸造、销毁或释放代币的逻辑;对于跨链治理应用,handle 函数内记录投票权重或执行提案。delivery 阶段的 gas 由 relayer 在目标链支付,发送方已在源链通过 IGP 预付相应费用。
图 2. 目标链 delivery 序列:Mailbox process 触发 ISM verify,验证通过后调用 recipient handle,并通过 messageId 映射防止重放。
ISM(Interchain Security Module)是目标链上负责验证跨链消息真实性的智能合约。Mailbox 在 delivery 前将 message 与 relayer 提交的 metadata 传递给 ISM.verify();验证逻辑因 ISM 类型而异。默认 ISM 为 Multisig ISM,要求配置数量的 validator 对源链 Merkle root 签名达到阈值;应用也可部署自定义 ISM 或使用 Aggregation ISM 组合多种验证路径。
验证 ISM 配置可查询接收方合约的 ISM 地址、检查 validator 阈值与 ISM 类型参数,并在 Explorer 中确认具体消息的验证状态与 metadata。
| ISM 类型 | 验证方式 | 适用场景 |
|---|---|---|
| Multisig ISM | Validator 对 Merkle root 签名达阈值 | 默认安全模型、通用消息 |
| Aggregation ISM | 多个 ISM 均需验证通过 | 多重安全叠加 |
| Rate Limited ISM | 限制单位时间消息/转账量 | 高价值资产跨链 |
| Routing ISM | 按来源链指定不同 ISM | 多链差异化安全策略 |
| 自定义 ISM | 应用自行定义 verify 逻辑 | 特殊业务需求 |
Multisig ISM 下,relayer 从 validator 公开存储获取 checkpoint 签名,连同 Merkle proof 一并提交。Economic Security Module 通过 EigenLayer AVS 提供经济安全,validator 欺诈可能触发 slashing。验证通过后 ISM 返回 true,Mailbox 才执行 handle;验证失败则 process 交易 revert,relayer 将按退避策略重试。
Hyperlane 跨链消息传递存在机制层面的结构性风险,需从消息层、传输层与经济层分别理解。消息层风险包括:自定义 ISM 配置不当可能削弱验证强度;接收方 handle 函数逻辑漏洞可能导致错误状态更新。传输层风险包括:relayer 延迟或停止 relay 可能导致消息长时间未交付(IGP 已预付但 relayer 未提交);目标链 gas 价格波动可能影响 relayer 提交意愿;validator downtime 在 Multisig ISM 阈值较高时可能阻塞 liveness。
经济层风险包括 validator 欺诈可能触发 HYPER slashing,IGP 费率配置错误可能导致 delivery 费用不足。消息 delivery 非即时,需等待源链 finality 与 relayer 提交,可靠性依赖 IGP 预付与 relayer 运营质量。
| 风险来源 | 典型表现 | 缓解思路 |
|---|---|---|
| ISM 配置 | 验证阈值过低或 validator 不可信 | 审计 ISM 参数、使用 Aggregation ISM |
| Relayer 延迟 | 消息长时间处于 pending | Explorer 追踪、IGP 费用充足、备用 relayer |
| Validator 停机 | Multisig 签名未达阈值 | 冗余 validator、监控 checkpoint 发布 |
| 合约漏洞 | handle 或 ISM 逻辑被利用 | 审计、Rate Limited ISM、Pausable ISM |
| 重放攻击 | 同一 messageId 重复交付 | Mailbox delivered 映射自动拒绝 |
操作前应核对链上 Mailbox、ISM 与接收方合约地址,区分协议默认配置与应用自定义配置。Warp Route 等资产跨链场景还需额外关注路由合约与代币映射关系。
Hyperlane 跨链消息遵循 dispatch → attestation → relay → verify → deliver 的可重复流程。源链 Mailbox.dispatch() 编码消息并写入 Merkle 树;validator 对 checkpoint 签名(Multisig ISM 场景);relayer 收集 metadata 并在目标链调用 process;ISM 验证通过后 Mailbox 调用 handle 完成 delivery。messageId 全局唯一,已交付消息不可重放。IGP 预付目标链 gas,Explorer 提供全链路追踪。
源链发送方调用 Mailbox.dispatch() 发送消息,Mailbox 写入 Merkle 树并发出事件。Relayer 监听事件、收集 ISM 所需 metadata,在目标链调用 Mailbox.process()。ISM 验证通过后,Mailbox 调用接收方 handle 函数完成 delivery。
dispatch 发生在源链(Origin Chain)的 Mailbox 合约上,由发送方合约触发。delivery 发生在目标链(Destination Chain)的 Mailbox 合约上,由 relayer 调用 process 触发,最终通过 ISM 验证后调用接收方 handle。
Validator 对源链 Merkle root checkpoint 签名,为 Multisig ISM 等安全模块提供 attestation。Relayer 负责链下传输层,索引源链事件、收集 metadata 并在目标链提交 process 调用。两者职能互补,relayer 在所有消息 delivery 中必需,validator 仅在特定 ISM 类型下必需。
每条消息拥有唯一 messageId(dispatch 时返回的 keccak256 哈希)。Hyperlane Explorer 可查询消息从 dispatch 到 process 的全链路状态,包括源链发送时间、relayer 提交记录、ISM 验证结果与目标链 delivery 确认。
常见原因包括:IGP 预付费用不足、relayer 尚未提交或 retry 中、validator 签名未达 Multisig 阈值、目标链 gas 费用过高导致 relayer 延迟提交、ISM 验证失败。可通过 Explorer 查看具体消息的 pending 原因与 retry 记录。
不会。Mailbox 维护 delivered(messageId) 映射,已交付的 messageId 在目标链 process 时将被拒绝,从而防止重放攻击。nonce 字段也确保即使消息体相同,不同 dispatch 仍产生不同 messageId。





