在所有的比特币代码规则中,很少有这么受人推崇的规则,那就是对比特币发行量的硬性限制。
在比特币的生命周期中,将会有21,000,000个比特币被发行。所有的比特币均来自创建新区块时对矿工的奖励。
第一个创世区块的奖励设定为50个比特币,此后每新建210,000个区块,奖励减半。
一起来看一下比特币的区块链代码中,关于减半算法的代码。
validation.cpp line 1138
v0.16
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}
当区块链数量除以210000大于等于64时,奖励金额直接返回0。
奖励金在2012年当时候从50比特币减半为25比特币,2016年从25比特币减半为12.5b比特币。大概2020年就会再减半为6.25比特币。