比特币的发行总量上限是约 2100 万枚。为什么偏偏是这个数字?中本聪先公布了发行规则,后来在与 Mike Hearn 的通信里解释了自己的取舍。把这些发言按时间放在一起,能看到“怎么算”和“为什么选”是两个问题。
先公布总量和减半规则
2009 年 1 月发布 Bitcoin 0.1 时,中本聪写明:新币随区块产生,分配数量每四年减半,并直接给出 2100 万枚的总量。对当时读到公告的人来说,这已经是系统预先设定的发行方式。
但公布规则,并没有回答设计者最初为什么选这个数量。
总流通量将为 21,000,000 枚币。它们会在网络节点创建区块时分配给节点,分配数量每 4 年减半。
为什么选这个数:面对未知作折中
2009 年 4 月,Mike Hearn 问到发行参数。中本聪说,币的数量和发行时间表是他根据当时认识作出的估计。系统运行后规则就会固定,但在设计时,他无法知道比特币以后会是小众工具,还是会进入更广泛的商业活动。
他想选一个能让标价与既有货币相近的方案,最后作了折中。这是他对设计选择的解释,并不是说 2100 万是某条经济学定律必然推导出的数字。
币的数量和发行时间表,是我根据已有认识作出的估计。这是个艰难的选择,因为网络一旦开始运行,规则就固定下来,我们只能接受它。
总量有限,不等于只能用整枚付款
总量常被误解成使用时的面额限制。2010 年讨论小数位时,中本聪解释:软件内部保留八位小数;如果小金额不方便阅读,可以调整界面上小数点的显示位置。
显示方式变了,币的总量并不会增加。这也是为什么讨论发行上限时,要把“发行多少”和“用什么单位标价”分开。
钱的总量不变,改变的只是逗号和小数点的位置约定。
后来,他补上了计算过程
2011 年 1 月,中本聪再给 Mike Hearn 写信,展示了总量、初始区块奖励、减半周期和出块间隔之间的计算关系。他算出接近每小时 6 个区块,也就是大约 10 分钟一个区块;减半间隔则是 210000 个区块。
他还说自己考虑过每区块 100 BTC、总量 4200 万枚的组合,最后觉得 4200 万似乎太多。这个备选方案让人更容易看出:参数之间可以相互配合,而选哪一组仍涉及判断。
算下来恰好是每个区块 10 分钟: 21000000 / (50 BTC * 24hrs * 365days * 4years * 2) = 5.99 blocks/hour
我考虑过 100 BTC 和 4200 万,但觉得 4200 万似乎太多。
读完这几段原话
2100 万枚来自一组在发布前确定的发行参数。中本聪后来既给出了这些参数之间的算式,也明确说具体数量是面对未知未来作出的估计。读这段历史时,计算过程、选择理由和显示面额值得分别看。