协议docs/protocol/blocks.md

区块与区块头

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

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

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

区块内容

交易位置 0 必须是主要奖励。若计划中的开发付款到期,则紧随其后。用户 PagedSpend 页按规范交易组顺序占据剩余位置。

限制 数值
固定物理页总数,含系统记录 256
无计划付款时的用户页位置 255
有计划付款时的用户页位置 254
有效用户输入 1,020
有效用户输出 510
有效用户操作 1,530
触及的不同 State 分段 256

解码器会在分配内存或解码载荷前拒绝超限计数。

交易根

每个物理页占据通用 256 叶交易树中的一个叶子。未使用位置具有唯一规范空值。交易根的域分离上下文还绑定精确物理页数量,因此添加或删除外观为空的叶子不能产生等价区块。

收据使用该树中的八层包含路径。一个逻辑 PagedSpend 可以占据多个连续叶子;收据绑定其逻辑位置与页面数量。

规范区块头

区块头采用固定 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 的区块 IDBLOCKHDR 域分离上下文下哈希全部字段。它用于父链接、交易周期锚点和规范区块身份。

语义区块头 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 验证见工作量证明,持久交易包含证明见收据

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