稍微了解比特币的人都听过,比特币的货币供给量是可以预测的,而且永远不会超过 2100 万 BTC。严格来说,因为在协议层面,所有的统计都是以最小的货币单位(聪)来进行的,所以这个上限是 2099 9999 9769 0000 聪。
但是,这个上限是怎么定义出来的呢?怎么保证它不会被打破?
不太懂行的人可能第一反应是到比特币白皮书里找答案 …… 但那里并没有(也没有关于协议的许多其他方面的信息!)。
- “比特币的白皮书原教旨主义者应该知道,下述内容在白皮书里面都没有:多签名、矿池、2100 万 BTC 上限、GPU/ASIC 挖矿、10 分钟的出块间隔、层级确定式地址推导、最好的链是积累最多 PoW 的而非最长的,等等” -
你想在 Bitcoin Core 实现重寻找这个定义吗?如果你在 github 库里面搜索 “21000000”,你会发现一个常量 MAX_MONEY constant,但它跟货币供给量无关!
- 译者注:代码的注释部分:“注意,这个常量 * 并不是 * 货币总供给量;在当前的比特币协议中,因为许多理由,货币总供给量恰好小于 2100 万 BTC;但是,这个常量更多是一种健全性检查。因为这个检查会被共识攸关的验证代码所用,MAX_MONEY 常量的具体数值也将与共识紧密相关;在一些不常见的场景中,比如一个允许凭空增发货币的溢出错误,因为这个常数的存在,可能导致分叉。” -
所以,这个上限到底是怎么施行的呢?可能它没有你想的那么直接。