比特幣挖礦如何運作:工作量證明、區塊與獎勵
比特幣沒有中央銀行,沒有任何公司負責運行其帳本,也沒有任何人負責核准付款。取而代之的是一場全球競賽,大約每 10 分鐘舉行一次,目的是在帳本中加入下一頁。
這場競賽稱為挖礦。本文將說明礦工實際上做些什麼、區塊如何建立、工作量證明的白話意思、礦工如何獲得報酬,以及誰會檢查他們的工作。本文介紹的是協定規則,而非挖礦是否有利可圖;後者取決於不斷變動的成本與價格。
比特幣挖礦的用途
挖礦有兩項功能。第一,在沒有可信任第三方的情況下,讓大家對交易順序達成共識。比特幣白皮書將其描述為一種點對點分散式時間戳記伺服器,能以計算方式證明交易發生的順序,這正是防止同一批比特幣被花費兩次的方法。第二項功能是發行新幣,因為新增區塊的礦工會獲得新創建的比特幣作為獎勵。
從交易到區塊
礦工會收集待處理的交易,並將它們編入一個區塊。每個區塊都包含前一個區塊的雜湊值,藉此將區塊串連成鏈。根據白皮書,若要更改較早的區塊,就必須重新完成其後所有區塊的工作,因此歷史越久遠,就越難以竄改。
每個區塊中的第一筆交易是一種稱為 coinbase 交易的特殊交易,用來支付給礦工。Bitcoin.org 的開發者參考資料說明,這筆交易會收取該區塊的交易手續費,並在規則允許時取得新創建的補貼。
用白話解釋工作量證明
工作量證明是礦工要解決的謎題。白皮書指出,網路透過不斷增加區塊中的 nonce 來實現工作量證明,直到區塊的雜湊值具有所需數量的前導零位元。實際上,礦工會更改區塊中的一個數值、計算其雜湊值、檢查結果是否低於目標值,然後不斷重複,直到找到符合條件的結果。根據開發者參考資料,如果 nonce 的所有可能值都已經試過,礦工就會更改區塊中的其他部分,例如時間戳記或 coinbase,然後繼續嘗試。
這道謎題很難解,但很容易驗證。找到有效答案需要進行極大量的嘗試,而任何人只要計算一次就能驗證答案。白皮書稱工作量證明本質上是「一個 CPU 一票」,意思是影響力來自運算工作,而非身分的數量。為了讓區塊以穩定的速度產生,目標值大約每兩週,或每 2,016 個區塊調整一次,使網路平均每 10 分鐘產生一個區塊。
礦工如何獲得報酬
找到有效區塊的礦工會獲得區塊獎勵。Bitcoin.org 的開發者參考資料將區塊獎勵定義為區塊補貼加上該區塊中的交易手續費。補貼最初為 50 個比特幣,之後每 210,000 個區塊減半一次,大約每四年減半一次。最近一次減半發生於2024/04,每個區塊的補貼降至 3.125 個比特幣;Bitcoin.org 指出,補貼將在約 2140 年降至零,屆時所有比特幣都已發行。
隨著補貼縮減,預計手續費將占礦工收入的比重越來越高。白皮書曾預期這種情況,並指出當預先設定數量的比特幣進入流通後,獎勵機制可能完全轉為交易手續費。白皮書也提到,挖礦需要耗用 CPU 時間與電力,因此礦工需要獲得報酬。許多礦工會加入稱為挖礦礦池的群組,共同分享獎勵;這是另一個值得單獨探討的主題。
誰來檢查礦工
礦工不會制定規則,而是遵守規則。網路上的其他節點會在接受每個新區塊之前進行檢查,包括驗證其工作量證明與交易;違反規則的區塊會遭到拒絕。舉例來說,開發者參考資料指出,如果 coinbase 交易試圖花費超過區塊獎勵所允許的價值,該交易就無效。
這也是為什麼隨著區塊增加,交易會被認為變得更具最終性。白皮書的結論是,如果誠實節點掌握大多數運算能力,攻擊者就會很快發現,竄改公開的交易歷史在計算上並不實際可行。
WEEX 提醒:當心保證挖礦收益的說法
WEEX 提醒用戶,實際挖礦需要專用硬體與電力,也會受到競爭影響,而且獎勵會與他人分享,並隨時間變動,因此沒有人能保證固定收益。以太坊的安全指南提醒用戶,對於主動找上門、邀請加入「挖礦礦池」並承諾高額回報的提議應保持警惕;美國聯邦貿易委員會(FTC)也表示,只有詐騙者才會保證獲利。切勿將助記詞或驗證碼提供給聲稱可以替你「挖礦」的人。本文內容不構成財務建議。
結論
比特幣挖礦是將交易整理成區塊並發行新幣的過程。礦工競相解決工作量證明謎題,勝出者新增下一個區塊,並獲得補貼與手續費,而每個節點都會檢查結果。難度會調整,使區塊大約每 10 分鐘產生一次;補貼則大約每四年減半一次。
常見問題
1. 比特幣礦工實際上做些什麼?
礦工會將待處理的交易收集到一個區塊中,並競相解決工作量證明謎題。成功的礦工會將區塊加入區塊鏈,並獲得區塊獎勵。
2. 什麼是工作量證明?
這是一道謎題,礦工必須更改區塊中的一個數值,直到區塊的雜湊值低於目標值。找到答案需要多次嘗試,但任何人只需計算一次就能驗證答案。
3. 挖出一個比特幣區塊需要多久?
網路的設計目標是平均每 10 分鐘產生一個區塊,並大約每 2,016 個區塊調整一次難度,以維持這個速度。個別區塊可能較早或較晚產生。
4. 比特幣礦工如何獲得報酬?
獎勵包括新創建比特幣的區塊補貼,以及該區塊中的交易手續費。補貼每 210,000 個區塊減半一次,自2024/04起,每個區塊的補貼為 3.125 個比特幣。
5. 礦工可以更改比特幣規則或撤銷交易嗎?
礦工無法單獨做到這點。節點會拒絕違反規則的區塊,而要更改較早的區塊,就必須重新完成該區塊及其後每個區塊的工作。