摘要

经过域分离的语义区块头 ID 承诺除 nonce 之外的所有共识字段。规范区块 ID 与工作量证明摘要都包含 nonce,并分别使用独立域。矿工先证明一次完整 State 转换,再搜索大量采用不同 nonce 的区块头,最后通过原生 PoW 检查与精确边界检查,将找到有效 nonce 的区块头重新绑定到该证明。

Nonce 应当在哪一步进入证明?

State 是由当前未花费输出与共识计数器组成的认证集合。HistoryStep 是区块从父 State 到子 State 精确转换的递归证明。它认证计算成本较高的语义工作,而工作量证明(PoW)只改变一个 128 位 nonce,也就是矿工在搜索过程中反复尝试的区块头字段。如果 nonce 被纳入递归断言,每个候选值都会改变断言,昂贵的证明便无法预先生成。

不含 nonce 的语义区块头

该构造定义三个经过域分离的哈希值:

标识符字段作用
语义区块头 IDSEMHDR__除 nonce 外的全部共识区块头字段HistoryStep 断言
区块 IDBLOCKHDR包括 nonce 在内的全部区块头字段父链接与规范身份
PoW 摘要POWHDR__包括 nonce 在内的全部区块头字段与区块头声明的挖矿目标值比较

语义投影保持区块头字段的精确顺序,只跳过 nonce。变异测试会独立修改每个字段:修改 nonce 必须保持语义 ID 不变;修改任何其他字段都必须改变该 ID。

证明一次,搜索多次

模板固定语义字段交易、State、目标值、区块奖励
证明构造 HistoryStep π只绑定一次 SEMHDR__ 投影
PoW搜索 nonce反复计算 POWHDR__

当某个 nonce 满足目标值时,节点执行一次原生 PoW 检查,并验证该区块头指向的父 State 与子 State 边界同语义模板所证明的边界完全一致。随后,完整区块与终端证明被原子提交。

这种拆分为何没有放开其他字段

递归证明省略的是 nonce,而不是挖矿目标值或任何语义 State 转换字段。原生接受规则要求终端证明中的语义 ID 与候选区块头的所有非 nonce 字段完全一致。包含 nonce 的区块 ID 仍然是链上链接使用的身份标识。

域分离防止同一组区块头字段被交替解释为语义投影、规范区块 ID 或工作量证明摘要。

结果

挖矿边界

证明生成只对固定区块模板执行一次;随后进行的 nonce 搜索只改变被明确排除在证明断言之外的字段。

只要昂贵证明认证的是确定性对象,而独立搜索只改变一个明确的非语义字段,就可以采用这一模式。接受规则必须把胜出的搜索结果重新连接到证明所固定的全部字段。