核对一次跨链接收配置变更
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 更高。
合作试点要进一步验证的问题是:组合后的工作流能否减少人工准备、工具切换、重复核对和证据整理。应针对相同操作,与现有工具逐步记录这些成本。历史结果见发布证据。
下一步集成
为合作试点选定一项配置变更,确认策略、权限迁移、证明或验证路径、故障恢复与验收测试。本例的固定策略实现提供可审阅的起点。开始受控试点。