跳到主要内容

核对一次跨链接收配置变更

Protocol Guard 将 Luvion 的授权模型用于协议升级、管理员操作和跨链配置。本例展示一项具体变更:将固定 OApp 的接收确认数从 20 调整为 32,其他配置保持不变。

打开交互演示 · 查看示例源码

示例使用链 ID 为 31337 的隔离本地 EVM 链、测试身份和本地证明签名者。操作对象是配置,不发送跨链消息或转移资产。确认数和 60 秒延迟均为演示设置。

跟随一项操作​

步骤检查内容可核对结果
准备变更固定 Endpoint、OApp、接收库、远端 EID 和当前配置。变更前后值、基线摘要、配置摘要、nonce 与有效期。
业务审批不同的发行方与运营方地址批准同一个操作摘要。两份业务 ECDSA 签名及其对应的精确变更。
门限授权服务核对审批,构建 PolicyChange 意图,通过受控本地 3-of-5 FROST 形成证书。意图、证书摘要、聚合签名和会话证据。
排程本地证明签名者绑定操作摘要与证书摘要;Gate 核对业务签名、证明和当前状态。排程回执、已消费的 nonce/证书与 readyAt。
执行延迟结束后,Gate 重新检查过期、取消、权限、基线和载荷。Endpoint.setConfig 交易、事件和最终配置。
核对结果将请求的变更与回执、有效配置对照。关联同一请求的导出证据。

在线客户端会实际等待延迟;独立合约测试脚本使用本地测试时间推进。交易结果不确定时,先核对已有操作,再决定下一步。

各层实际验证什么​

FROST 在链下为结构化意图生成授权。EVM Gate 检查两份业务签名,以及本地证明签名者对操作与证书绑定关系的签名。Gate 不直接验证 FROST 证书。本地证明签名者是明确的信任点,演示身份共用一个管理域。

Gate 使用 Keccak-256 和 ABI 编码绑定链 ID、Gate、policyHash、Endpoint、OApp、接收库、EID、beforeHash、configHash、nonce 和有效期。业务签名使用 Ethereum Signed Message,同时检查规范编码、有序非零测试 DVN 地址及确认数范围。

查看源码与已记录结果​

公开示例仓库包含:

  • LuvionConfigGate.sol:策略绑定、双方审批、本地证明、延迟、基线检查、重放处理和取消。
  • LuvionClientConfigGate.sol:在排程前消费 nonce,撤销本次变更。
  • review/check.mjs:合约检查及真实 Safe 1.5.0 对照。
  • REFERENCE-REPORT.json:已记录的合约测试结果与源码哈希。

可以直接在 GitHub 阅读代码;复制和运行遵循仓库当前的许可及评估授权说明。独立测试脚本使用合成证明,不运行私有 FROST 服务。源码报告、在线会话证据和核心测试分别覆盖不同组件。

核对相关源码哈希是否与本次证据中的构建标识一致。哈希匹配有助于确认源码版本,不能代替对在线部署的独立证明。

拒绝与取消用例​

重点检查缺少审批、载荷变化、基线过时、提前执行、过期、重放与取消。客户端 Gate 支持排程前撤销,基础 Gate 支持排程后取消,两者都不能撤回已经执行的配置变更。

权限迁移还需要检查 delegate:仅转移 OApp 所有权,旧的 Endpoint delegate 可能仍然有效。示例显式测试了这一缺口,以及激活时替换 delegate 的行为。合作方部署需要原子化或经过评审的迁移方案。

对照测量了什么​

Safe 本身已经能拒绝审批不足、调用篡改和重放。在 10 月 23 日的本地对照中,Safe 配合时间锁与状态检查适配器,也能拒绝过时基线和超出策略范围的参数;Luvion 示例 Gate 的执行 Gas 更高。

合作试点要进一步验证的问题是:组合后的工作流能否减少人工准备、工具切换、重复核对和证据整理。应针对相同操作,与现有工具逐步记录这些成本。历史结果见发布证据。

下一步集成​

为合作试点选定一项配置变更,确认策略、权限迁移、证明或验证路径、故障恢复与验收测试。本例的固定策略实现提供可审阅的起点。开始受控试点。