挖礦 (數位貨幣)

挖礦（Mining），是指透過執行工作量證明或其他類似的電腦演演算法來獲取加密貨幣，例如比特幣、以太幣、萊特幣等。由於此名稱源自對採礦的比喻，進行挖礦工作的人通常稱為礦工。

## 工作原理

比特幣礦工透過解決工作量證明機制問題，以管理比特幣網路 —— 確認交易並且防止雙重支付。

比特幣創始人中本聰在他的論文中闡述說：

在沒有中央權威存在的條件下，既鼓勵礦工支援比特幣網路，又讓比特幣的貨幣流通體系也有了最初的貨幣注入源頭。

中本聰將消耗CPU的電力和時間來生成比特幣，比喻成金礦消耗資源將黃金注入經濟。比特幣的挖礦與節點軟體主要是透過對等網路、數位簽章、互動式證明系統來發起零知識證明與驗證交易。

每一個網路節點向網路進行廣播交易後，這些廣播得出的交易在經過礦工（在網路上的電腦）驗證後，礦工可使用自己的工作證明結果表達確認，確認後的交易會被打包到資料塊中，資料塊會串成連續的資料塊鏈——區塊鏈。中本聰設計的第一版的比特幣挖礦程式被開發為廣泛使用的第一代挖礦軟體Bitcoin，這一代軟體從2009年到2010年中較為流行。

每一個比特幣的節點都會收集所有尚未確認的交易，將其歸集到一個資料塊中，礦工節點會附加一個隨機調整數，並計算前一個資料塊的SHA-256雜湊運算值。挖礦節點會不斷重複尋找隨機調整數，使得產生的雜湊值低於某個特定的目標。

由於雜湊運算是不可逆的，尋找到符合要求的隨機調整數非常困難，需要一個可以預計總次數的暴力破解過程。此時，工作量證明機制即發揮其作用。當一個節點找到了符合要求的解，那麼它就可以向全網廣播自己的結果。其他節點就可以接收這個新解出來的資料塊，並檢驗其是否符合規則。如果其他節點通過計算雜湊值發現確實滿足要求（比特幣要求的運算目標），那麼該資料塊有效，其他的節點就會接受該資料塊。

## 出塊獎勵

除了將接收到的交易資訊打包到區塊，每個區塊都會允許「發行」一定數量的新比特幣，用來激勵成功發現新區塊的礦工。

比特幣系統按照預定的貨幣增發節奏決定發行的比特幣數量。如果其他支付交易有給手續費的，那麼礦工還會獲得手續費。由於礦工可以自行決定是否將某一個交易信息打包到區塊中，因此礦工會優先選擇手續費較高的交易來打包。此競價交易的方式維持了區塊鏈礦工的收益，也制衡了礦工與使用者之間的力量。

區塊產生速率的預期為每10分鐘一個，但每個資料塊中，新發行的比特幣不能超過6.25個，而這個數字每產出21萬個區塊就會減半，大約每4年就會發生一次，2020年5月13日比特幣第三次減半，減半後現在的區塊獎勵為6.25個。因此，比特幣的總數量不會超過2100萬個。隨著新發行比特幣數量的下降，手續費將成為挖礦的主要動機。

那些在較早時期將電腦資源投入到比特幣挖礦活動中的使用者，相對於較晚加入的礦工而言，獲得比特幣容易得多。這樣設計的原因，主要是為了保證在比特幣的早期發展階段可以吸引足夠的計算力來處理資料塊。事實上如果沒人挖礦，比特幣的初期交易活動就無法處理，比特幣經濟也將停止運行。

- 2012年12月第一次減半
- 第二次發生減半的實際時間是2016年7月9日 16:46:13 UTC，每個區塊中新發行的比特幣目前為12.5個
- 2020年5月13日第三次減半，每個區塊中新發行的比特幣目前為6.25個
- 2024年4月20日 00:09:27 UTC，ViaBTC礦池挖出了第840000個區塊，標誌著第四次減半的到來，每個區塊中新發行的比特幣目前為3.125個

## 挖礦難度

資料塊產生的速度大約維持在每十分鐘一個，因此資料塊的難度會定期調整。

挖礦難度取決於資料塊產生的速度：資料塊產生的速度加快則代表挖礦難度提高；資料塊產生的速度變慢則是降低挖礦難度。比特幣系統在每隔2016個資料塊被產出後（約兩週的時間），會以最近該兩週的資料塊產生速度，自動重新計算接下來的2016個資料塊的挖礦難度。

