完整案例:协议升级
本受控试点集成说明 Luvion 如何保护一次代理合约升级。当前本地实现已包含规范化升级对象、 职责分离审批状态机、受认证 HTTP API、Luvion 授权证书、Lit/PKP 门控授权契约、持久 sidecar、 证据导出和本地 UUPS 执行门测试。
协议升级专用 Lit Action 已注册到隔离的 Group 和 PKP,并完成真实 Chipotle 授权执行;执行门和代理尚未部署到公共测试网。
Lit 验证后,HTTP API 进入 gate_authorized。调用者随后只能提供交易哈希;固定配置的观察器会
独立核验链、Gate 运行时代码哈希、成功回执、精确事件、区块时间、确认数和操作绑定,才会记录
scheduled、executed 或 cancelled。服务也可以使用私有持久区块游标,从固定 Gate 自动发现
已确认事件。只有当范围内所有匹配事件通过完整回执核验且状态转换完成持久化后,扫描游标才会推进。
真实 BSC 测试网的进程恢复和 RPC 主备切换证据仍待完成。
场景
某协议准备把 eip155:1 上的代理 0xProxy 升级到已审核实现 0xImplementationV2。操作必须使用 upgrade-mainnet-v3 策略,获得一次协议审批、一次安全审批和 3-of-5 授权,才能由时间锁执行。
1. 构造规范意图
适配器绑定:
- 链和代理合约地址;
- 新实现地址;
- 完整调用数据及其哈希;
- 代码哈希或已审核构建标识;
- 策略版本和审批上下文哈希;
- 时间锁延迟和授权有效期;
- nonce、请求 ID、参与者集合和密钥时期。
修改实现地址、初始化参数、调用数据、链或策略都会产生不同摘要,并使此前审批失效。
2. 评估策略
策略检查允许升级的代理、实现地址或代码哈希、角色分离要求、维护窗口、时间锁延迟,以及外部风险或审查证据。任何缺失、篡改、过期或冲突数据都会失败关闭。
3. 收集审批和授权
合格的协议与安全审查人批准同一摘要。角色门限满足后,分布式签名参与者验证请求并生成绑定意图的授权证书。协调者单独无法创建有效证书。
4. 在执行边界强制检查
Safe 模块、时间锁执行器或协议管理模块验证授权证书,并确认即将执行的调用与授权意图完全一致。
完整保护会把所有代理管理员路径纳入同一验证边界,包括旧 Owner 和紧急密钥路径。
5. 执行并保留证据
适配器使用稳定请求 ID 提交或对账操作。最终证据包绑定策略决定、审批、授权证书、时间锁交易、链上回执、实现地址、代码哈希和见证回执。
当前本地试点可以在门控授权后导出证据。只有观察器核验匹配且已确认的交易后才记录链上状态, 否则报告会明确说明尚无链上排程或执行。
验收测试
| 测试 | 预期结果 |
|---|---|
| 与审查结果完全一致的升级 | 授权并在时间锁后执行 |
| 修改实现地址或初始化参数 | 执行前拒绝 |
| 缺少安全审批 | 无法生成授权 |
| 重复使用授权证书 | 作为已消费或重放而拒绝 |
| 超出有效期 | 拒绝并记录为过期 |
| 协调者重启 | 同一请求继续,不混合不同会话记录 |
| 执行响应丢失 | 按请求 ID 对账,不盲目重提 |
| 旧 Owner 可直接执行 | 不可绕过性验收失败 |
只需替换规范操作字段和执行点,同一模式也可以用于签名人轮换、增发/销毁限额、跨链桥管理和紧急控制,而不需要改变授权原则。