区块奖励与减半

本页解释 Parallax 受 Bitcoin 启发的发行计划、coinbase 成熟度机制,以及区块奖励在协议状态中的管理方式。

货币参数
参数符号数值说明
初始奖励
R₀
50 × 10¹⁸ wei
每个区块 50 LAX
减半间隔
H
210,000 区块
10 分钟出块间隔下约 4 年
Coinbase 成熟度
M
100 区块
奖励解锁延迟
Lockbox 地址
0x0000000000000000000000000000000000000042
成熟度记录的状态存放位置
按 epoch 计算的累积供应
截至每个减半 epoch 的所有已发行奖励之和(单位:LAX)。
每区块奖励(阶梯)
各 epoch 中每个区块对应的 LAX 奖励。
概览
Parallax 的货币时间表与 Bitcoin 完全对应:总量 2100 万,按 50 → 25 → 12.5 …… 每 210,000 个区块减半一次。
  • 初始区块奖励:50 LAX(以 wei 表示,即 50 × 10¹⁸)。
  • 减半间隔:每 210,000 个区块(10 分钟出块时约 4 年)。
  • 理论总供应量:上限约 21,000,000 LAX。
  • 采用与 Bitcoin 结构一致的通缩发行模型,但以 wei 计量以兼容 EVM。
奖励函数(来自 consensus.go)
伪代码
calcBlockReward(height):
  if height == 0:
    return 0
  reward = 50 * 1e18
  halvings = height / 210000
  if halvings > 63:
    return 0  // reward effectively zero
  divisor = 2 ** halvings
  return reward / divisor
Coinbase 成熟度调度
区块奖励在成熟前会被锁定——既防止即时花费,也保证解锁是确定性的。
  • 每一笔奖励都会绑定一个解锁高度:current_height + 100 区块。
  • 奖励被写入状态 trie,存放在一个特殊的 lockbox 地址(0x...42)下。
  • 当链高度达到解锁高度时,奖励将被转入矿工地址。
  • 这让待解锁供应与可花费供应在账本状态中清晰分离。
奖励调度(简化版)
伪代码
Finalize(block):
  height = block.number
  reward = calcBlockReward(height)
  unlock = height + CoinbaseMaturityBlocks

  if reward > 0:
    lockbox[unlock].addr = coinbase
    lockbox[unlock].amt  = reward

  // Pay matured rewards for current height
  if lockbox[height].amt > 0:
    AddBalance(lockbox[height].addr, lockbox[height].amt)
    Clear(lockbox[height])
经济属性
Parallax 强制执行可预测的稀缺性,且零预挖发行。
  • 每个减半 epoch 把新发行量减少 50%。
  • 累积发行量渐近趋向 2100 万的上限,但永远不会超过它。
  • 奖励完全分配给矿工——没有任何开发者或基金会份额。
  • 发行曲线被硬编码,确保上线之后不会出现任何可裁量的货币变更。
总发行量近似
伪代码
totalIssued(upToHeight):
  sum = 0
  for h in 1..upToHeight:
    sum += calcBlockReward(h)
  return sum
// approaches 21e6 * 1e18 wei
状态表示
在状态 trie 中追踪奖励的成熟度。
  • 每个解锁高度使用两个状态键:schedKeyAddr(height) 与 schedKeyAmt(height)。
  • 二者分别由 keccak256("maturity:addr:" + height) 与 ("maturity:amt:" + height) 派生而来。
  • 数值统一存放在 lockbox 地址下,把奖励元数据与用户账户隔离开来。
  • 支付完成后,两个键都会从状态中清除以回收 trie 空间。
状态键派生(来自 consensus.go)
伪代码
schedKeyAddr(height):
  return keccak256("maturity:addr:" || height)

schedKeyAmt(height):
  return keccak256("maturity:amt:" || height)
小结

发行小结

Parallax 的发行完全是确定性的。奖励每 210,000 个区块减半一次,最终趋向于零。流通中的每一枚币都可追溯到链上挖矿产出,使 Parallax 成为一个公平启动、由工作量保障的网络,没有任何预挖或隐藏补贴。