什麼是比特幣挖礦?

比特幣挖礦是指比特幣節點通過打包交易產生新區塊,並由此獲得比特幣收益的過程。

要了解比特幣挖礦,需要涉及礦工、比特幣代幣經濟模型、PoW共識算法、礦機、比特幣網絡安全等諸多概念。因為這些概念對應的就是一個完整的比特幣挖礦流程,即為我們解答,比特幣挖礦過程中:誰來挖、挖什麼、怎麼挖、用啥挖,以及為什麼挖的問題。

 

1.誰來挖?

在了解礦工前,首先需要了解的一個概念是比特幣節點。通俗來講,比特幣節點就是安裝並運行比特幣軟件的一台台計算機或硬件設備,也可以說是每台計算機後面的普通用戶。但不管比特幣節點的實體到底是什麼,其本質作用只有一個:參與和維護比特幣網絡系統的安全運行。

為了實現該目標,不同的比特幣節點會有不同的任務分工或功能。譬如,所有的比特幣節點都會負責參與驗證交易的真實性及信息傳遞;一部分節點會主要負責存儲比特幣區塊鏈完整賬本;還有一部分節點會專門從事打包交易數據並生成新區塊的工作,而這部分節點即是我們常說的比特幣礦工。

 

2.挖什麼?

比特幣礦工在挖什麼?毋庸置疑,答案自然是比特幣。

在比特幣網絡系統運行中,礦工主要負責打包交易數據生成新區塊。就和公司給員工發薪水一樣,為激勵礦工打包區塊,比特幣系統會為其支付報酬,即挖礦獎勵——比特幣。值得注意的是,這裡的挖礦獎勵實際上包含兩個部分:區塊獎勵和交易手續費獎勵。其中,交易手續費獎勵是指被打包進該區塊的所有交易的手續費用總和,其數額會隨交易數量及手續費變化而變動。一般在討論,或者說至少在目前討論比特幣挖礦時,這部分獎勵可以忽略不計。人們更關注的是第一部分——區塊獎勵。

區塊獎勵是指當前區塊中第一筆交易Coinbase交易中所包含的系統獎勵,即上述所言,比特幣系統為獎勵打包區塊而向礦工支付的報酬。根據比特幣協議,最早比特幣系統開始運行時(2009年),一個區塊包含的獎勵為50枚BTC,此後每挖出210000個區塊(約4年時間)將進行減半。截至目前,比特幣已完成3次減半,單個區塊獎勵現為6.25枚BTC。

 

3.怎麼挖?

不同於現實生活中重金屬物理挖礦,比特幣挖礦實際上就是安裝運行比特幣客戶端軟件。挖礦的過程實際上就是打包區塊的過程,該過程則要通過比特幣工作量證明算法(PoW)實現。 PoW工作原理是:先給定一個難度值,隨後通過SHA-256算法算法不斷計算區塊哈希值,只要該哈希值滿足比難度值小的要求,就意味著挖礦成功。

如此前頂峰課堂講解區塊概念時所言,要計算一個區塊的哈希值,需要對區塊頭數據進行哈希計算,即對區塊版本、前個區塊哈希、Merkle Root哈希、時間戳、Bits難度和Nonce隨機數進行哈希計算。和比特幣挖礦直接相關的則主要涉及兩個概念:Nonce隨機數和Bits難度值。具體而言,比特幣礦工在進行區塊打包時,將首先確定區塊版本、前個區塊哈希、Merkle Root哈希、時間戳、Bits難度數據,隨後不斷變化Nonce隨機數進行哈希計算,直到計算出一個哈希值小於Bits難度值,則該區塊有效,礦工完成挖礦。從本質上看,挖礦過程實際上是計算機利用算法解一道數學題的過程,因此該過程也常被形像地稱作解題過程。

 

4.用啥挖?

根據PoW算法,我們已經知道,要想成功挖礦,必須解開一道高難度數學題。當然,所謂的高難度僅僅是針對計算機而言,解題並不需要人工計算,而是由計算機執行,也就是我們常說的礦機。比特幣挖礦市場中,主要的礦機包括ASIC礦機、GPU礦機(我們常說的顯卡挖礦)。其中,採用SHA256算法的比特幣使用ASIC礦機挖礦效率最高,因此當前比特幣市場中的主流礦機均是ASIC礦機。由於單個礦機算力很小,成功解題挖到比特幣的概率微乎其微,由此衍生,市場中則出現了比特幣礦場、礦池等生態。

 

5.為什麼挖?

根據比特幣協議,比特幣之所以需要進行挖礦,主要有以下幾個原因:

1.比特幣挖礦屬於比特幣代幣發行機制中的重要一環。挖礦過程實際上就闡明了比特幣新幣發行和分配的規則。

2.比特幣挖礦屬於比特幣點對點支付系統驗證交易有效性完整機制的重要組成部分。

3.比特幣挖礦實際上也是一種在有限的吞吐量下對交易進行優先排序的方法。

4.比特幣挖礦機制為礦工提供激勵,促使他們參與並維護比特幣網絡運行,從而有助於保護網絡安全,免受攻擊者的影響。也就是我們常說的,參與比特幣挖礦的節點越多,網絡算力越強,整個網絡也就越安全。