协议docs/protocol/invariants.md

共识不变量

这些不变量描述每个已接受规范链尖所代表的含义。它们用于审查实现和协议变更,不是第二套共识常量来源;可执行规则始终具有最终权威。

链连续性

每个非创世区块头都指向其精确父区块含 nonce 的区块 ID,并把高度增加一。时间戳、目标值与工作量证明满足从规范历史推导的确定性规则。

分叉选择只在保留具备硬最终性的前缀的有效候选链之间比较累计工作量。工作量相同时,以更小的链尖区块哈希作为确定性决胜规则。

原子有效性

区块及其匹配的 HistoryStep 终端证明构成一个被接受的区块包,任一对象都不能脱离另一个进入规范链。

终端证明绑定无 nonce 语义区块头,包括交易承诺与转换后 State 承诺。含 nonce 区块头再单独检查工作量证明和父链接。

规范交易分组

每个 Tx8x2 物理页采用固定的 323 字节编码。逻辑 PagedSpend 是由 1 至 128 个物理页组成的连续、规范有序组。所有页面上的组元数据、填充与承诺字段必须一致。

逻辑交易 ID 承诺完整有序组。页面重排、插入、删除或修改都会改变意图。

支出权限

每个用户输入都由有效的授权证明封装覆盖,该封装绑定逻辑交易 ID 与输入所有者。验证过程证明授权者知道所有者的 256 位秘密,但不会把秘密放入交易。

网络对等密钥、钱包标签与本地地址发现状态均无支出权限。

精确 State 转换

对于每个已接受逻辑交易:

  • 每个输入槽在父 State 中被占用;
  • 所有者、金额与 creation_id 匹配引用记录;
  • 每个输入最多消费一次;
  • 每个输出目标在分配前为空;
  • 输出目标不会重复分配;
  • 扣除精确手续费后价值守恒;
  • 转换后计数器、分段根和全局根均精确。

未触及的 State 分支原样传递。节点应用已证明转换公开的规范写入,不会另行推导不同的执行结果。

槽位复用安全

数值槽位清空后可以复用。单调增长的 creation_id 区分先后占用者。指向旧占用者的引用不能花费同一索引上的新替代输出。

发行与系统记录

第一个物理页是区块要求的精确主要奖励。在计划开发付款边界上,下一个物理页是精确强制付款。用户交易不能替代、遗漏或修改必要系统记录。

其他价值只能通过明确输入、输出和手续费进入或离开用户交易。State 增长费被销毁,不会转给矿工或基金。

递归连续性

每个 HistoryStep 验证前一个有效性终端证明与当前完整公开转换。有效链尖因而携带从链起点到其精确转换后 State 的递归连续性。

工作量证明不能让无效终端变得可接受。有效终端也不能替代工作量证明或累计工作量分叉选择。

硬最终性规则

回滚深度严格小于 18 个区块。任何改变具备最终性的更深前缀的候选链都不具备资格。

State 扩展只读取已经具备硬最终性的 18 区块头窗口。至少需要 10 次占用率达到或超过 75% 的观测;9/9 不会扩展。因此,链尖上的临时分叉不能反复切换容量。

认证同步

快照对等节点只是字节来源。安装前,新节点检查以下内容完全一致:

  • 最终性边界上经过验证的永久区块头;
  • 匹配的递归终端;
  • 清单高度、State 根与计数器;
  • 每个分段的标识、长度与根;
  • 重建出的精确全局 State 根。

候选数据先写入独立的临时区,再通过单个事务成为规范 State。中断或无效传输不会留下安装到一半的 State。

策略边界

转发选择、动态手续费下限、对等评分、挖矿线程数和交易排序均为本地策略。它们可以决定节点保存或挖掘什么,却不能改变满足共识的区块有效性。

修改任何不变量都必须执行测试中描述的边界测试。常量与公式见共识参数

ParanO(1)d 技术文档共识行为以源代码为准。