「區塊鏈~學習」從0到1認識比特幣——挖礦

我們談過比特幣的誕生背景,知道了幣為何而來,那它底層的區塊鏈技術又是如何將一個個區塊創造出來並形成鏈的?所謂的挖礦又是怎麼一回事呢?讓我們帶著問題來一場追根溯源。

1、為什麼要挖礦?

比特幣的誕生使交易信息可以被全網記錄驗證成為可能,無論是小到你跟你好朋友借了5元錢,還是大到商業貿易中動輒幾十萬的交易,都可以被記錄在鏈。你可能會有疑惑,這些交易信息誰負責記錄下來的呢?別人又為什麼肯心甘情願去做記賬人呢?記下的帳如果不對怎麼辦?

這就是挖礦的原因。所謂挖礦,其實就是將一段時間內網上所有交易信息進行打包,然後把這些交易信息存在區塊中,當然,這些負責記錄的人不會白白記錄,會得到一些獎勵----比特幣和實際交易過程中的手續費,這也是挖礦的意義。

可以說,有交易產生,就需要人來記錄交易,要想有人來記錄交易,就要給這批人一些獎勵,俗話說,有錢能使鬼推磨,也是這個道理。

「區塊鏈~學習」從0到1認識比特幣——挖礦

2、如何挖礦?

1)挖礦過程

我們先用一個簡單的記賬場景來理解下挖礦的過程:

假如從現在開始,10分鐘過去了,在這段時間內網絡上出現了很多交易信息,想要記賬的很多人都虎視眈眈盯著這筆交易出來,因為記下這筆賬就能得到比特幣的獎勵。但每個人記賬前還需要算一道數學題,誰先解出答案才能獲得記賬權。於是,第一個最快解出答案的人,向其他人大喊一聲:“我已經解出答案了!”然後把記賬的結果發給其他人,其他還在計算的人便停下來,開始驗證記的結果,驗證通過,記賬的人就會得到錢的獎勵。

而真正的挖礦原理會更復雜些:

由上篇文章我們知道比特幣底層技術是區塊鏈,區塊鏈又是由區塊組成,而每個區塊中又由區塊頭+區塊體構成。

區塊頭中通常包含前一個區塊的哈希散列值、Merkle根、時間戳、難度目標、以及一個填充的隨機值。區塊體中常有近400多個交易信息。

比特幣挖礦的過程就是一個包含著交易信息的區塊產生的過程,一個區塊的產生包含著它區塊頭中哈希值被解出的隨機值的過程。

具體的過程是這樣的:

每隔10分鐘,網上一些交易信息產生,礦工們先將交易信息打包成一個區塊,然後開始算它的哈希值。算出來的話,通過全網傳播給別的礦工,別的礦工停止計算,開始驗證,驗證正確的話,選擇接受這個區塊,記錄到自己的賬本中,然後進行下一個區塊的競爭猜謎,而這個包含著新交易信息的新區塊,掛到上個區塊後面。同時,礦工獲得一定的比特幣獎勵,後期還會有交易費。

如果驗證未通過,或者礦工有作弊行為,都會導致網絡的節點驗證不通過,直接丟棄其打包的區塊,作弊的節點耗費的成本就白費了,因此巨大的挖礦成本,也使得礦工自覺遵守共識協議,從而保證安全。

「區塊鏈~學習」從0到1認識比特幣——挖礦

2)挖礦工具

傳統挖礦中,煤礦工人需要揮動鐵鍬、戴著探照燈進行,而比特幣挖礦中,這種工具叫挖礦機,其實就是計算的電腦。這類電腦一般有專業的挖礦芯片,多采用燒顯卡的方式工作,耗電量較大。

一開始,參與挖礦的人少,需要算力小,很多人用一臺普通電腦就可以計算出哈希值解的結果。

後來隨著比特幣價格暴漲,礦工人數增加,挖礦過程中需要的算力增大,挖礦難度上升,開始出現專業礦機,當把很多礦機集合在一起,就成了專門挖礦的礦場

