學習 · 比特幣如何運作

什麼是工作量證明(PoW)?

作者:CloudMineCrypto 團隊更新於 閱讀時間 9 分鐘

簡短答案

工作量證明是 Bitcoin 決定由誰加入下一個區塊的方式:礦工必須找到足夠罕見的雜湊值,證明自己確實投入了運算,其他人才會接受他們的區塊。礦工會用 SHA-256 對 80 位元組的區塊標頭進行兩次雜湊,每次都更改一個稱為 nonce 的數字,直到雜湊值低於目標值。找到符合條件的雜湊需要猜上數兆次,但驗證只需計算一次雜湊。因此,若要改寫歷史,就得重做所有這些運算。

重點整理

  • 有效區塊的標頭,其雙重 SHA-256 雜湊值必須低於目標值,這會呈現為開頭有多個零。
  • 只能靠猜測。改變一個字元,雜湊值約有一半的位元會翻轉。
  • 節點會跟隨累積工作量最多的鏈,因此攻擊者需要掌握大部分算力。
  • 電力消耗不是副作用,而是讓改寫 Bitcoin 歷史變得昂貴的原因。

自己計算雜湊 · 真實區塊標頭

編輯區塊。雙重 SHA-256 會隨著你的輸入即時更新。

  1. 版本4 位元組

    20000000

  2. 前一個區塊雜湊值32 位元組

    000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

  3. 默克爾根32 位元組

    3526fd3f26cb386534c88c5455a8465f971578b7d9fb64b8a342ad0e99e4280e

    上方交易的指紋。輸入內容即可修改。

  4. 時間4 位元組

    2026-09-26 12:00 UTC

  5. 目標值(bits)4 位元組
    1f00ffff · 4 個 0
  6. Nonce4 位元組

區塊雜湊 · SHA-256 兩次

✓ 低於目標值:有效區塊

0000470da4a7ab0614c83d2181b1ef1c294e53f49cde408a8c9a08592bca6e17

目標 0000ffff00000000000000000000000000000000000000000000000000000000

4 個前導零,目標值需達到 4

你的瀏覽器會像礦工一樣,一個接一個地猜 nonce。

雪崩效應 · 上次編輯後變動的位元

122 / 256(48%)

改變一個字元,就會隨機翻轉約一半的 256 個位元。雜湊值無法操控,因此礦工只能猜。

會拿來計算雜湊的 80 個位元組

000000206fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000000e28e4990ead42a3b864fbd9b77815975f46a855548cc8346538cb263ffd2635c0b3b76affff001f96060000

數字以小端序儲存,雜湊值的位元組順序反轉,完全依照 Bitcoin 的做法。目前的實際區塊需要約 20 個前導零(根據即時網路算力估算)。

什麼是工作量證明?

定義 · 工作量證明(PoW)

這種系統會把新增區塊的權利交給第一個找到區塊標頭雜湊值低於目標值的人。找到它需要猜上極大量次,驗證它只需要計算一次雜湊。

Satoshi Nakamoto 在 2008 年的 Bitcoin 白皮書中說明了這個概念,並以 Adam Back 的 Hashcash 為基礎。Hashcash 是一種更早期的構想,目的是提高寄送垃圾郵件的成本。有效的雜湊值就是工作證明。沒有完成工作就無法得到它,而且任何人都能驗證你確實完成了工作。

本頁接下來會逐一說明每個部分,上方的方框也能讓你親自試試看:那是實際的比特幣區塊標頭格式,並在你的瀏覽器中即時計算雜湊。想了解挖礦全貌,請看我們的比特幣挖礦完整指南。

工作量證明解決了什麼問題?

Bitcoin 沒有公司、銀行或伺服器負責管理。數千台電腦各自保存一份帳本,而且必須對接下來的區塊,以及付款發生的順序達成共識。否則,同一枚幣就可能被花兩次。

在網路上,單純投票行不通,因為任何人都能開一千台假電腦,投一千次票。這就叫女巫攻擊。工作量證明避開了這個問題:你的話語權以雜湊次數衡量,而雜湊需要耗費電力和硬體。

誰能決定下一個區塊?

每個節點一票

一名攻擊者免費建立 60 個假節點,就能在投票中勝過 12 個誠實節點。

每個雜湊值一票

誠實礦工 88%攻擊者 12%

同樣的 60 個節點共用攻擊者的實際硬體,因此合計仍占 12%。複製節點不用成本,計算雜湊則要。

女巫攻擊是指偽造多個身分。工作量證明不看身分,只計算完成的工作量,而這需要花真金白銀。

Bitcoin 區塊標頭裡有什麼?

