区块与区块头
直接接纳区块时,被接受的区块包由以下原子对组成:
{规范区块字节, 匹配的 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 使用与普通分配分离、带高度标签的命名空间:
2^63 | block_height
普通输出分配始终低于 2^63,因此奖励记录不会与用户分配标识冲突。
主要奖励只能领取当前矿工补贴以及矿工可领取手续费,不能取回已销毁的 State 增长费。
终端表示
终端采用规范的共享路径编码。多个打开共享的 Merkle 认证节点只传输和存储 一次。解码重建递归验证器使用的完整路径,数学证明、查询次数与认证矩阵 不受影响。
共识将序列化终端限制为 1,100,000 字节,计入压缩表示及终端元数据。 展开大小另有 1,100,000 字节限制。区块字节有独立的 82,905 字节上限; 交易体与包封装不占用终端额度。畸形或非规范编码在昂贵验证前被拒绝。
接受包
终端含有绑定版本、高度、语义区块头哈希和证明类别的元数据。包解码在分配内存前检查长度,并拒绝尾随字节、元数据不匹配或属于其他区块头的终端。
规范区块体保留 42 个区块。直接接纳的区块保存完整区块包。认证追赶同步期间,后缀链尖上的一个已验证终端证明授权精确链接的中间区块体;链尖保存完整区块包,中间记录保存该已验证后缀的紧凑本地授权。区块头永久保存。
原生区块体载荷
原生执行时,Native 区块随固定页流传输规范类型化 opening 和选定交易策略。 完整载荷上限为 713,689 字节。固定页流解码上限保持 82,905 字节。 证明有独立的 1,100,000 字节上限。
原生分配标识使用位 62,序列小于 2^62。同一 State 根绑定 NOID 金额和类型化
对象承诺。交易根绑定原生逻辑组,其中包括选定交易组的策略承诺。回执标识该组中
执行的个人策略。参见原生传输格式。