僅供協定與挖礦教育分析,不構成投資或營運建議。挖礦結果具有隨機性,並取決於網路規則、難度、手續費、礦池條款、上線率、硬體、能源、融資、稅務與市場價格;預期收入或算力份額不保證出塊、付款或獲利。
直接回答
比特幣挖礦是建構有效候選區塊,並以 SHA-256d 反覆計算其 80 位元組區塊標頭,直到結果在數值上不高於共識目標的過程。成功礦工只是向網路提議區塊。挖礦不能讓無效交易變成有效交易、判定協定外的事實,或賦予礦工控制他人幣的權限:每個全節點都會獨立檢查工作量證明、區塊標頭、交易、指令碼、已花費輸出、區塊限制與 coinbase 允許金額。
挖礦節點或礦池可透過 getblocktemplate 等介面取得候選資料。重要欄位包括 version、previousblockhash、transactions、coinbasevalue、target、bits、height、weightlimit 與 sigoplimit。範本是依策略選擇的起點,不承諾必須納入其中每筆交易,也不保證修改後的區塊會獲接受。共識有效性、本機記憶池策略、手續費選擇與礦池規則屬於不同層次。
挖礦硬體搜尋不同的區塊標頭。32 位元 nonce 範圍耗盡後,挖礦軟體會修改 coinbase 的 extranonce 資料、重建 Merkle 根,並可在規則允許時更新時間或版本欄位,以取得新的標頭空間。每次雜湊都是獨立試驗。更多相容算力會提高長期成功頻率,但不能排定特定區塊,也不保證在期限內找到結果。
單獨挖礦把有效區塊允許的全部 coinbase 輸出交給單獨礦工,但付款變異很高。礦池彙集工作,以較容易的份額目標估算貢獻;只有同時符合網路目標的份額才可能成為區塊。礦池可降低付款變異,卻不能提高全網預期發行量。礦池託管、範本控制、份額驗證,以及 PPS、PPLNS 等付款負債,會帶來額外的交易對手與集中風險。
如何分析挖礦
- 固定身分與權限。 記錄
chain、network、client version、規則集、bestblockhash、範本提供者、礦池端點、收款身分與觀察時間。區分節點、範本建構者、礦池營運者、韌體、設施與設備所有者。 - 重現候選交易選擇。 快照
mempool與UTXO set;核驗交易有效性、相依關係、手續費、權重、簽章操作成本、鎖定時間與見證承諾。重建候選區塊並說明策略選擇,不要把費率本身當成共識。 - 核對 coinbase 與區塊標頭。 核驗高度對應的補貼、所含手續費總額、輸出、承諾、前一區塊雜湊與 Merkle 樹。追蹤可變的
nonce、coinbaseextranonce、Merkle root、time和version bits,拒絕超過共識限制的範本。 - 驗證搜尋與提交。 解碼緊湊目標,並依該網路的位元組序和雜湊規則檢驗
block_hash <= target。找到解後重建完整區塊,透過submitblock或實際部署協定提交,並保留接受或拒絕證據。 - 追蹤獨立驗證與傳播。 比對多個全節點對標頭、交易、指令碼、coinbase 與鏈工作量的驗證。量測傳播、競爭鏈尖、陳舊或孤立結果及重組處理;找到證明不等於始終留在主鏈。
- 核對獎勵與礦池帳務。 分開
coinbase、subsidy + transaction fees、礦池費、準備金、pool target、network target、已接受share、陳舊份額、付款方法、成熟期、最低付款、託管與交易對手曝險。 - 在壓力下建模經濟與安全性。 列明有效算力、上線率、效率、電價、冷卻、人力、託管、維護、折舊、融資、稅務、限電、補貼、手續費、價格與難度。壓力測試出塊變異、硬體故障、價格和手續費衝擊、難度落後、礦池違約、審查、集中與重組風險。
挖礦的產物是區塊提議與計算搜尋證據。節點決定有效性,分叉選擇規則決定哪條有效分支活躍,難度規則只在規定邊界調整目標,應用自行決定所需確認深度。挖礦參與這些程序,但不能取代其中任何一項。
計算範例
1. Nonce 空間不是全部搜尋空間
80 位元組的比特幣區塊標頭含有 32 位元 nonce,共 2^32 = 4,294,967,296 個值。以 200 TH/s 計算,硬體測試這些標頭大約只需:
4,294,967,296 / 200,000,000,000,000 = 0.0000214748 seconds
工作不會就此結束。軟體修改 coinbase extranonce、導出新的 Merkle 根,並可更新其他允許欄位,從而產生另一段 nonce 空間。因此,把區塊標頭 nonce 當成設備全部搜尋容量是分類錯誤。
2. 單獨挖礦變異與電費
當全網為 600 EH/s、礦工有效算力為 200 TH/s 時,簡化份額是 200 TH/s / 600 EH/s = 0.0000333333%。按每天示例性 144 個區塊,單獨出塊期望為 lambda = 144 * 0.000000333333 = 0.000048 blocks/day,平均等待期為 1 / 0.000048 = 20,833.33 days。以卜瓦松近似,當天零出塊機率為 P(0) = exp(-0.000048) = 99.9952001152%。
一台 3.5 千瓦設備按每千瓦時 0.06 美元計算,直接每日電費為 3.5 kW * 24 * USD 0.06/kWh = USD 5.04/day。這不含冷卻、託管、停機、維修、折舊、融資與稅務。期望值不等於現金流時點,也不能把低機率的單獨出塊當作每日應收款。
3. Coinbase 核算與成熟期
假設該高度的補貼為 3.125 BTC,有效納入的交易手續費合計 0.42 BTC。本簡化範例中,coinbase 交易可創造的最大價值是 3.125 + 0.42 = 3.545 BTC;多領會使區塊無效,少領雖允許卻會放棄價值。
Coinbase 輸出須經共識規定的 100 blocks 成熟期才能花費。區塊在成熟前也可能成為陳舊區塊或隨後遭重組。因此,礦池面板餘額、未成熟 coinbase 輸出與最終外部付款,是託管和結算風險不同的三種權利主張。
4. 礦池份額與付款假設
假設所有接受份額難度相同:礦池記錄總計 2,000,000 份,其中一名礦工貢獻 50,000 份,記帳比例為 50,000 / 2,000,000 = 2.5%。若區塊價值為 3.545 BTC、礦池費為 2%,示例性可分配金額為 3.545 * (1 - 0.02) = 3.4741 BTC,按比例分配為 3.4741 * 2.5% = 0.0868525 BTC。
若礦池目標比網路目標容易 1,000 倍,一份被接受的份額同時符合網路目標的簡化機率是 1 / 1,000。實際核算必須正規化可變份額難度,拒絕重複和陳舊工作,套用明確的 PPS、FPPS、PPLNS 或其他合約,並區分礦池支付的期望值與僅在出塊時產生的收入。
風險與審校錯誤
協定與範本錯誤
- 聲稱礦工使交易有效,而不是選擇仍須由全節點獨立驗證的候選交易。
- 混淆鏈、網路、分叉、鏈尖、用戶端、範本提供者或礦池身分。
- 把記憶池或範本當成共識狀態、完整交易集或保證生成的未來區塊。
- 只按單筆費率選交易,忽略祖先、後代、權重、簽章操作、鎖與承諾。
- 錯算補貼高度、納入手續費、coinbase 輸出、見證承諾或 Merkle 根。
- 新鏈尖到達後仍搜尋錯誤的前一區塊雜湊、舊目標或未獲許可的時間和版本範圍。
- 用錯誤的編碼、位元組序或演算法把標頭雜湊與顯示目標比較。
礦池與營運錯誤
- 把礦池接受份額等同於網路有效區塊,或不正規化難度就使用份額數量。
- 把預計算力份額變成保證的區塊、收入或付款日期,忽略變異。
- 把礦池區塊份額當成永久硬體所有權,或忽略範本和付款集中。
- 遺漏陳舊與拒絕份額、延遲、韌體、溫度、上線率、限電與硬體故障。
- 忽略付款方法、費基、準備金、門檻、成熟期、託管、提領與礦池違約條款。
- 在獨立接受、傳播、主鏈選擇與重組審查前,就把找到的區塊當作終局。
- 在沒有認證、變更控制和事件回應時重複使用憑證、收款地址或遠端韌體。
經濟與安全錯誤
- 不計價格、難度、手續費、電力、冷卻、人力、折舊、融資與稅務,就把 BTC 預期總值稱為法幣利潤。
- 不計設備效率、利用率、冷卻、地點、時間與能源結構,就從算力直接推斷電力或排放。
- 假設難度立即回應算力,或十分鐘區塊按時刻表到達。
- 聲稱減半保證漲價、礦工投降或安全支出不變。
- 聲稱多數算力可偽造簽章、奪取任意幣或讓全節點接受無效增發。
- 把高總算力視為不會出現礦池、製造商、韌體、地域、能源、網路或軟體集中問題的證據。
常見誤解
- 礦工可把任意交易批准為有效。 礦工選擇和排序候選交易,但誠實全節點會拒絕違反共識的區塊。
- Nonce 是礦工唯一可改的值。 Extranonce 會改變 coinbase 與 Merkle 根,時間和允許的版本欄位也可擴大搜尋空間。
- 礦池份額是一小部分區塊。 它是符合較容易礦池目標的工作證據;多數份額不符合網路目標,也不會成為區塊。
- 預期每日收入就是保證付款。 出塊隨機,付款時間也取決於礦池合約、成熟期與交易對手履約。
- 算力越高就一定越賺錢。 礦工份額、難度、手續費、價格、效率、電力與全部成本共同決定結果。
相關主題
來源
- Blockchain Technology Overview - NIST(存取日期:2026-08-19)
- Bitcoin: A Peer-to-Peer Electronic Cash System - Bitcoin.org(存取日期:2026-08-19)
- Bitcoin Developer Guide: Mining - Bitcoin Project(存取日期:2026-08-19)
- Bitcoin Developer Guide: Block Chain - Bitcoin Project(存取日期:2026-08-19)
- Bitcoin Developer Reference: Block Chain - Bitcoin Project(存取日期:2026-08-19)
- Bitcoin Core: miner.cpp - Bitcoin Core(存取日期:2026-08-19)
- Bitcoin Core: pow.cpp - Bitcoin Core(存取日期:2026-08-19)
- BIP 22: getblocktemplate - Fundamentals - Bitcoin BIPs(存取日期:2026-08-19)