從技術角度聊聊比特幣減半

買賣虛擬貨幣
比特幣今天早上又要減半了, 回答幾個老生常談的問題:1.什麼是比特幣減半?2.為什麼要減半?3.誰控制了比特幣減半(主要是有些傳統開發人員理解不了去中心化)?4.比特幣減半是如何實現的?5.比特幣減半後幣價就會漲麼?
什麼是比特幣減半?準確來說是指比特幣區塊挖礦[1]獎勵減半,在中本聰共識協議裡, 為了鼓勵大家參與記賬,設定了記賬的獎勵,這個獎勵也是比特幣發行的方式。最初的區塊獎勵為50個比特幣,每經過210000區塊後,區塊獎勵將為上一次的一半。

下圖是歷次獎勵減半的時間表:

注意:很多人說比特幣每隔四年減半一次,不準確的,實際是每經過210000區塊減半一次, 只是安裝當前的出塊速度,大約每4年獎勵減半一次。直到經過 64 次減半後(屆時將發行完所有的 2100 萬枚比特幣),將不再有新區塊獎勵,挖礦只能獲得交易的手續費。

BTC獎勵為什麼要減半?

為什麼不保持一個相同的獎勵?大家知道穩定價值的最好的限制產量(或流通量),石油和黃金是最好的例子,貨幣也是一樣,很多的貨幣就是在貪婪的政府一次次惡性發行中貶值。

如果比特幣的發行不受控制,建立的比特幣無止境,就無法承載價值,比特幣的發行模擬了黃金開採的過程,金礦隨著開採時間越來越長,能開採的黃金將越來越少。這也是為啥數千年來黃金一個是一個重要的價值交換媒介。

比特幣也是使用類似的方式控制通脹率以保持穩定的價值,因此有些人也稱比特幣為“數字黃金”。

誰控制了比特幣減半?

在傳統開發人員思維裡,程式碼是人寫的,我為什麼就不能更改獎勵了?這是中心化思維與去中心化思維產生的差異。

比特幣是一個由成千上萬客戶端組成的一個網路, 每個客戶端是各自獨立的個體,執行的自己的邏輯,但只有自己執行的邏輯經過別人驗證透過後,才可以在網路上傳播生效。

如果沒有辦法更改讓其他千上萬客戶端更改驗證方式,那麼你的修改就沒法再網路上生效,就是這麼簡單。

唯有按照大家都認可的方式記賬,這就是共識,共識的力量, 共識控制了比特幣減半的邏輯。

比特幣減半是如何實現的?

比特幣獎勵減半的程式碼[2]其實非常簡單,就是下面這個函式:

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;
}

這個函式是根據區塊的高度獲取區塊的獎勵數量。

•nHeight 是當前區塊高度

•consensusParams.nSubsidyHalvingInterval 是減半間隔區塊數,為常量 210000
•halvings,為減半次數,它是一個整型,只儲存整除的整數。
•if (halvings >= 64) return 0; 當減半 64 次之後,獎勵為 0
•CAmount nSubsidy = 50 * COIN; 初始獎勵是 50 個幣,COIN 是以聰為單位的比特幣數量
•nSubsidy >>= halvings; 使用右移位計算最終獎勵,每右移一位相當於除以2。

比特幣減半後幣價就會漲麼?

也許是大家最關心的話題,理論上比特幣減半後,發行量變少了, 如果需求不變的話,價格會上漲,但是實際上真的如此麼?上面列出歷次獎勵減半的時間, 我們看看比特幣的價格,以 2016 年 7 月減半來看:

上面的圖是 2016 年 7 月發生的減半時當時的價格幾乎沒有什麼波動, 直到17 年下半年才開始快速上漲的。

17 年下半年的上漲是因為減半嗎,當然不是,而是因為 ICO 興起了。

同樣可以斷定需要需求沒有大的變化(例如 DEFI 應用導致對幣的使用需求增加)價格依舊不會有大的波動。

結論:減半隻是一個炒作的藉口而已。

References
[1] 挖礦: https://learnblockchain.cn/2019/10/31/7mining
[2] 比特幣獎勵減半的程式碼: https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L1238

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;