跳到主要内容

安全、验证与生产就绪

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 参数均保持影子运行或测试网状态,不被误标为生产完成。