礦工不會對整個區塊進行雜湊。他們會對 80 位元組的區塊標頭進行雜湊,標頭會承諾其餘所有內容。以下是你在上方方框中編輯的六個欄位:

欄位位元組包含哪些內容誰會改變它
版本4區塊遵循哪套規則很少變動
前一個區塊的雜湊值32前一個區塊的雜湊值,用來串起區塊鏈每個區塊都會更新
Merkle 根32區塊中所有交易的單一指紋礦工:交易或額外 nonce 變更時
時間4礦工表示區塊建立的時間(Unix 時間)礦工:在限制範圍內
位元4打包成 4 個位元組的目標值網路每 2,016 個區塊
Nonce(隨機數)4可免費再試一次的數字礦工每次都要猜測

由於區塊標頭包含前一個區塊的雜湊值,更改舊區塊就會改變它的雜湊值,進而破壞下一個標頭,以及再下一個標頭。我們在建置本頁時,於伺服器上使用主視覺採用的相同程式碼,檢查了 2009 的真實創世區塊:

SHA-256(SHA-256(genesis header)) =
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Bitcoin 的第一個區塊,版本 1,nonce 2,083,236,893。它的雜湊值以 10 個零開頭,與所有 Bitcoin 節點所知的雜湊值相符。

SHA-256 在比特幣中如何運作?

SHA-256 會將任何輸入轉成一個 256 位元的數字,並以 64 個十六進位字元表示。Bitcoin 會對區塊標頭執行兩次雜湊(大家稱之為 SHA-256d)。對挖礦來說,重要的特性很簡單:

相同輸入,相同輸出

確定性

同一個區塊標頭在任何電腦上都會得到相同的雜湊值,所以驗證才行得通。

256 位元

固定大小

不論是一小段文字還是整本書,雜湊值永遠都是 64 個十六進位字元。

單向

沒有反向捷徑

你無法算出一個輸入值,讓它產生你想要的雜湊值。你只能不斷嘗試不同輸入值。

≈ 50%

雪崩效應

改變一個字元,大約一半的位元就會翻轉。看看主視覺中的格子。

最後這項特性正是工作量證明的核心。雜湊值即使接近目標值,也無法告訴你下一次嘗試會得到什麼結果,因此沒有捷徑能找到有效區塊。所有礦工都在參加同一場抽獎,每秒計算更多雜湊值,只是多買一些中獎機會。

什麼是目標值?為什麼前面要有那麼多個 0?

目標值是 256 位元的數字。把區塊雜湊值視為數字時,只要小於或等於目標值,區塊就有效。小數字開頭會有許多零,所以目標值越低,開頭的零就越多。每多一個十六進位零,平均就要多猜 16 倍。

找到一個有效區塊平均需要的雜湊次數

  • 主視覺中的玩具積木 · 4 個開頭的十六進位零65,536
  • Bitcoin 最寬鬆的目標(2009)· 8 個開頭的十六進位零,位元 1d00ffff4,294,967,296
  • 目前的 Bitcoin 區塊 · 約有 20 個前導十六進位零(即時估算)5.1 × 1023
長條採用對數刻度:每多一個零,平均所需的工作量就增加 16 倍。即時資料列是我們根據網路算力乘以 600 秒計算的估值,每小時更新。

網路每 2,016 個區塊調整一次目標值,大約每兩週一次,讓區塊無論在算力增加或減少時,都能維持約每十分鐘產生一個。目前網路算力約為 858 EH/s(即時數據,每小時更新)。調整方式請看我們的比特幣挖礦難度指南,算力單位則請看算力說明。

什麼是 nonce 和額外 nonce?

Nonce(「只用一次的數字」)是礦工每次猜測都會更改的 4 位元組欄位。它是唯一純粹為了修改而設的欄位。問題是,4 位元組只能表示約 4.3 十億種數值,現代機器幾乎瞬間就能全部試完。

礦工的運算迴圈

  1. 01

    逐一嘗試每個 nonce

    0、1、2,依此類推,直到 4,294,967,295。這就是 4 位元組能表示的所有數值。

  2. 02

    很快就會耗盡

    一台 100 TH/s 的機器,大約只要 43 百萬分之一秒就能全部試完。

  3. 03

    更改額外隨機數

    礦工會編輯自己獎勵交易(coinbase)中的備用欄位。

  4. 04

    新的 Merkle 根

    這筆交易一旦變更,merkle root 也會跟著變,每個 nonce 都會再次產生新的雜湊值。

接著回到步驟 1。礦工也可以稍微調整時間戳記,這同樣會改變區塊標頭。

