把价格放回常识里

易币智财
菜单

比特币区块补贴与矿工总收入:减半改变什么、不改变什么

比特币减半按协议只改变区块补贴,并不改变矿工总收入的记账结构。一个区块的奖励等于该区块的补贴,加上该区块所包含交易的手续费。减半把补贴按固定区块间隔减半,但不会机械地把手续费减半,因此也不会机械地把矿工总收入减半。[B1][B2] 下述内容只依据协议实现与开发文档中的记账规则。来源不给出市场价格,不保证矿工利润;补贴下降单独一项,也不能构成价格预测。[B1][B2]

区块补贴如何按协议减半

Bitcoin Core 中的 GetBlockSubsidy 从 50 BTC 开始计算补贴。每经过一个减半间隔,该函数对补贴做一次右移,效果是把补贴除以 2。[B1] 注释写明间隔为 210,000 个区块,大约四年,而不是一个保证发生在某一公历日期的日程。[B1]

因此,减半由区块高度驱动。当链上累计区块进入下一个 210,000 区块的区间,该区间内新区块的补贴为上一区间的一半。把「大约四年」理解成固定日历承诺,并不符合注释的表述。间隔以区块计数为准;注释中的大约四年,不是保证的公历日期。[B1]

GetBlockSubsidy 只负责补贴。它不把手续费算进去,也不描述矿工以其他计价单位计量的收入。阅读该实现时,应把函数输出理解为:在这一高度上,新区块可增发的补贴数量。右移是整数层面的减半方式,与「每次把补贴除以 2」在协议意图上一致,但该步骤仍然只作用于补贴,不作用于手续费。

区块奖励不等于区块补贴

开发文档指出,区块奖励由区块补贴加上该区块所收录交易的手续费构成。[B2] 就单个区块而言,矿工在协议上可收集的总额对应这笔奖励,而不是补贴这一项。

减半改变补贴,不机械改变手续费。手续费由该块实际包含的交易决定;减半补贴这一动作本身,并不把手续费也减半。[B2] 因此,若把减半说成矿工总收入必然减半,就把协议未规定的手续费行为,误当成减半规则的一部分。总收入是否接近减半,取决于该块手续费在奖励中的份额,而这一份额不属于 210,000 区块间隔规则。

区块的第一笔特殊交易是 coinbase 交易,用来收集上述区块奖励。[B2] Coinbase 在此处是协议术语,指专门收集补贴与手续费的那笔交易,不是同名公司。混淆二者,会把区块记账结构理解成商业品牌。

可用三条对照来阅读文档:区块补贴由 GetBlockSubsidy 按高度与减半间隔给出;交易手续费来自该块收录的交易;区块奖励是补贴加手续费,由 coinbase 交易收集。[B1][B2]

算术示例:四次减半后的补贴

以下算术只说明初始 50 BTC 经四次减半后的补贴,不是对当前市场、当前区块高度或任何时点价格的陈述。[B1] 协议事实是「补贴如何按间隔右移」;下面的数字是假想算术,用来对照补贴与奖励,而不是对某一真实区块的测量。

初始补贴:50 BTC。每一次减半将补贴除以 2,对应实现中的一次右移:

  • 第 1 次减半后:50 ÷ 2 = 25 BTC
  • 第 2 次减半后:25 ÷ 2 = 12.5 BTC
  • 第 3 次减半后:12.5 ÷ 2 = 6.25 BTC
  • 第 4 次减半后:6.25 ÷ 2 = 3.125 BTC

等价写法为 50 / 2^4。先计算 2^4 = 2 × 2 × 2 × 2 = 16,再计算 50 / 16 = 3.125。四次减半之后,每个新区块的补贴是 3.125 BTC。[B1]

不要把 3.125 BTC 写成该块的全部矿工奖励。[B1] 若该块还包含带手续费的交易,coinbase 交易收集的数量是 3.125 BTC 加上这些手续费。[B2] 手续费可以为零,也可以为正;减半规则并不要求手续费同时除以 2。把 50 连续除以 2,只为展示补贴按 2 的幂次下降。该计算与手续费无关,与价格无关,也不能用来断言矿工利润。

减半改变什么、不改变什么

改变的是新区块可增发的补贴:每 210,000 个区块右移一次;仅就补贴而言,新区间是上一区间的一半。[B1]

不改变的是:区块奖励的定义,仍然是补贴加手续费;手续费的形成方式,减半不机械减半手续费;coinbase 交易作为区块第一笔、收集整笔奖励的角色;触发单位仍以 210,000 区块为间隔,大约四年的说法不是保证的公历日期。[B1][B2]

来源限定为协议与记账规则。补贴降低本身不能建立价格预测,也不能保证矿工利润。[B1][B2]

用一个假设例子检查总收入变化

以下数字只是假设,不代表真实区块或当前市场。假设减半前补贴为6.25 BTC,同一比较中手续费也设为6.25 BTC,总额就是12.5 BTC。若只把补贴减半至3.125 BTC,并保持假设手续费不变,新总额就是9.375 BTC。减少的3.125 BTC占原总额的25%,不是50%。这个例子仅说明两项相加时,不能把其中一项的降幅直接当成总额降幅。[B1][B2]

讨论价格时还要多问一步:作者是否提供了补贴规则以外的证据?协议计算能确定补贴如何变化,却不能替代市场判断需要的其他假设。把假设、算术和协议事实分开,才知道结论究竟由哪一层依据支持。

实务核对清单

  1. 先确认文本说的是补贴,还是把补贴直接写成全部矿工奖励。后者漏计手续费。[B2]
  2. 检查是否把 210,000 区块间隔写成某一保证日期。注释是大约四年,由区块高度触发。[B1]
  3. 检查是否声称手续费也会机械减半。来源没有这一规则。[B2]
  4. 检查 50 / 2^n 是否被当成现行收入或市况。该式只是补贴的算术说明。[B1]
  5. 检查 coinbase 是否被当成公司名称。协议中它是收集区块奖励的特殊交易。[B2]
  6. 检查是否从补贴降低直接推出价格或利润。来源不支持这类推断。[B1][B2]
  7. 讨论矿工总收入时,是否同时计入该块手续费。协议上的区块奖励包含两项。[B2]
  8. 检查是否把减半写成与区块高度无关的日历事件。实现按间隔对补贴右移。[B1]

这份清单用于核对术语、算术与证据边界。

来源

  • [B1] https://raw.githubusercontent.com/bitcoin/bitcoin/master/src/validation.cpp
  • [B2] https://developer.bitcoin.org/devguide/block_chain.html