通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

區塊鏈知識圖譜學習順序

比特幣的挖礦機制實際上就是利用哈希函數實現哈希碰撞的過程,所以在學習本內容之前,請務必瞭解什麼是 ,同時也要了解 ,這樣能才能更好的理解本文中的內容。

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

礦工是如何挖礦的

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

對於比特幣系統來說,目前,共有1萬多個礦工分佈於全世界的各個角落,共同維護著同一條區塊鏈,雖然礦工採用的機器不同,工作環境不同,但是大家都做著相同的工作,就是不斷的計算相同的一道數學難題。誰先找到這道數學難題的答案,就可以將答案封裝成一個新的區塊,並且將自己產生的這個新區塊添加到區塊鏈的後端,同時為了獎勵這個礦工所做出的工作,比特幣系統會獎勵這個礦工一定數量的比特幣。

所以如果想明白挖礦的本質,我們就需要完全的理解這道數學難題是什麼?

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

對於所有的數學題來說,必然會有一個或者多個輸入值,在經過某個數學函數處理之後,產生一個或者多個輸出值。而所謂的挖礦過程,就是礦工不斷的尋找新的輸入值,在經過相同的數學函數處理之後,將輸出值與比特系統中規定的目標值進行對比,如果滿足了目標值的要求,就相當於解題成功。

所以挖礦就是一個不斷的重複計算的過程。

接下來,我們就從這三個方面入手去理解這道數學難題。

首先來看輸入

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

挖礦算法的輸入來源於區塊中區塊頭的六部分內容,礦工需要不斷的去構造新的區塊頭才能產生不同的輸入,在區塊頭中的六部分中,有一部分內容稱之為Nonce,在密碼學中,Nonce是一個不會重複的隨機數,在構造新區塊的過程中,Nonce這個隨機數會以線性的方式不斷增長,也就是可以從0開始,一直進行累加,這樣每次累加,都會產生一個不同的區塊頭,也就產生了不同的輸入。

接著看數學函數的選擇

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

不同的虛擬貨幣採用的是數學函數可能會有所不同,比特幣採用的數學函數是我們以前介紹過的哈希函數,準確的說是SHA-256的哈希函數。所以在比特幣中,每一次的挖礦的過程,就是將礦工生成的新的區塊頭經過SHA-256計算之後,生成一個哈希值。

最後來看輸出

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

在比特幣系統中,所有的礦工會維護著一個相同的目標值,每個礦工在計算出自己的哈希值之後,就可以與目標值進行一下對比,如果計算出來的哈希值小於目標值就代表挖礦成功,否則就像我們剛才說的,通過調整區塊頭的隨機數,再重新進行計算,再與目標值進行對比。

但是目標值並不是永恆不變的,大約每兩週的時間,目標值會隨著全網的算力進行調整,如果全網的算力增加,那麼目標值就會變小,意味著礦工挖礦就越難,如果全網的算力下降,那麼目標值就會變大,礦工挖礦就會比較容易。

所以,所謂的挖礦,簡而言之,就一句話:就是用256位的哈希函數,通過調整區塊頭的輸入,如果計算出來的哈希值能小於當前全網的目標值,即表示挖礦成功。所以如果在單位時間內能進行多次的哈希運算,顯然挖到區塊的概率就越大,可以說整個挖礦的過程就比拼礦機計算能力的過程

後續內容的學習

通俗易懂區塊鏈系列——比特幣的挖礦機制PoW

在瞭解了比特幣的挖礦機制PoW之後,您可以繼續學習另外一種挖礦機制PoS,或者在此基礎上學習什麼是分叉。

同時我也推薦您可以鞏固並且加深瞭解一下區塊頭的六部分內容具體的含義。

這些內容都會有相應的學習視頻。


分享到:


相關文章: