21M基于来源的回答
为什么比特币只有2100万枚?
从区块补贴和Halving,到由Full Node独立检查的共识代码。
比特币的供应受限,是因为有效区块只能按照递减的区块补贴计划创造新单位。每个完整验证节点都会独立检查这条规则。众所周知的2100万是这一计划的取整结果,并不是存放在某家公司数据库里的数字。
发行始于区块补贴
矿工可以在有效区块中加入coinbase交易。其输出总额不得超过该区块高度允许的发行补贴加上交易手续费。手续费转移已有的比特币,只有补贴才创造新单位。coinbase奖励超额的区块无效。
Halving使剩余发行量收敛
区块补贴每210,000个区块减半。将越来越小的时期相加,会得到有限的几何级数和。由于比特币按整数聪计量,补贴最终向下取整为零,因此发行总量会在略低于整整2100万枚时停止。
可信度来自独立验证
保护上限的不是口号。运行自有Full Node的用户按照同样的共识规则检查每个区块。改变发行计划需要用户接受不兼容的规则;单靠算力无法让一个支付过多奖励的区块变成有效区块。
规则存在于验证中,而非中央计数器中
Bitcoin Core根据区块高度计算允许的区块补贴。节点随后检查coinbase交易索取的金额是否不超过该补贴加手续费。不存在管理员可以改写的总供应量主变量:每个节点都根据自己接受的区块重建发行历史。
为什么几何级数趋近2100万
前210,000个区块允许每块50 BTC的补贴。之后各时期依次减半为25、12.5、6.25 BTC,以此类推。在理想算术中,50 × 210,000再乘以级数1 + 1/2 + 1/4…等于2100万。但比特币只计算整数聪,因此反复进行整数除法最终会把补贴截断为零,实际供应上限略低于这一整数。
矿工提出发行方案,节点接受或拒绝
矿工可以构造任意候选区块,甚至给自己分配过高奖励。这并不会让区块有效。Full Node会独立拒绝它,经济参与者不会把该分支的输出视为比特币。算力在有效候选区块之间进行选择,并不能改写有效性规则。
提高上限会产生不兼容规则
代码始终可以修改,但用户必须自愿运行修改后的代码。保留当前上限的节点会拒绝通胀区块,因此结果会是网络分裂,而非悄悄稀释现有币。上限的可信度依赖确定性的代码、独立验证、经济协调,以及说服持币人接受自身被稀释所需的高昂代价。
稀缺性只是货币政策的一部分
已知上限不保证价格、采用程度或稳定性。比特币保证的是更有限的一点:任何人都能核验过去的发行,并根据自己执行的规则计算未来最大发行量。需求、流动性、监管、丢失的密钥和市场结构均不在这一保证之内。
2100万上限不是物理定律,而是一条社会与技术层面的共识规则。它的可信度建立在开放代码、高昂的协调成本和独立验证之上。
01丢失的币会降低上限吗?+
它们不会改变发行上限,但可能减少实际可花费的数量。协议无法可靠地区分丢失的密钥和极有耐心的持币人。
02矿工能创造额外比特币吗?+
矿工可以发布这样的区块,但遵守规则的节点会拒绝它。算力不能让无效的coinbase奖励变成有效奖励。
03为什么恰好是2100万?+
这是初始每块50 BTC补贴、每期210,000个区块以及反复减半共同产生的取整结果,不是一个独立的神奇常数。
04发行结束后,什么支付矿工收入?+
设计预期交易手续费会取代区块补贴。未来手续费市场是否充足是经济问题,不是供应上限内含的保证。