因此,礦工也會更改額外 nonce,也就是 coinbase 中幾個預留的位元組。Coinbase 是區塊中的第一筆交易,用來支付礦工報酬。新的 coinbase 會產生新的 merkle root,也就有數十億個新的 nonce 可供嘗試。在礦池中,礦池會分配給每位礦工各自的額外 nonce 範圍,避免重複嘗試他人的工作。

為什麼找到區塊成本高,驗證成本卻低?

尋找區塊

≈ 5.1 × 1023 雜湊

整個網路的所有機器,猜測約十分鐘。

即時估算,每小時更新。

驗證區塊

1 雜湊

任何節點,就算只是平價筆電,也能在遠低於一毫秒內對 80 位元組的標頭計算一次雜湊,並與目標值比較。

礦工必須不斷嘗試雜湊,直到結果低於目標值。其他人只要對區塊標頭計算一次雜湊,再比較結果即可。這種不對等的成本,讓數千台普通電腦無須信任建立區塊鏈的礦工,也能驗證區塊鏈。

你可以在下方親自試試搜尋部分。這個示範使用的區塊格式比主視覺區簡單,但採用相同的雙重 SHA-256 抽獎機制,而且每個找到的區塊都會連到前一個區塊。

互動式 · 在瀏覽器裡挖出一個區塊

真實的 SHA-256d 工作量證明,簡化版區塊標頭

區塊 #1前一個雜湊0000000000000000000000000000000000000000000000000000000000000000Nonce(隨機數)0

區塊雜湊(雙重 SHA-256)

改動交易內容:哪怕只改一個字,雜湊也會整個變掉。

嘗試次數:0

你的算力:不適用

時間:0.0 s

什麼是最長鏈規則?什麼是 51% 攻擊?

有時兩位礦工幾乎同時找到區塊,網路會短暫出現兩個版本。節點會跟隨背後累積工作量最多的鏈。大家稱它為最長鏈,但其實應該說是最重的鏈:少數幾個難度高的區塊,可能比更多難度低的區塊更重。

若要推翻一筆付款,攻擊者必須從該筆付款之前開始,建立一條累積工作量超過其他所有人的鏈。上方每多一個區塊(一次確認),攻擊者就會落後更多。白皮書計算了成功機率,移動滑桿看看:

互動內容 · 攻擊者能追上嗎?

比特幣白皮書第 11 節中的公式

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

攻擊者落後的區塊數(確認數)。長條採用對數刻度,從百萬分之一到必然發生。

擁有 10% 算力時,在 6 次確認後竄改付款的機率是 0.024%,在 1 次確認後則是 20.5%。

擁有 50% 或以上算力時,攻擊者最終會勝出。這就是 51% 攻擊。這種攻擊很嚴重,但也有其限制:

只要擁有大部分算力,攻擊者就能

  • 用自己的鏈取代最近的區塊
  • 對自己轉出的幣進行雙重支付
  • 不把部分交易納入區塊

即使如此,他們仍無法

  • 花用別人錢包裡的幣
  • 創造超出區塊獎勵的幣
  • 改變其他所有人遵循的 Bitcoin 規則

這就是為什麼交易所收到大額存款時,會等候多個確認。常見的經驗法則是等六個確認。

為什麼工作量證明會消耗這麼多能源?

因為能源就是安全保障。有效區塊證明確實消耗了電力。若要改寫歷史,攻擊者至少得再花上同等成本,而且必須持續投入,與此同時,誠實的網路會繼續向前。

能源用在哪裡,又換來什麼

  1. 區塊獎勵與手續費

    每個區塊的新 BTC 加上手續費,會支付給找到該區塊的人。

  2. 機器與電力

    礦工願意投入的成本,最多到獎勵對他們的價值為止。

  3. 全網算力

    這些花費都會反映在每秒雜湊次數上。

  4. 改寫歷史的成本

    攻擊者必須在每個區塊上都花得比這些總成本更多。

可以把它看成一個循環:獎勵價值越高,吸引的算力越多,攻擊成本也越高。

耗電量有多少、電力來源為何,都是值得討論的問題。劍橋指數追蹤相關估算值,而我們的比特幣挖礦能源指南會逐一說明數據。每次減半都會削減獎勵中的新發行比特幣部分,因此隨著時間過去,手續費必須承擔更多安全預算。

工作量證明與權益證明有什麼不同?

權益證明(PoS)會從鎖定代幣作為押金的人之中,選出下一個區塊的產生者,而不是從消耗電力的人之中選出。Ethereum 在 2022 年從工作量證明轉為權益證明。以下是公平的並列比較:

