人人都說的比特幣挖礦,到底是在挖什麼?

weixin_33766168發表於2017-10-31

比特幣最迷人的地方就是挖礦了。為什麼挖礦這麼迷人?因為挖礦能獲得比特幣唄。我寫這篇文章的時候比特幣的價格是3900美元,如果能挖到一個區塊,就能獲得48750美元的挖礦收入和約6000美元的交易手續費收入,這不是非常迷人嗎?

那麼到底什麼是挖礦呢?礦工又如何通過挖礦獲得比特幣的呢?這就需要從比特幣區塊鏈系統採用的PoW(工作量證明)共識機制說起了。

PoW(工作量證明)共識機制

先講一個故事:

有一個村子,這個村子裡很多事情都需要大家一起決策。比如某天,村長需要全體村民一起決策今天中午村裡的大食堂是包餃子還是擀麵條。通常,我們能想到的方法就是投票----每個村民一票,少數服從多數。但是有些村民並不想在食堂吃飯,所以他可能就會把票送給別人,這樣就有可能會導致不公平,在食堂吃飯的大多數人可能沒有實現他們的願望。

於是村長換了一種辦法,他在10點50的時候,用大喇叭給全體村民廣播:“大家來選擇食堂中午是做餃子還是做麵條,想來食堂吃飯的人,就去食堂門口推那個巨大的石頭,到了11點整,石頭被推到了大門東邊,中午就吃餃子;推到了大門西邊,中午就吃麵條。”

區塊鏈研習 | 人人都說的比特幣挖礦,到底是在挖什麼?

於是想去食堂吃飯的人,就跑去推石頭了。出力多的人群最終實現了自己的願望,出力少的人群也心甘情願,因為村裡一直都是這樣的規矩。

這個故事講了一種實現人群共識的方式,我們可以叫它“工作量證明機制”。利用出力的多少,來證明自己的選擇意願。

在這個系列的第一篇文章裡,我們講到了區塊鏈系統能夠讓所有人的賬本保持一致。這種讓所有節點資料保持一致的機制,我們稱之為共識機制。採用不同的共識演算法,能夠實現不同效能的共識效果,其最終目的都是保持資料的一致性。

記錄工作量證明,不可篡改

我們已經知道,在比特幣系統中,記錄交易是系統工作的基礎方式。在比特幣區塊鏈系統中,區塊是記錄交易的最基本容器。在比特幣(BTC)中目前區塊大小限制為1MB,(前幾天剛剛誕生了一種新的虛擬貨幣,叫做比特幣現金——BCC,這個區塊大小限制目前是8MB)。由於區塊的大小有限制,因此每個區塊所能容納的交易數量也是有一定限制的。目前比特幣系統規定平均每10分鐘產生一個區塊,因此,礦工工作的方式實質上就是在10分鐘內收集網上產生的所有交易,然後將交易填到一個區塊裡。這個區塊大約如下表所示:

區塊鏈研習 | 人人都說的比特幣挖礦,到底是在挖什麼?

注意第一條,在任何區塊裡,第一條都是沒有轉出地址的,就是所謂的CoinBase(挖礦交易)。沒有任何人付給礦工這筆錢,礦工只是理所應當的寫上自己獲得了12.5比特幣。所有節點都認可礦工這樣寫,因此礦工就得到了挖礦收入。

不同的礦工在填寫區塊的時候,資料一定是不一樣的,因為每個礦工的第一條肯定不一樣,礦工只會把挖礦收入轉入自己的地址。所以礦工Michael的CoinBase是“Michael獲得了12.5比特幣”,礦工Nancy的CoinBase是“Nancy獲得了12.5比特幣”。

每一個礦工都把自己收集到的交易和自己該獲得的收入填好了,那麼,到底誰的記錄才會被大家認可呢?比特幣就採用工作量證明機制,讓礦工互相間競爭求解一個數學題,誰先解出來了,誰的區塊就會被所有人認可。就好像開篇的故事講的那個村子一樣,每個礦工都在努力地推那個巨石,一旦石頭把自己記錄的那一頁賬目壓住了,他就大喊一聲,“我的工作量證明成功了,你們快來看!”全體礦工就都過來把那一頁賬目抄寫一份,貼在自己賬本的最後面,然後又開始新的記賬過程。周而復始,生生不息,賬本一頁一頁的增加,賬本越來越厚。

區塊鏈研習 | 人人都說的比特幣挖礦,到底是在挖什麼?

“中本聰”決定採用工作量證明機制的時候,出發點是避免系統受到攻擊。“中本聰”認為,如果一個攻擊者想用搞亂賬本的方式來進行攻擊,那麼他就需要足夠的計算能力。也就是說,他要比大多數推石頭的人的力量更大。這樣,他就需要付出巨大的成本,但是換回的收益並不足以抵消成本,因此攻擊者是沒有攻擊比特幣系統的經濟學動力的。

與推石頭的方式不同的地方在於,比特幣中是大家一起通過窮舉結果的方式,來求解一個數學題,並不是算力強的人每次都會贏,因為有人可能很幸運,一下子就搜尋到了那個答案。而算力強的人,可能這次沒那麼幸運,窮舉了很多次也沒有碰到解。但是從概率上看,求出答案的次數和自己在整個比特幣網路中算力的比例是一致的,也就是說,如果一個礦工擁有了全網30%的算力,那麼基本上在1000分鐘(產生了100個區塊)裡,有30個區塊都是他找到的答案,他獲得了30%的挖礦收益。

但是,現在由於比特幣的價格越來越高,推石頭的人已經不滿足於自己去推了,而是把家裡的大騾子大馬都派上去幹活了。在“中本聰”最初的設計裡,一個CPU一票,用算力來決定哪個礦工記的賬成為最終的賬目。隨著比特幣價格的增高,開始出現了GPU挖礦,後來人們又不滿足於GPU的速度,開始製造專用晶片挖礦。專用晶片在計算比特幣問題的能力上是普通CPU的數萬倍,因此現在比特幣已經不是“一個CPU一票”了,這也背離了當初“中本聰”的設計,比特幣網路已經基本上被幾大礦池所壟斷,背離了去中心化貨幣這一初衷。



本文作者:敖萌
本文轉自雷鋒網禁止二次轉載,原文連結

相關文章