共识
Parano1d 只接受同时满足原生区块头规则、递归 HistoryStep 关系与工作量证明的区块。分叉选择在所有有效候选链之间比较累计工作量,同时保留具备硬最终性的前缀。
源代码是共识的规范定义。本规范描述稳定规则集及其边界。
候选区块有效性
子区块只有满足以下全部条件,才能扩展父区块:
prev_block_hash等于父区块含 nonce 的区块 ID;height精确等于parent.height + 1;- 时间戳大于前 11 个区块头的过去时间中位数,并且最多领先本地时钟 120 秒;
difficulty_target等于从规范历史精确推导的 ASERT 目标值,且不得低于协议难度下限;- Poseidon2b PoW 摘要严格小于按小端序解释的目标值;
- 物理区块编码及全部交易组均为规范形式;
- 强制主要奖励与任何到期开发付款金额精确;
- 交易周期(epoch)锚点当前有效;
- 区块内部不存在输入或输出冲突;
- 手续费、价值守恒、分配计数器与槽位写入精确;
log_slots遵循最终性扩展规则;- 转换后 State 计数器与根等于区块头承诺;
- 所提供的
HistoryStep终端验证通过,并绑定无 nonce 语义区块头。
区块与终端作为一个整体接受。没有匹配终端的有效区块,不是已接受的共识对象。
分叉选择
每个有效区块头按其目标值贡献工作量。累计工作量最大的候选链成为规范链。
若两个候选链的累计工作量相同,则链尖区块哈希按字典序较小者胜出。该决胜规则是确定性的;到达顺序和对等节点 ID 均不起作用。
硬最终性
只有最近 18 个区块的窗口可以重组。任何会改变具备最终性的前缀的候选链都不能参与分叉选择。回滚深度必须严格小于 18,因此最大可接受重组为 17 个区块。
硬最终性还把 State 扩展测量与临时分叉隔离。用于扩展的 18 个区块头占用率窗口结束于最终性边界,而非链尖。
这是协议规则,而非依赖社会共识的检查点。所有节点都根据高度推导出同一边界,并拒绝更深的替代链。
难度
目标出块间隔为 15 秒。ASERT 使用六区块参考周期与 90 秒半衰期调整目标值。目标值编码为 256 位小端序整数。
验证过程从规范区块头历史中推导唯一精确的目标值。矿工不能在某个允许范围内自行选择难度。
交易时钟
用户交易绑定到每个 144 区块交易周期(epoch)起点的区块 ID。边界区块仍接受前一个交易周期锚点;新锚点从下一个子区块开始生效。
对于子高度 C > 0,锚点高度为:
floor((C - 1) / 144) × 144
该时钟独立于六区块 ASERT 参考周期。它限制重放和过期内存池交易的寿命,同时避免把钱包授权绑定到每一个新 State 根。
本地策略不是共识
节点可以自行选择转发或挖掘哪些可接受交易。默认内存池使用最小及动态手续费策略、冲突预留和有界资源。只要交易已经出现在有效区块中,这些本地选择就不能使其失效;唯一例外是共识明确检查同一最小手续费公式的部分。
同理,发布版节点要求连接两个已完成身份认证的对等节点后才允许挖矿。这是防止隔离的运维保护,不是区块有效性投票。
创世与网络身份
公网只有一个编译进二进制的链起点、网络魔数与协议标识。节点不会与对等节点协商共识参数。来自其他网络的数据在父区块、身份或证明检查阶段即会失败,无法成为规范 State。