入門
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 解決方案(如閃電網路)會減少鏈上交易嗎?
- 是否需要調整區塊大小或其他參數?
已複製連結