JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

挖礦、難度與減半

無論有多少機器加入,比特幣是如何讓區塊大約每十分鐘出現一次的;又是如何讓挖到區塊的獎勵大約每四年減半一次的。

一座沒有主人的時鐘

想像一個本該每十分鐘響一次的廚房計時器。麻煩在於:掌勺的人總在變。有時灶台前只有一個人,有時有一萬個,而且手快的廚師每年都換上更利的刀。要是這計時器從不調整,一群手快的廚師就會讓它每十秒響一次。比特幣面對的正是這個問題。它想要新區塊永遠大約每十分鐘出現一次——可爭著產出區塊的機器數量卻劇烈起伏。它的答案,是一個自動旋鈕,它會重新調校謎題,讓這十分鐘的節奏無論來的是誰都能保持住。

產出區塊的這場比賽就是挖礦,它靠工作量證明運轉:礦工一個數一個數地試,直到某個數讓區塊的雜湊落到目標值之下。把目標值調低,謎題就更難;調高,就更容易。這十分鐘的時鐘,擰的正是這一個旋鈕。

重定難度:自我調校的旋鈕

比特幣每 2016 個區塊核對一次它的時鐘——按每個十分鐘算,這本該正好花兩週。每一批結束後,網路會把這 2016 個區塊實際花的時間,和那個兩週的理想值作比較,然後按比例重設挖礦難度。如果這一批一週就出完,說明礦工跑得比預期快了一倍,於是謎題的難度翻倍。如果拖到了四週,難度就減半。每個人各自跑同一套算術,得出同一個新目標值——沒有委員會,也不用投票。

every 2016 blocks:
  actual_time   = timestamp(last) - timestamp(first)
  expected_time = 2016 * 10 minutes   (= 2 weeks)

  new_target = old_target * (actual_time / expected_time)

  # blocks came too FAST -> actual < expected -> target shrinks -> harder
  # blocks came too SLOW -> actual > expected -> target grows   -> easier
重定難度的規則。每次調整還設有上限,所以單步內難度最多上下變動四倍。

獎勵,以及減半

為什麼會有人燒著電去搶贏這場比賽?因為贏家有錢拿。找到有效區塊的礦工,可以添加一筆特殊的交易,叫做 coinbase,它憑空鑄出全新的比特幣,付給礦工自己。這筆新鑄出的金額就是區塊補貼,世上每一枚比特幣,最初都是這樣進入世界的。

精彩之處在這裡。補貼並非固定不變——它每 210000 個區塊就減半一次,這個事件叫做減半。按一個區塊十分鐘算,210000 個區塊大約要花四年。它在 2009 年從每個區塊 50 枚比特幣起步,降到 25,再到 12.5,再到 6.25,就這樣一級一級往下走。由於這個時間表是寫死的、每次又是按幾何比例削減,將來會存在的總量收斂於一個硬性的上限:略低於 2100 萬枚,大約在公元 2140 年達到。

halving every 210,000 blocks  (~4 years)

  2009  block subsidy = 50.0  BTC
  2012                = 25.0
  2016                = 12.5
  2020                =  6.25
  2024                =  3.125
  ...                  -> 0, around year 2140

  sum of all subsidies -> ~21,000,000 BTC  (a hard cap)
補貼按固定時間表減半,因此總供應量趨近一個固定上限,不再增長。

從補貼到手續費:安全預算

礦工的全部獎勵其實是兩部分相加:區塊補貼,加上這個區塊裡裝的所有交易的手續費。使用者給每筆交易附上一點手續費,去爭搶有限的區塊空間,勝出的礦工把這些手續費連同新鑄出的幣一併收入囊中。今天補貼是其中大得多的那一塊——但每一次減半都讓它縮水,終有一天它會歸零。

這兩個來源合在一起,構成了網路的安全預算——礦工爭搶的總獎金,也就是守護這條鏈的真實世界努力的總量。這套設計深處押的是一場交接:隨著補貼在未來一個世紀裡慢慢趨近於零,手續費理應成長為主要獎勵,把獎金維持得足夠大,讓誠實挖礦仍然值得,讓改寫歷史依舊貴得離譜。

這一切的節奏與獎勵都靠真實的電力運轉,而那正是讓比特幣「攻擊起來很貴」的字面意義上的代價。把時鐘和減半講清楚之後,後面的一篇會打開那 2100 萬枚的固定上限本身——是什麼讓它可信,又為什麼沒人能悄悄越過它多鑄出一枚幣。