当前位置: 首页>>技术问答>>正文


有多少比特币/比特币总量?

qingchuanTR 技术问答 , , 去评论

由于比特币经常被奖励给矿工miners,比特币的数量是否会无限增长,或者是否有一个最大的比特币数量(总数)?如果有某种限制,它是什么,它是如何执行的?

 

最佳解决方法

每个比特币区块在系统中引入50个新硬币。这个数量(50)每210,000块减半。所以,获得硬币的极限是很容易的:它是几何系列的总和。

reward-schedule,比特币

另外请注意,这是一个上限;由于四舍五入问题,实际数量可能会稍低(BTC的小数位数有限,设置为8)。

 

次佳解决方法

预先定义的协议会限制比特币的总数,使其逐渐接近总计2,100万比特币(忽略通过删除或放错钱包文件而丢失的比特币)。根据该协议,2100万比特币的限额为硬性规定("hard-wired"),并且不会更多。比特币增长趋势如下图所示:

比特币数量/总量趋势

 

第三种解决方法

正如上面所提到的,比特币使用fixed-point数学来计算区块补贴。因此,忽略不可靠的创世纪块,各种丢失的硬币和无人认领的奖励,最大比特币数量为20999999.9769 BTC。

我通过下面的python程序找到了这个数字:

COIN = 100 * 1000 * 1000
nSubsidy = 50 * COIN
nHeight = 0
total = 0
while nSubsidy != 0:
    nSubsidy = 50 * COIN
    nSubsidy >>= nHeight / 210000
    nHeight += 1
    total += nSubsidy

print total / float(COIN)

它旨在反映比特币客户端的这些代码:

int64 static GetBlockValue(int nHeight, int64 nFees)
{
    int64 nSubsidy = 50 * COIN;

    // Subsidy is cut in half every 210000 blocks, which will occur approximately every 4 years
    nSubsidy >>= (nHeight / 210000);

    return nSubsidy + nFees;
}

当然,它只有2100万比特币,只有3bitcents,所以差别不大。

 

第四种方法

根据BIP(比特币改进建议),我发现,这个代码:

 nSubsidy >>= (nHeight / 210000);

实际上将在2200左右的某个时间将报酬生成回报到50。使硬币供应无限。上面的python代码没有这个属性。 C++代码的确如此。见BIP https://github.com/bitcoin/bips/blob/master/bip-0042.mediawiki

 

第五种方法

根据目前的规则,最多只有2100万个硬币(在这里的其他答案中解释)。不过,我想补充一点,这是通过普遍的协议,这意味着它可以改变。

看到这个问题:Could there be hyperinflation in Bitcoin?

纵观金钱的历史,我怀疑只有2100万美元的硬币是否靠谱。是否有超过2100万个硬币取决于"the people"是否要求它,历史再次是我们的指南。

比特币增长趋势,图二:
比特币数量增长趋势图二

参考资料

 

本文由《纯净的天空》出品。文章地址: https://vimsky.com/article/3808.html,未经允许,请勿转载。