用户需要能够提前知道,下一次区块补贴降低发生在什么位置。最初的 Parano1d 把这个时间点交给 State 扩容决定。主网上线后的运行揭示了一个问题:当前尚未花费的输出数量,无法同时充当时间、交易活跃度和采用程度的刻度。

V2 为两种机制重新分工。区块高度决定发行进度,State 占用率决定新增持久记录的价格。保持状态精简依然有利,但高效复用状态不再推迟补贴下降。

从分叉区块开始计数

新曲线从主网区块 210,537 开始。既有余额不作缩放。第一个发行区间从该区块起算,与创世时间、版本发布日期以及个人升级时间无关。

占用率究竟衡量什么

最初的规则从每块 50 NOID 开始。当持续占用触发更大的 State 域时,补贴减半。其设想是让发行下降跟随网络的有效使用增长。

但活跃状态衡量的是余额式的存量:现在还存在多少个未花费输出。已经完成的交易不会继续计入其中。花费释放槽位,合并交易减少输出,合约可以多次更新同一项权利而几乎不增加活跃记录数量。

主网早期占用率较低,补贴下降也就缺少可见的时间边界。这个问题不仅来自初期活动不足。即使某个应用很活跃,只要它有效复用 State,也可能长期不触发扩容。

于是两个原本都值得鼓励的目标发生了牵制:一方面,希望大家减少长期占用;另一方面,发行曲线却要等更多长期记录出现才能前进。V2 让发行进度不再依赖这种存量变化。

每一步都可以算出来

设起点 H=210537H=210537,每个区间长度 I=1051200I=1051200。对于 h≥Hh\ge H,补贴档位为:

k(h)=min⁡(⌊h−HI⌋,8).k(h)=\min\left(\left\lfloor\frac{h-H}{I}\right\rfloor,8\right).
距 v2 的名义年数首个区块高度每块 NOID完整区间的计划补贴总额
0210,5371616,819,200
11,261,73711.3011,878,560
22,312,93788,409,600
33,364,1375.655,939,280
44,415,33744,204,800
55,466,5372.832,974,896
66,517,73722,102,400
77,568,9371.411,482,192
8 及以后8,620,1371之后每个区间 1,051,200

按 30 秒目标间隔,一个区间相当于 365 天;实际日历日期由出块速度决定。共识使用整数 μNOID,每 NOID 等于 1,000,000 μNOID。表中的金额都是固定常量,边界处没有浮点计算,也不需要运营者作出选择。

State 扩容既不会提前进入下一档,也不会重置计时。区块关系直接检查由认证高度选出的补贴。

这条曲线如何形成

曲线以永久保留的每块 1 NOID 为终点,在八个名义年内完成四次等效减半。每两年的锚点因此是 16 → 8 → 4 → 2 → 1。在两次锚点之间增加一次年度下降,可以把补贴变化分散到更小的步骤。

年度比例近似为 1/21/\sqrt{2}。实际共识并不计算平方根,而是使用固定中间值 11.30、5.65、2.83、1.41。从第一个 v2 区块起,完整序列就已经确定。

初始发行速度也随之降低。旧起始配置是每 20 秒目标间隔发行 50 NOID,对应每日 216,000 NOID;v2 是每 30 秒发行 16 NOID,对应每日 46,080 NOID。与旧规则尚未发生 State 减半时的起始速度相比,降幅为 78.67%。

进入尾部发行前,八个完整区间的计划补贴合计 53,810,928 NOID。此后每块继续发行 1 NOID,每个名义年为 1,051,200 NOID。因此 NOID 没有固定的最大供应量。实际流通量还受到销毁以及未发行、未领取金额的影响,不能直接用补贴总和代替。

持续补贴让手续费之外仍然存在一项明确的出块激励。它不固定挖矿收入的市场价值,也不保证某个以法币计价的安全预算;它确定的是八次下降之后仍然存在的协议发行部分。

保持 State 精简仍然有经济价值

占用率继续决定新增槽位的成本。最低手续费由基础项、输入项、输出项和净新增活跃槽位的增长项组成。增长项被销毁,其余普通费用以及自愿小费可以由矿工领取。

父 State 占用率增长费倍率
低于 50%1×
50% 至不足 75%2×
75% 至不足 90%4×
90% 及以上8×

一笔单输入、双输出付款在最低压力下,共识最低费用为 5,000 + 100 + 1,400 + 2,500 μNOID,即 0.009 NOID。在最高压力下,增长项升到 20,000 μNOID,总额变为 0.0265 NOID。节点的本地转发策略可能要求更高费用。

如果合并交易消耗多个输出、只建立较少的新输出,就不会净增加活跃槽位,因此没有增长费。基础项和输入输出项仍然支付。这种激励在每个 State 等级内部就会起作用,无需等到下一次扩容。

合约也按真实的状态占用计费。一次调用可以用后继合约替换原记录,也可以同时创建付款输出,从而增加一个槽位。程序计数器不会让应用脱离通常的价值与存储成本规则。

让发行进度与存储价格各司其职

高度告诉所有人当前允许发行多少,以及下一档从哪里开始。占用率告诉使用者新增公共状态的代价。用户通过合并与复用降低存储压力时,发行曲线仍按同一套可验证时钟前进。

这正是修改原模型的原因。活跃集合适合描述网络此刻必须保留什么,却无法同时给未来发行提供稳定的时间表。V2 保留状态效率的激励,并让补贴的每个阶段都能事先独立计算。

网络经济文档提供完整规则。下一篇《从现存价值到有效权利》进一步说明,为什么反复发生的合约活动可以与较小的活跃 State 并存。