當前位置: 首頁>>技術問答>>正文


有多少比特幣/比特幣總量?

由於比特幣經常被獎勵給礦工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/zh-tw/article/3808.html,未經允許,請勿轉載。