跳至主要內容
入門

Block Subsidy

深入了解 Bitcoin 區塊獎勵機制,包括減半時程、獎勵計算和總供應量。

8 分鐘

Block Subsidy(區塊補貼)是礦工挖出新區塊時獲得的比特幣獎勵。這個機制確保了比特幣的 發行是可預測的,並且總量永遠不會超過 2100 萬枚。

發行機制

比特幣的區塊獎勵遵循一個簡單而優雅的規則:每 210,000 個區塊(約 4 年),獎勵減半。 這個機制被稱為「減半」(Halving)。

減半時程

區塊高度 日期 獎勵
0 2009-01-03 50 BTC
210,000 2012-11-28 25 BTC
420,000 2016-07-09 12.5 BTC
630,000 2020-05-11 6.25 BTC
840,000 2024-04-20 3.125 BTC
1,050,000 ~2028 1.5625 BTC

獎勵計算

區塊獎勵的計算非常直接:初始獎勵除以 2 的 n 次方,其中 n 是已經發生的減半次數。

// Bitcoin Core 中的獎勵計算
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
    int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;

    // 超過 64 次減半後獎勵為 0
    if (halvings >= 64)
        return 0;

    CAmount nSubsidy = 50 * COIN;
    // 右移運算等同於除以 2 的 n 次方
    nSubsidy >>= halvings;

    return nSubsidy;
}

總供應量計算

由於減半機制,比特幣的總供應量是一個收斂的幾何級數:

總量 = 210,000 × (50 + 25 + 12.5 + 6.25 + ...)
     = 210,000 × 50 × (1 + 1/2 + 1/4 + 1/8 + ...)
     = 210,000 × 50 × 2
     = 21,000,000 BTC

精確數字:由於比特幣使用整數運算(聰,1 BTC = 100,000,000 聰), 實際總量會略少於 2100 萬:20,999,999.9769 BTC。

礦工總收入

礦工的總收入由兩部分組成:

礦工收入 = Block Subsidy + Transaction Fees

// 驗證規則
if (block.coinbase_output_value > subsidy + total_fees) {
    return REJECT;  // 礦工不能多拿
}

隨著區塊獎勵逐漸減少,交易手續費將成為礦工的主要收入來源。 預計到 2140 年左右,區塊獎勵將變得微不足道。

成熟期要求

Coinbase 交易的輸出需要等待 100 個區塊確認後才能被花費。這個規則防止了 因區塊鏈重組而導致的問題。

// 共識參數
static const int COINBASE_MATURITY = 100;

// 驗證邏輯
bool CheckInputs(const CTransaction& tx, TxValidationState& state)
{
    for (const auto& input : tx.vin) {
        if (input.prevout.IsCoinBase()) {
            if (nSpendHeight - input.prevout.nHeight < COINBASE_MATURITY) {
                return state.Invalid(TxValidationResult::TX_PREMATURE_SPEND);
            }
        }
    }
    return true;
}

經濟影響

區塊獎勵減半對比特幣經濟有深遠影響:

  • 通縮性質:供應量增長率持續下降,趨近於零
  • 礦工收入:每次減半都會影響礦工的盈利能力
  • 安全預算:長期依賴手續費維持網路安全
  • 市場預期:減半事件通常伴隨著市場波動

查詢當前獎勵

# 獲取當前區塊高度
bitcoin-cli getblockcount

# 獲取特定區塊的 coinbase 交易
bitcoin-cli getblock $(bitcoin-cli getblockhash 840000) 2 | jq '.tx[0].vout[0].value'

# 計算當前區塊獎勵
bitcoin-cli getblockstats 840000 '["subsidy"]'

未來展望

隨著區塊獎勵趨近於零,比特幣網路的長期安全性將完全依賴於交易手續費。 這引發了關於「費用市場」(fee market)的討論:

  • 區塊空間需求是否足以維持礦工收入?
  • Layer 2 解決方案(如閃電網路)會減少鏈上交易嗎?
  • 是否需要調整區塊大小或其他參數?
已複製連結
已複製到剪貼簿