讨论证明原生区块链的容量,不能只看一个区块能放多少笔交易。生产者必须先证明整次状态转移,其他节点还必须能够接收并验证这个证明。交易容量、证明成本和出块节奏需要一起设计。

Parano1d v2 将这组取舍写成了明确的协议参数:默认使用 Small,出块服务器可自行启用 Large;两类区块采用相同的合约核心,目标出块间隔统一为 30 秒。

V2 规则的起点

本篇描述的规则从主网区块 210,537 起生效。2.0.0 版本按高度自动切换。原有创世区块以及 v1 → v1.1 的切换规则保持连续。

先明确容量的计量单位

区块的物理单位是 Tx8x2 页:每页最多八个输入、两个输出,编码长度为 323 字节。一笔单输入、双输出的普通付款只需要一页。较大的逻辑交易可以通过 PagedSpend 合并多页,共用一个交易 ID、一份授权胶囊、一笔手续费和一张回执。

因此,页数不总是等于逻辑交易数。合并许多输入可能需要多页;一次合约调用占一页,并消耗一个确定的合约输出。输入上限则由整个区块共同使用。

类别矩阵用户页数有效输入合约调用出块方式
Smallm236350463默认
Largem2420650463服务器主动启用

这三个上限必须同时满足。Small 可以容纳 63 笔单页付款、63 次调用,或合计占用 63 页的混合业务。Large 可以容纳 206 笔单页付款,也可以容纳 63 次调用加 143 笔单页付款,但总输入仍不得超过 504。Large 增加的是相同合约负载之外的付款空间。

主要 coinbase 单独计算。需要额外的强制系统页时,该区块可供用户使用的页数相应变为 62 或 205。单笔普通逻辑交易最多跨越 128 页,并继续受到所在区块的页数及输入预算约束。

矩阵空间用在什么地方

m 表示补齐后的二进制证明域大小:m23 对应 2232^{23} 个位置,m24 对应 2242^{24} 个位置。它们承载完整递归关系,包括授权、精确的 State 更新、合约执行、前序证明验证以及其他共识检查。

这些位置并不是可以直接换算成交易数量的空格。即使区块只包含少量交易,选定类别仍然要证明其固定关系,证明时间不会随着实际占用页数等比例下降。

两类区块都使用同一个 16 指令、双持久计数器的合约核心。程序在 Small 与 Large 中具有相同语义,开发者无需为普通节点选择另一套能力更弱的执行规则。

生产者如何选择

出块服务器通过 --v2-large-blocks 允许生产 Large。启用之后,选择器仍依据手续费决定使用哪一类候选块,并不会强制每个区块都采用大矩阵。GUI 中没有这个开关。所有验证节点都必须验证两类区块。

额外的支付空间有额外的证明成本,需要由生产者判断是否值得承担。Small 保持为通常的生产路径,Large 则在合适的负载与硬件条件下提供更多空间。

出块流程仍然是一个完整的原子过程:构造精确候选块,证明其状态转移,冻结模板,然后搜索工作量证明 nonce。区块与对应的 HistoryStep 一起被接受。共识不会再维护一个等待后台证明追上的第二高度。

30 秒目标意味着什么

30 秒是网络区块间隔的平均目标,覆盖完整生产过程。它不能解释为“证明完成以后,每个矿工还能额外得到 30 秒搜索 nonce”,也不保证某台机器每半分钟就找到一个区块。

按该目标计算,Small 的单页付款容量上限是每秒 2.1 笔,Large 约为每秒 6.87 笔。合约调用上限在两类中均为每秒 2.1 次。这些数值对应明确的工作负载;实际吞吐量还取决于类别选择、多页交易、输入数量、证明时间和实际区块间隔。

出块节奏之外,还有其他时钟

以区块计数的规则在新节奏下具有不同的名义时长。V2 对难度计算中的分叉边界作了明确处理,旧区间与新区间分别按各自目标间隔累计。

规则V2 参数按目标间隔折算
ASERT 参考周期 / 半衰期6 个区块 / 180 秒适应新的出块节奏
交易 epoch144 个区块72 分钟
硬终局边界 / 最大回滚18 / 17 个区块约 9 分钟达到终局边界
交易体 / 撤销数据保留42 / 36 个区块21 / 18 分钟
Median-time-past / 未来时间容差11 个区块头 / 120 秒独立的时间戳检查

重组之后,节点重新依据候选高度选择规则。合约期限同样使用实际打包高度:一天相当于名义上的 2,880 个区块,应用仍应为确认过程预留余量。

有明确边界的网络对象

终端证明的传输上限保持为 1,100,000 字节。V2 的 Small 上界为 1,014,132 字节,Large 为 1,081,396 字节。执行容量的增长仍受一个明确受限的网络对象约束。

首个 v2 证明绑定经过认证的最后一个旧规则区块。过渡版本携带两代矩阵;矩阵退役机制为之后省去旧矩阵的版本提供路径,同时保留与旧链的可验证联系。省去旧文件的前提,是这种联系仍然可以验证。

同样,Large 留下的证明义务不会在后续 Small 中凭空消失。验证器可以缓存已经认证过的精确携带声明,从而避免重复工作;新声明和新转移继续受到验证。切换类别不切断证明历史。

应用可以依赖的具体规格

V2 将交易接收、区块构造、验证和合约执行放在同一套预算下。默认类别拥有更大的支付容量,生产者能够选择额外容量,而应用在两类区块中面对相同的合约语义。

参数文档列出了完整边界,性能记录则给出带有硬件与负载条件的实际测量。理解这两个层面,才能把容量数字用于工程设计。

系列后续文章:NOID 的发行与状态经济,以及从现存价值到有效权利。