而難度基本上決定了一個有效的資料塊標頭（Block Header）的 SHA-256 雜湊值應小於一定值，也就是說該雜湊值必須要恰好落在目標區間之內才算有效，當目標區間越小就意味著命中機率越低（則挖礦的難度越高。

由於ASIC計算設備的爆炸式加入，目前挖礦難度呈現出幾何級數的上升，目前年均難度增長約為3%，讓個人挖礦者的挖礦工作變得困難。

## 挖礦設備

於早期，比特幣礦工都是透過Intel或AMD的CPU產品來挖礦。但由於挖礦講求運算密集型應用，且隨著挖礦人數與設備性能的不斷提升難度逐漸增加，現在大部分貨幣（比特幣、以太幣等）使用CPU挖礦早已毫無收益甚至虧損，現時通常使用GPU或ASIC等並行性能更強的設備。但亦有部分加密貨幣（如門羅幣）設計的目的是對抗ASIC，那些加密貨幣對GPU礦機的優勢進行了限製，使得CPU挖礦仍然有效。

從2013年第一季度後，礦工逐漸開始採用GPU或FPGA等挖礦設備。同時，ASIC設備也在2013年中旬大量上市。

從2013年7月起，全網算力因ASIC設備的大量投入運營呈現直線上漲，以2013年7月的平均算力計算，所有CPU挖礦設備均已經無法產生正收益，而FPGA設備也接近無收益。2013年9月平均算力估算，現有的針對個人開發的小型ASIC挖礦設備在未來1-2個月內也接近無正收益。大量算力被 5 THash/s以上的集群式ASIC挖礦設備獨佔。個人挖礦由於沒有收益，幾乎被擠出挖礦群體。某些比特幣礦工會透過集資在某些可取得低價電力的地方興建機房安裝大批挖礦設備進行挖礦。

部份比特幣礦工為省下挖礦成本，將挖礦程式製作成惡意程式，在網路上感染其他人的電腦以代替自己挖礦。

## 礦池

由於比特幣全網的運算水準在呈指數級別不斷上漲，單個設備或少量的算力都無法在比特幣網路上獲取到比特幣網路提供的區塊獎勵。在全網算力提升到了一定程度後，只餘下過低的獲取獎勵機率。這促使一些「bitcointalk」上的極客開發出一種可以將少量算力聯合運作的方法，使用這種方式建立的網站便被稱作「礦池」（Mining Pool）。

在此機制中，不論個人礦工所能使用的運算力多寡，只要透過加入礦池（多人合作挖礦）來參與挖礦活動，無論是否有成功挖掘出有效資料塊，皆可經由對礦池的貢獻來獲得少量比特幣獎勵，獲得的比特幣獎勵由多人依照貢獻度分享。

截止2020年5月，全球算力排名前五的比特幣礦池有：F2Pool、Poolin、BTC.com、AntPool、58COIN&1THash，當時全球約70%的算力在中國礦工手中。

而截止2025年1月，全球算力前三的比特幣礦池為Foundry USA、AntPool、ViaBTC，其中Foundry USA的份額超過了30%，美國逐步成為比特幣挖礦的中心，再度引發使用者對算力集中化的擔憂。

## 手續費

比特幣礦工會對大部分交易收取小額費用，其主要目的是防止有人發送大量小額交易，浪費網路資源。當前每筆交易的手續費大部分是฿ 0.0001/KB （即0.0001btc/KB），實際上0.9.0版本之後將默認手續費降為฿ 0.00001/KB （即0.00001 btc/KB）。因為大部分交易占用的數據量都小於1千字節，所以一般情況下฿ 0.00001（即0.00001 btc/KB）的手續費就已經足夠。同一時間，於比特幣區塊獎勵較少的將來時，手續費將成為礦工收入的主要來源，比特幣的手續費會與該交易佔用的位元組數相關。

目前比特幣系統中手續費的計算標準並非強制性的，因此使用者也可以在交易進行時不給予任何手續費，但大多數礦工在組建資料塊時通常會優先考慮帶有較高手續費的交易，以便在挖礦成功時能獲得較高的報酬，因此無附帶任何手續費的交易，可能會需要等待較長的時間才能被處理並納入區塊鏈中。

此外，現在因為區塊容量上限「1MB」以及近期比特幣交易量大增的因素，手續費大幅上漲，等待交易確認的時間變得更長。