礦池的概念是,建一個平臺,所有有計算能力的人都可以參與進來,當得到獎勵,按每個人的計算力高低分配獎金。

「區塊鏈~學習」從0到1認識比特幣——挖礦

3、挖礦相關概念

a:工作量證明

工作量證明(Proof Of Work,簡稱POW),簡單理解就是一份證明,用來確認你做過一定量的工作。在做一份工作中,記錄整個過程的工作量效率很低,而通過對工作結果考量證明你的工作量,就會更高效。如現在招聘方通過你的學歷證書作為你能力的考量等。

在比特幣挖礦中,工作量的證明常指算力。什麼是算力?就是我們上面提到的解出哈希隨機值的計算能力,算的越快,最先解出答案,我們就稱之為算力越大,算力越大,才能在挖礦中更大概率獲得獎勵。例如求2的n次方等於多少,越快得出結果的算力就越強。

b:哈希函數(Hash Function)

在挖礦過程中,我們說礦工需要解一些題才能通關,這個計算題指的就是哈希函數。

哈希函數,也稱為散列函數,給定一個輸入x,它會算出相應的輸出H(x)。

對於比特幣這種加密系統所使用的哈希函數,它有如下特點:把變長轉換為定長;計算容易倒推難;哈希值對細節敏感(輸入值稍微改變輸出值大不一樣)。

scalers老師用了一個很通俗易懂的類比:哈希函數就像一個有特異功能的榨汁機,無論你丟進去多少種水果,榨出來的果汁總是一杯;一旦換了一種水果,榨出來的果汁口感和顏色完全不一樣。

這些特點使得區塊鏈中的交易信息不易篡改、具有匿名性成為可能。

c:通貨緊縮的比特幣

比特幣之所以被人們成為通貨緊縮幣,是因為它總量只有2100萬枚,大概到2140年後區塊不再產生新幣;每四年產量減少一半。

從第一塊比特幣問世後的初始四年,礦工創建一個區塊獎勵其50枚,另外還有交易費。比特幣每四年減半後,到現在礦工一次獎勵減少到12.5枚。當全部的比特幣被髮行出來後,礦工礦工就只剩交易費作為獎勵了。

因為總量有限,也是其價格奇高的原因之一,因此被稱為通貨緊縮的數字貨幣。

d:UTXO

有人說現實世界中沒有比特幣,只有UTXO。

什麼是UTXO呢?官方釋義為:未花費的交易輸出,它是比特幣交易的最基本單元。比特幣的交易由交易輸入和交易輸出組成,每一筆交易都要花費一筆輸入,產生一筆輸出,而其所產生的輸出,就是"未花費過的交易輸出",也就是 UTXO。

簡單解釋下:小張給小李要轉5個比特幣,那怎樣這個交易才算有效的呢?就是小張手裡存在這5個比特幣,也就是說這5個比特幣還沒有被小張花出去過,還沒有交易過。這時這5個比特幣轉移的過程才能叫做未花費過的交易輸出。

假如在之前小張已經把這5個比特幣用私鑰轉給別人了,這個交易信息就會被記錄驗證,此時,小張要再想給小李轉這5個比特幣,就轉不成了,因為屬於花費過的交易額了。這樣就有效防止了多重支付的問題。

所以你也可以把UTXO簡單理解為你口袋裡有效的那些零錢,這些零錢可以作交易使用。

「區塊鏈~學習」從0到1認識比特幣——挖礦

END:寫在最後

概括說,比特幣挖礦就是人們參與維護比特幣數據庫,從而得到比特幣獎勵。比特幣一開始作為虛擬貨幣,本沒有價值,但當越來越多人參與一項有意義的工作時,獲得報酬,這個報酬載體也就被賦予了價值,其實也正是人們的共識才賦予了它的價值。

就像我們工作,獲得鈔票一樣,只不過,鈔票是被國家強制規定的一種價值載體,而比特幣是人們自發承認有價值的載體。至於是否持續具有價值,還需要更強大的共識力量~

如有任何意見和看法,請在下方評論區留言討論


分享到:


相關文章: