跳到主要内容

安全、验证与生产就绪

1. 安全目标

输入、计算、网络或交付条件不足时,POC V2 必须保持原有已激活算力(Activated Power),并阻止下游读取不完整、相互冲突或权重背书不足的结果。协议不承诺每个周期都产生新算力(Power)。

协议保护以下四项性质:

性质要求
输入完整性只有连续、最终确认且可按边界恢复的链上事实进入计算
计算一致性独立实现对相同输入快照产生逐位一致的结果
背书安全完整验证委员会(Committee)严格超过三分之二权重签署同一结果
状态原子性只有完整封存后的原子激活(Atomic Activate)能改变下游可见算力

2. 威胁模型

威胁主要控制
DApp 伪造贡献注册表(Registry)、托管关系、权益代币和 POC 可信贡献入口(poc_contribution)
索引器缺失或篡改事实连续交易扫描、链身份、最终确认边界、事件原始字节与检查点原子提交
验证者使用不同输入输入快照(InputSnapshot)、逐周期历史、价格快照根和计算上下文(Context)
计算实现分叉可执行规范、黄金测试向量、独立验证器、差分验证与影子重放
验证者双签独立计算密钥、签名日志(Signer Journal)和预留后签名安全槽位
网络注入或重放许可覆盖网络、作用域、严格解码、已验证入站(Validated Ingress)和语义去重
聚合器选择结果只聚合相同计算上下文与结果承诺(Commitment);使用完整验证委员会分母;允许多个聚合器(Aggregator)
中继器修改结果QC 绑定交付批次(Batch),链上验证载荷哈希、序号和状态连续性
部分交付暴露候选结果(Candidate)在原子激活前对 L5 不可见
治理绕过协议治理只能暂停、冻结、拒绝或升级,不能写入算力或推进游标
奖励抢跑或重复领取冻结受益人、首次交付回执(Delivery Receipt)、已领取位图和上限预算

3. 密钥安全

以下身份必须物理或逻辑隔离:Topo 共识密钥、验证者运营者(Validator Operator)、BLS 计算密钥、POC PeerId、中继账户和奖励地址。

生产环境必须满足:

  • 计算密钥由当前运营者在链上授权,并验证持有证明(Proof of Possession,PoP);
  • 签名器(Signer)使用独立进程、HSM 边界和独立签名日志;
  • 签名器只接受结构化计算上下文与结果承诺,不接受任意字节;
  • 签名日志丢失、身份不符、完整性失败或疑似回滚时,系统必须故障即停;
  • 每个中继账户使用单一序列写入器,并与计算密钥权限隔离;
  • 奖励地址在候选结果创建时冻结,任何触发者都不能替换收款地址。

4. 链事实和数据完整性

每个验证者(Validator)应独立读取 Topo 最终确认链源。采集必须从明确的下一交易版本(next_tx_version)开始连续读取完整交易,保留交易内事件序号(event_index),并将事件与检查点在同一事务提交。

系统按以下规则处理安全相关故障:

  • 交易版本存在缺口:停止并重新获取;
  • 同一游标出现不同字节:判定为源冲突(SourceConflict)并停机;
  • 已知事件无法解码:判定为数据模式不受支持(UnsupportedSchema),不能跳过;
  • 历史视图或价格边界无法恢复:返回未就绪(NotReady)或弃权(Abstain);
  • 磁盘满:停止采集或签名,不能自动删除未处理历史。

5. 确定性与独立验证

生产验收必须具备以下证据:

  • 单周期、多周期、未达法定权重(NoQuorum)追赶和空状态补丁(Empty Patch)的黄金测试向量;
  • 注册表事件时点、价格边界、留存规则(Retention)、舍入、溢出和交付批次的边界向量;
  • 至少两个不共享核心辅助库的实现,或一个独立验证器;
  • 随机输入排列、分页、并发和重试的属性测试;
  • 真实周期的多验证者影子重放;
  • Rust 与 Move 对计算上下文、投票(Vote)、BLS、位向量和 QC 的跨实现接受语料。

一旦状态根出现分歧,必须能把首个差异定位到周期输入、价格、受影响用户、基准证明、状态补丁(Patch)、后置状态、交付批次或证据包(Artifact)层。

6. POC 网络安全

POC 使用与 Topo 共识网络隔离的许可覆盖网络(Overlay)。网络只传播已签名投票、QC 和证据包身份,不传播权威链上事实,也不实现主节点、轮次、提案或第二套共识。

入站对象按以下顺序验证:帧上限、严格线协议解码、链与协议套件及验证委员会作用域、哈希与结构、成员与签名、语义去重,最后原子提交持久化对象与事件。提交完成后才能返回语义确认(semantic Ack)。

正常传播使用按目标划分的持久化发件箱和直接推送;清单查询、拉取与修复只补齐缺失对象。网络分区、慢速对等节点(Peer)、聚合器离线和过载只能导致延迟或未达法定权重,不能删除离线权重或降低门槛。

7. 证据包与数据可用性

证据包内容按摘要寻址,定位信息只用于发现。签名前和交付前都必须完整回读并重算摘要。

进入生产前,证据必须证明:

  • 非签名方能够从多个提供方重建证据包;
  • 提供方跨至少两个独立故障域;
  • 候选结果终结前,相关状态补丁与交付批次不会被垃圾回收(GC);
  • 证据包损坏或不可用时,链上交付停止,而不是提交不完整交付批次;
  • 扩大的多周期范围仍在明确资源上限内可重放。

8. 持久化与崩溃恢复

以下三处写入必须保持原子性:

  1. 链事件与采集检查点;
  2. 认证状态节点与结果状态根;
  3. 精确投票预留与后续签名持久化。

跨数据库、文件系统、P2P 和 RPC 的操作不依赖分布式事务,统一采用“稳定身份 → 持久化意图或内容 → 外部动作 → 最终确认对账”的顺序。

必须对输入快照读取、证据包发布、签名器预留、签名持久化、发件箱入队、QC 就绪状态写入以及每个链上交付动作执行强制终止与重启测试。可接受结果只有重试、原样返回已签名投票、弃权或故障即停。

9. 链上状态安全

QC 准入必须验证域标识、链身份、协议套件(ProtocolSuite)、验证委员会、计算密钥成员资格、位向量、多签、严格门槛、计算上下文与结果承诺绑定、防重放以及基准与游标连续性。

链上不重算贡献、注册表、价格、留存规则、受影响用户、本期增量或算力公式。QC 表达验证者对同一结果的背书,候选结果状态机则保证交付完整性。

原子激活之前,暂存中(Staging)、部分交付批次、已封存(Sealed)、已过期(Expired)和已拒绝(Rejected)都不能改变算力读取模型(PowerReadModel)。发生并发激活时,只有与当前基准和游标完全一致的一方可以成功。

10. 链上交付与奖励安全

链上交付执行器(Settlement Worker)必须在 QC 就绪状态持久化后异步运行。交易只有在最终确认的链上效果与操作意图身份一致时才算成功,RPC 接受或交易池出现都不构成成功证据。

责任顺序必须绑定上一次生效状态生成的种子和验证者地址,不使用可轮换的中继账户、QC 哈希或签名方位图。所有验证者窗口结束后必须存在有限的公共兜底(Public fallback)。

奖励不进入计算上下文、结果承诺、QC 权重或算力公式。重复投票、重复交付批次、重新切分交付批次或领取重放不能增加奖励;奖励池(Reward Pool)不足时只禁用奖励并告警,不能拒绝合法 QC 或激活。

11. 可观测性与对账

信号目的
最终确认采集延迟与缺口检测链源与投影完整性
最新就绪边界与生效游标延迟检测计算积压和自动追赶范围
快照根、价格根与周期输入根定位验证者输入差异
结果承诺分组数量检测确定性分叉
已验证投票数量与已签权重比例观察 QC 形成进度
证据包可用性与摘要失败检测数据可用性问题
QC 就绪队列深度与最长等待时间检测交付积压,并确认其不反压计算
候选结果状态与已接受交付批次数量观察暂存、封存和过期
链上交付最终确认延迟与责任顺位观察责任接管和公共兜底
生效版本、游标与种子代次对账原子激活
奖励池、已预留金额与领取状态检测预算和重复领取风险