工作量證明權益證明
誰來新增下一個區塊第一個找出低於目標值雜湊的礦工依照質押比例選出的驗證者
如何確保安全在鏈外投入的電力與硬體成本鎖定在鏈上的幣,作弊時可能會被沒收
耗能刻意設計得很高低
參與挖礦機器與低價電力要質押的幣
結算每次確認後都更安全明確的最終性檢查點
主要批評能源使用與挖礦集中度權益集中,以及更複雜的設計
運作紀錄Bitcoin,自 2009 起以太坊,自 2022 起

Bitcoin 的開發者一直保留工作量證明,因為它的成本來自系統之外,所以沒有人能用自己持有的幣買下控制權。權益證明的支持者則強調它能節省能源,並更快達成最終確定性。

Can you get mining rewards without running proof of work yourself?

Yes. With CloudMineCrypto you mine bitcoin for free from your phone or browser, with no hardware, noise or power bill. Claim the free 8-hour plan, and add more free plans by watching ads, playing games, completing offers and checking in daily. Your estimated BTC ticks up while your plans run, and you withdraw to your own wallet, Lightning included.

Each plan has a hashrate, and your estimate is that hashrate’s share of the whole network, times 6 blocks an hour, times the block reward. That’s the formula the app uses to estimate your rewards (rules and limits apply). Want more speed? Paid plans are an optional boost for fun. They usually mine less than they cost, and the price is shown before you confirm.

請注意:獎勵金額是估算值,會隨網路狀況變動,且不保證一定能取得。使用方案不代表擁有任何機器或礦池。提領可能有限制,也可能需要驗證。詳情請見獎勵規則和免費比特幣挖礦指南。須遵守條款。

常見問題

用簡單的方式來說,什麼是工作量證明?

這是一種讓新增區塊需要付出實際成本的方法。礦工會反覆計算區塊標頭的雜湊值,並更改一個稱為 nonce 的數字,直到結果低於目標值。找到符合條件的雜湊值需要大量猜測,但任何人都能只計算一次雜湊值就驗證它。

Bitcoin 中的 nonce 是什麼?

區塊標頭中的 4 位元組數字,礦工每次猜測時都會更改。它大約有 4.3 十億種可能值。用完後,礦工會更改 coinbase 交易中的額外 nonce,產生新的默克爾根和一組全新的雜湊值。

為什麼比特幣會連續使用 SHA-256 兩次?

Bitcoin 使用 SHA-256 對 80 位元組的標頭計算雜湊,接著再對結果計算一次。Satoshi 從未解釋為什麼這麼做。一般認為,這能防範長度延伸攻擊,並多提供一層安全保障。

51% 攻擊能讓人做什麼?

掌握大部分算力的人可以私下建立更長的鏈,並取代最近的區塊,藉此重複花用自己的幣,或阻擋部分交易。他們不能花用別人的幣、超出規則增發比特幣,也不能更改所有人的規則。

權益證明比工作量證明更好嗎?

它耗能少得多,安全性則來自鎖定作為權益的代幣。工作量證明則將安全性繫於外部成本,也就是電力和硬體,並自 2009 年起用於比特幣。兩者各有取捨,哪種更好取決於你重視什麼。

Can I get bitcoin mining rewards without my own hardware?

Yes. In the CloudMineCrypto app you claim free mining plans (the free plan, ads, games, offers and a daily check-in) and your estimated BTC ticks up while they run, then you withdraw to your own wallet. Rewards are estimates based on your plan’s hashrate and live network data, they aren’t guaranteed, and a plan doesn’t give ownership of any hardware.

來源與延伸閱讀

  1. 《Bitcoin:點對點電子現金系統》(白皮書) · Satoshi Nakamoto,bitcoin.org
  2. 區塊鏈指南:區塊標頭、工作量證明、coinbase · Bitcoin 開發者文件
  3. 挖礦指南:單獨挖礦、礦池、getblocktemplate · Bitcoin 開發者文件
  4. 難度 · Bitcoin Wiki
  5. 確認 · Bitcoin Wiki
  6. 劍橋比特幣用電量消耗指數 · 劍橋替代金融中心(Cambridge Centre for Alternative Finance)
  7. 挖礦儀表板:算力、難度、近期區塊 · mempool.space

本頁即時數據來自 CloudMineCrypto API,或旁邊標示的公開區塊鏈資料服務,並依排程更新,也會在頁面上標明來源。本指南僅供學習參考,不構成財務建議。CloudMineCrypto 不是投資產品,App 內的獎勵為估算值,不保證一定能獲得。

你已經看過運作方式了。現在來看它實際跑起來。

在 CloudMineCrypto app 領取免費 8 小時挖礦方案,根據即時網路數據看你的預估 BTC 一點一點增加。不需要硬體,也不用信用卡。