位元幣如何挖礦(挖礦原理) 工作量證明

2022-09-15 10:12:11 字數 1984 閱讀 9254

在區塊鏈記賬原理 一篇,我們了解到記賬是把交易記錄、交易時間、賬本序號、上乙個hash值等資訊計算hash打包的過程。

我們知道所有的計算和存貯是需要消耗計算機資源的,既然要付出成本,那節點為什麼還要參與記賬呢?在中本聰(位元幣之父)的設計裡,完成記賬的節點可以獲得系統給與的一定數量的位元幣獎勵,這個獎勵的過程也就是位元幣的發行過程,因此大家形象的把記賬稱為「挖礦」,本文將詳細討論這個過程。

由於記賬是有獎勵的,每次記賬都可以給自己憑空增加一定數量的個位元幣(當前是12.5位元幣,博文寫作時每個位元幣是4萬人民幣以上,大家可以算算多少錢),因此就出現大家爭相記賬,大家一起記賬就會引起問題:出現記賬不一致的問題,位元幣系統引入工作量證明來解決這個問題,規則如下:

不過在進行工作量證明之前,記賬節點會做進行如下準備工作:

如果節點爭奪記賬權成功的話,就可以得到12.5位元幣的獎勵。

從區塊鏈記賬原理我們了解到,每次記賬的時候回把上乙個塊的hash值和當前的賬頁資訊一起作為原始資訊進行hash。

如果僅僅是這樣,顯然每個人都可以很輕鬆的完成記賬。

為了保證10分鐘左右只有乙個人可以記賬,就必須要提高記賬的難度,使得hash的結果必須以若干個0開頭。同是為了滿足這個條件,在進行hash時引入乙個隨機數變數。

用偽**表示一下:

hash(上乙個hash值,交易記錄集,隨機數) = 0000afd635bcd

我們知道改變hash的原始資訊的任何一部分,hash值也會隨之不斷的變化,因此在運算hash時,不斷的改變隨機數的值,總可以找的乙個隨機數使的hash的結果以若干個0開頭(下文把這個過程稱為猜謎),率先找到隨機數的節點就獲得此次記賬的唯一記賬權。

(這部分可選閱讀)我們簡單分析下記賬難度有多大,

hash值是由數字和大小寫字母構成的字串,每一位有62種可能性(可能為26個大寫字母、26個小寫字母,10個數字中任乙個),假設任何乙個字元出現的概率是均等的,那麼第一位為0的概率是1/62(其他位出現什麼字元先不管),理論上需要嘗試62次hash運算才會出現一次第一位為0的情況,如果前兩2位為0,就得嘗試62的平方次hash運算,以n個0開頭就需要嘗試62的n次方次運算。我們結合當前實際區塊#493050資訊來看看:

注:資料**於

我們可以看到hash值以18個0開頭,理論上需要嘗試62的18次方次,這個數是非常非常巨大的,我已經算不清楚了,應該是億億級別以上了。如此大的計算量需要投入大量的計算裝置、電力等,

目前應該沒有單礦工獨立參與挖礦了,基本都是由礦工聯合起來組成礦池進行挖礦(礦池裡的礦工按算力百分比來分收益)。

從經濟的角度講,只有挖礦還有收益(位元幣**不斷**也讓收益變大),就會有新的礦工加入,從而加劇競爭,提高算力難度,挖礦就需要耗費更多的運算和電力,相互作用引起最終成本會接近收益。

題外話:國內由於電力成本較低,相對收益更高,中國的算力佔整個網路的一半以上

在節點成功找到滿足的hash值之後,會馬上對全網進行廣播打包區塊,網路的節點收到廣播打包區塊,會立刻對其進行驗證。

如果驗證通過,則表明已經有節點成功解迷,自己就不再競爭當前區塊打包,而是選擇接受這個區塊,記錄到自己的賬本中,然後進行下乙個區塊的競爭猜謎。

網路中只有最快解謎的區塊,才會新增的賬本中,其他的節點進行複製,這樣就保證了整個賬本的唯一性。

假如節點有任何的作弊行為,都會導致網路的節點驗證不通過,直接丟棄其打包的區塊,這個區塊就無法記錄到總賬本中,作弊的節點耗費的成本就白費了,因此在巨大的挖礦成本下,也使得礦工自覺自願的遵守位元幣系統的共識協議,也就確保了整個系統的安全。

礦工的收益其實不僅僅包含新發行的12.5位元幣獎勵,同時還有交易費收益(本文忽略一些細節是為了讓主幹更清晰)。

有興趣的同學可以看看圖中區塊都包含了那些資訊,紅箭頭標示出的是本文涉及的資訊。

本文中有提到共識協議,位元幣共識協議主要是由工作量證明和最長鏈機制 兩部分組成,之後會有博文詳細講解。

深入淺出區塊鏈 - 系統學習區塊鏈,打造最好的區塊鏈技術部落格

位元幣的挖礦原理

位元幣的挖礦原理,實際上就是乙個資料記錄的過程。區塊鏈是個人人都可以參與資料處理的資料庫,每隔段時間,就需要礦工將之前沒有經過大家確認的交易資料收集起來,進行處理。但問題就來了,礦工那麼多,到底用誰處理的資料?所以,系統就有了乙個特殊的機制。所有參與的礦工,把資料打包的時候,必須加入乙個叫做 雜湊值...

區塊鏈101 位元幣挖礦是如何工作的

當你聽說位元幣 採礦 的時候,你會設想硬幣被從地下挖出來。但是位元幣不是物理的,那麼我們為什麼稱它為採礦呢?因為它類似於 開採,因為位元幣存在於協議的設計中 就像 存在於地下一樣 但它們還沒有被引入到光中 就像金子還沒有被挖掘出來一樣 位元幣協議規定,在某一時刻將存在2100萬位元幣。礦工 所做的就...

第二章 工作量證明和挖礦

本章節我們將會在我們的玩具版區塊鏈的基礎上加入工作量證明 pow 的支援。在第一章節的版本中,任何人都都可以在沒有任何工作量證明的情況下新增乙個區塊到區塊鏈中。當我們引入工作量證明機制之後,乙個節點必須要解開乙個有相當計算量的拼圖 pow puzzle 之後,才能往區塊鏈上新增乙個新的區塊。而去解開...