日志不得记录私钥、完整签名请求、授权凭据(Authorization)、生产 DSN 或无界高基数字段。PeerId、完整哈希和地址应进入受限诊断,而不是监控指标标签。

12. 测试矩阵

测试域必须覆盖
贡献无效应用、代币或托管关系,重复、暂停、事件顺序和最终确认性
输入缺口、空周期、历史配置、价格从未观测、旧价沿用和休眠用户留存
数值精度尺度、逐步舍入、零值、边界、除零、溢出与最大算力
状态成员与非成员证明、状态补丁、后置状态根、空状态补丁和确定性交付批次
签名器相同请求幂等、冲突请求、崩溃点、密钥轮换和撤销
网络未授权对等节点、重复、乱序、分区、繁忙响应、修复与存储重建
QC不足门槛、错误分母、不同结果承诺、无效 PoP 和跨纪元密钥
候选结果重复或乱序交付批次、部分交付批次、过期、拒绝和并发激活
链上交付RPC、Gas 或交易序号故障,主责任窗口离线、全部验证者离线和公共兜底
奖励签名方子集、重复回执、预算不足、重复领取和截止期回收

13. 生产阶段与证据验证门槛

POC V2 从业务语义、确定性规范和参考技术栈,经过验证者影子运行、影子 QC、Move 测试网与对抗性验证,最终进入有限生产试点的阶段门。

阶段门槛必须证明
G0 业务语义多周期 Rp ⁣ ⁣ΔpR_p\!\rightarrow\!\Delta_p 无歧义,其中 RpR_p 表示留存后值、Δp\Delta_p 表示本期增量;成熟贡献定义唯一
G1 输入一致独立节点得到相同周期、价格和计算上下文根
G2 结果一致独立实现得到逐位一致的状态补丁、后置状态根和结果承诺
G3 QC 安全运营者到计算密钥的授权、PoP、完整分母、防双签与门槛成立
G4 链上最小化Move 不包含算力业务公式,状态转换负向测试通过
G5 自动追赶连续未达法定权重后从生效游标完整恢复
G6 原子性与空状态补丁部分交付批次不可见;空结果仍推进游标与版本
G7 容量与数据可用性最大范围、证据包、验证委员会和恢复窗口可执行
G8 链上交付活性主责任、次级责任和公共兜底依次接管,交易故障不反压计算
G9 激励安全回执、位图、预算、领取和资金来源无重复增发路径

14. 禁止模式

禁止模式风险
使用本地最新值或默认值补齐历史输入不同验证者产生不同结果
单一服务计算并要求验证者跟签形成中心化结果权威
从在线对等节点数量中删除 QC 分母网络分区可降低安全门槛
签名器提供任意字节接口绕过结构化复验和防双签
RPC 接受即标记链上交付成功重启后丢失或重复交付
暴露暂存中或已封存的算力下游读取到不完整状态
管理员手工推进游标或写入算力绕过 QC 和自动追赶
用系统时钟、线程数或 Gas 估算决定协议结果破坏跨实现确定性
奖励随投票或交付批次次数无上限铸币可通过重复或重新切分增发

15. 上线就绪声明

以下各项均有可重复证据支持后,POC V2 才能进入有限生产试点:

  1. 两个独立验证者可以从相同最终确认历史得到逐位一致的结果。
  2. 不足严格三分之二权重、部分交付批次或失效候选结果无法改变生效算力。
  3. 任一单个索引器、执行器、聚合器、链上交付执行器、对等节点或管理员都不能单独改变结果。
  4. 未达法定权重、网络分区、崩溃和全体验证者链上交付故障都能安全保持原有状态并恢复。
  5. POC 资源故障不会影响 Topo 基础共识就绪。
  6. 所有未关闭的 P0 参数均保持影子运行或测试网状态,不被误标为生产完成。