协议docs/protocol/blocks.md

区块与区块头

直接接纳区块时,被接受的区块包由以下原子对组成:

text
{规范区块字节, 匹配的 HistoryStep 终端证明}

区块包含固定区块头和最多 256 个固定交易物理页。终端证明绑定不含 nonce 的语义区块头及完整 State 转换。

区块内容

位置零是主奖励,必要时随后为强制系统记录。合约调用形成用户页前缀,其后 是普通原子 PagedSpend 交易组。

限制 Small / Large / Native
不含主 coinbase 的有效页数 63 / 206 / 63
额外系统记录到期时的用户页数 62 / 205 / 62
活用户输入 504 / 504 / 504
合约调用 可用页预算内最多 63 次
不同 State 分段 256

物理解码器保留通用 256 个交易体 / 82,905 字节上限。接受时还检查当前类别 预算,普通逻辑交易可以占多页。

交易根

通用 256 叶交易树承诺逻辑交易 ID。每个系统记录及用户组各贡献一个叶子, 多页 PagedSpend 通过完整逻辑 ID 贡献一个叶子。未使用位置采用规范空值, 根还绑定准确逻辑数量。

回执使用逻辑交易位置上的八层路径,其交易数据重建包含页数和顺序的完整组 ID。 物理页位置与逻辑叶位置是不同概念。

规范区块头

区块头采用固定 212 字节小端序编码:

字段 大小 含义
prev_block_hash 32 父区块含 nonce 的区块 ID
state_root 32 精确的转换后 UTXO State 根
tx_root 32 绑定数量的交易根
timestamp 8 Unix 秒时间
height 8 子区块高度
miner_address 32 主要奖励接收者
nonce 16 Poseidon2b PoW nonce
difficulty_target 32 精确的小端序 ASERT 目标值
log_slots 4 槽位域指数
active_slot_count 8 转换后未花费 UTXO 数量
alloc_counter 8 转换后分配计数器

字段顺序由共识锁定,未来格式不能重排现有字段。

两种区块头标识

含 nonce 的区块 ID 在 BLOCKHDR 域分离上下文下哈希全部字段。它用于父链接、交易周期锚点和规范区块身份。

语义区块头 ID 以相同顺序哈希同一组字段,但跳过 nonce,并使用 SEMHDR__ 域分离上下文。HistoryStep 绑定该投影,使矿工可以改变 nonce,而无需重建转换证明。

接受节点要求终端与原生含 nonce 区块头引用完全相同的非 nonce 字段。

主要奖励

区块中恰好有一个有效的主要奖励输出,其 creation_id 使用与普通分配分离、带高度标签的命名空间:

text
2^63 | block_height

普通输出分配始终低于 2^63,因此奖励记录不会与用户分配标识冲突。

主要奖励只能领取当前矿工补贴以及矿工可领取手续费,不能取回已销毁的 State 增长费。

终端表示

终端采用规范的共享路径编码。多个打开共享的 Merkle 认证节点只传输和存储 一次。解码重建递归验证器使用的完整路径,数学证明、查询次数与认证矩阵 不受影响。

共识将序列化终端限制为 1,100,000 字节,计入压缩表示及终端元数据。 展开大小另有 1,100,000 字节限制。区块字节有独立的 82,905 字节上限; 交易体与包封装不占用终端额度。畸形或非规范编码在昂贵验证前被拒绝。

接受包

终端含有绑定版本、高度、语义区块头哈希和证明类别的元数据。包解码在分配内存前检查长度,并拒绝尾随字节、元数据不匹配或属于其他区块头的终端。

规范区块体保留 42 个区块。直接接纳的区块保存完整区块包。认证追赶同步期间,后缀链尖上的一个已验证终端证明授权精确链接的中间区块体;链尖保存完整区块包,中间记录保存该已验证后缀的紧凑本地授权。区块头永久保存。

Nonce 验证见工作量证明,持久交易包含证明见收据。

原生区块体载荷

原生执行时,Native 区块随固定页流传输规范类型化 opening 和选定交易策略。 完整载荷上限为 713,689 字节。固定页流解码上限保持 82,905 字节。 证明有独立的 1,100,000 字节上限。

原生分配标识使用位 62,序列小于 2^62。同一 State 根绑定 NOID 金额和类型化 对象承诺。交易根绑定原生逻辑组,其中包括选定交易组的策略承诺。回执标识该组中 执行的个人策略。参见原生传输格式。

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