为什么2100万个BTC发行总量少了0.0231?



  • 原创: 申龙斌 申龙斌的程序人生
    链接:https://mp.weixin.qq.com/s/3JxIDvnY3K-VuQ2cD2tOjg

    许多人只是听说比特币的总数为2100万个,但不知道这个数字的准确来源。实际上,2100万个只是一个近似数,精确的数值为 20999999.9769 ,比2100万个少了一点点。

    这个20999999.9769数值可以根据初始发行量和增发的规则推算出来:
    1)最早的区块奖励数为 50 BTC
    2)每产生210000 个区块后,新币奖励数减半
    3)当新币奖励数少于 1 聪时,所有BTC发行完毕

    比特币平均10分钟挖矿产生一个新区块,210,000个区块需要2,100,000分钟,换算成年则为 2100000 / 60 / 24 / 365 = 3.995,约等于4年,大家常说的4年新币减半就是这样推算出来的。

    2009年1月3日,创世区块的奖励为50BTC;
    2012年11月28日,第一次减半,为25 BTC;
    2016年7月9日,第二次减半,为12.5 BTC;
    第三次减半预计在2020年5月发生,此时只奖励6.25 BTC。

    精确的时间戳可以在这些链接里找到:
    https://www.blockchain.com/btc/block-height/0
    https://www.blockchain.com/btc/block-height/210000
    https://www.blockchain.com/btc/block-height/420000

    明白了这些道理,现在就用C#程序来模拟新币产生的过程:

    0_1542337761112_e450dce2-6c89-4cef-b38e-16f4d51bfc2e-image.png

    运行结果中,前两列为起始区块编号和结束区块编号,第三列为新币奖励数,第四列为某个区间内产生的BTC个数,最后一列为累计BTC数量。

    0_1542337796063_65f47175-ed1f-4d0d-a363-faa059394888-image.png

    还可以得出另外两条结论:
    最后一个有新币奖励的区块编号是6929999,以后矿工只能赚交易手续费
    总共33行数据,表示132年后,大概是2140年全部挖完。



  • 有意思,一直以为是2100万个整。