當前位置:
首頁 > 科技 > 挖礦是場接力賽,史上最通俗版本詳解比特幣挖礦

挖礦是場接力賽,史上最通俗版本詳解比特幣挖礦

來源:白話區塊鏈 作者:段揚揚

相信很多人都聽說過比特幣挖礦的說法,不知道有多少人真正理解這個概念。在礦產領域,挖礦的概念其實很容易理解,就是從富含某種礦物質的礦石中提煉出礦物質的過程,而所謂的礦工就是那些頭戴安全頭盔,從事提煉礦物質的工人,他們的形象在我們的腦海中恐怕一點也不陌生。

比特幣世界的挖礦和礦產領域的挖礦還是有很多相似之處的,都是在挖掘有價值的資產,都需要花費一定的代價,都能給挖礦的人帶來一定的收益。礦產領域的挖礦可以得到相對稀缺的礦產資源,同時要付出體力和承擔安全風險的代價;而比特幣的挖礦可以得到比特幣獎勵,同時要付出計算機算力的代價。

礦產領域的礦工是靠大型的機械設備,而比特幣世界裡的礦工是靠專業的計算機設備,伴隨著激烈競爭,比特幣的挖礦設備從最開始的普通計算機,到現在的越來越專業的挖礦設備。

不過比特幣世界的挖礦和礦產領域的挖礦也還是有很多不同的,比特幣世界的挖礦還是發行新比特幣的唯一方式,同時也是在去中心化的網路中保證民主和競爭的重要手段,但是它也不是一點壞處都沒有,比如浪費了大量的計算機算力和電力。至於為什麼會這麼說,看完接下來的文字我想你就會明白了。

文章導讀:

1.什麼是挖礦2.如何證明誰的工作量最多3.什麼是工作量證明(POW)4.挖礦是一場接力賽5.小結

1.  什麼是挖礦

如果還不了解區塊鏈的話,可以參考不懂技術?老司機帶你輕鬆理解區塊鏈知識,比特幣的網路中傳播著大量的交易信息,既然沒有中心化的統一服務,那麼誰來確認這些交易的合法性,以及達成統一的共識呢?我們可以想想中心化服務的支付寶是如何解決這兩個問題的,支付寶其實是買賣雙方的中間擔保,它負責確認每一筆交易是否合法,並且等雙方在線下的交易沒有問題時,才將資金轉給賣方,這就保證了不會出現某一方作弊或者不認賬的問題。

但是比特幣網路中沒有像支付寶這樣的擔保角色,那麼它是如何做到交易的正常進行的呢?其實答案也很簡單,就是由網路中的所有全節點共同決定這份交易是否合法,通過共同維護同一份帳薄來確保交易不會違約和篡改。

這就如同有10個人共同見證了兩個人的交易,並一起確認這筆交易的合法性,同時每個人都維護了一份賬本,這筆交易會記錄到每個人各自維護的同一套賬本上,如果有人要違約或篡改交易數據,他需要同時改掉至少6個人的賬本(少數服從多數)。否則如果只改自己的那一份賬本,別人很容易就看出他的作弊行為,想想掩耳盜鈴的故事應該就能明白了。

說回到比特幣世界的挖礦,挖礦就是比特幣世界裡的礦工確認每一筆交易是否合法(關於如何確認交易合法,可以參考一文看懂比特幣交易的全過程),並將合法的交易寫入到統一的公共帳薄上,同時會獲得一定的新比特幣和交易費的獎勵的過程。獎勵是為了鼓勵更多的礦工加入進來,確保不會出現某一個節點獨斷專權的情況,至於獎勵給哪一個礦工,這就要看誰的工作量更多了,在比特幣的世界裡,是靠共同解決某一個數學問題來證明工作量的多少。

這就如同在競爭激勵的市場經濟中,每個公司都會拼盡全力提供更好的服務和產品才能生存下去,這樣就不太容易產生壟斷和腐敗,而競爭的結果促進了資源的有效配置,社會的整體財富就會不斷增長,最終所有人都會受益,當然受益最大的還是對社會貢獻最大的企業家。

而在計劃經濟下,所有的生產安排和資源分配,都掌握在少數人手中,權力的過度集中必然會導致腐敗,也不利於資源的合理配置,長遠來看,只能是絕大大多數人普遍赤貧,而受益最大的往往是掌握更多資源的人。想想改革開放前後的中國,就能明白計劃經濟和市場經濟的不同效果了。

總結一下,挖礦就是礦工為了得到新發行的比特幣和交易費的獎勵,主動去確認交易是否合法,並將合法的交易寫入共同維護的帳薄中的過程。而獎勵是為了確保礦工有更多的積極性,避免權力集中在少數人手中,同時獎勵也是比特幣發行的唯一方式。

2.  如何證明誰的工作量更多

剛才提到了挖礦的獎勵會給工作量最多的那個人,那麼如何證明誰的工作量最多呢。其實也很簡單,就是大家共同去解同一道數學題,這道數學題需要一定的計算量才能做出來,而率先得到答案的礦工就是最終的勝出者,分享最終的獎勵。

相信大家以前都玩過數獨遊戲(沒玩過的同學請自行搜索遊戲規則),簡單來說就是每一行與每一列必須出現1~9的數字,每個小九宮格內也必須有1~9的數字,並且每個數字在每行、每列和每個小九宮格里出現且僅能出現一次。遊戲剛開始只會給出有限的幾個位置上的數字,其他的位置都需要計算分析才能得出來正確的數字。

由這張遊戲圖可以看出,想要計算分析出每一個位置上的數字,還是需要花費不少力氣的,但是填完之後來驗證是否正確就簡單很多,看一下橫排、豎排以及小九宮格是否沒有重複的數字即可。

而比特幣挖礦的數學題也有這樣的特性,就是計算起來很費事,但是驗證起來卻很簡單。當然了,挖礦的數學題不是求解一道數獨題目,而是計算一道概率題。

先舉一個簡單的擲骰子遊戲,假如說有兩個骰子,如果我說擲出一個骰子之和小於等於12的組合,你肯定會說這還不簡單,隨便擲,任一個組合都肯定小於等於12,一點難度都沒有。好,那假如我把條件設為小於等於8呢,可能就不是每次都能擲出來了,它的概率是0.72;如果我再把條件設小呢,如果是4呢,那麼擲出來的可能性就會進一步減小,概率為0.11。(這裡默認大家都會計算概率,如果不懂的話,只需要知道概率在不斷減小就可以,想想現實的場景,這點應該不難理解)

3.  什麼是工作量證明(POW)

理解了擲骰子遊戲,再來介紹挖礦的工作量證明(POW Proof-Of-Work)演算法就很簡單了,在之前一篇介紹區塊鏈的文章不懂技術?老司機帶你輕鬆理解區塊鏈知識中,曾經提到過區塊的數據結構,當時提到了兩個數據是和挖礦相關的,當時沒有詳細說明,現在就可以拿出來分析了。

這裡的難度目標和Nonce就是和挖礦相關的參數,我們都知道比特幣網路平均每10分鐘產生新的比特幣,也就是說挖礦的平均時間為10分鐘,也許你會問怎麼確保剛好是10分鐘呢。其實答案很簡單,就是控制數學題目的難度,假如某個人的解題速度在不斷提升,那麼我只要提高題目難度,就可以保證他解答的時間大致衡定。

在比特幣世界中,解題速度和計算機的算力有直接的關係,想想今天的一台計算機和20年前的一台計算機去解同一道複雜的數學題,誰先計算出來,我想你肯定也認同是今天的計算機率先求出答案。如果我告訴你,誰先解出答案,就給誰豐厚的獎勵,大家肯定會拚命提高計算機的性能,這也是全球各個礦工在不斷提高算力的原因,因為大家都想快速解出答案,以獲得獎勵。

說回到難度目標和Nonce兩個參數,挖礦的題目是這樣的,每一個區塊頭都有唯一的哈希值,我現在要求你在這個哈希值後面添加一個隨機數字(一般是從零開始遞增),然後再去計算這個結果的哈希值,直到求出來的哈希值小於某一個數字,而這個數字是由一個常數除以上面的難度目標得出來的。

如果你理解了上面的擲骰子遊戲應該能看懂這道題目,其實就是通過不同的數字不斷地計算哈希值,直到答案小於某一個目標數字,這個目標數字越小,難度就越大,跟上面的骰子一樣,結果越小,擲出來的概率就越小。而這個目標數字是由難度目標決定的,難度目標數字越大,除出來得到的目標數字就越小。

Nonce計數器主要是統計總共計算了多少次,就如同擲骰子一樣,雖然可以一把擲出要求的數字,但是多次平均下來,肯定是符合概率統計的,這樣別的礦工就可以根據Nonce數字大小再一次印證這個礦工是否有作弊。

至此你應該已經明白工作量證明演算法的大致邏輯了吧,本質上就是在求一個概率題,誰先算出來就算誰贏,獎勵就歸誰。難度隨著答題的速度會動態調整,而這個難度就是由上面的難度目標值決定,這樣就能保證平均每10分鐘完成一次挖礦。

4.  挖礦是一場接力賽

一旦一個礦工成功挖礦,根據數獨遊戲的邏輯,其他礦工很快就能驗證是否成功,一旦驗證通過就會將區塊放入自己維護的區塊鏈中,並趕緊投入到下一次的挖礦,不帶有一絲一毫的猶豫。如此激烈的競爭伴隨的結果,就是每個礦工都不斷提升自己的計算機性能,結果就是大家的挖礦設備都不斷升級,以至於現在的礦場都是緊挨發電廠,用最先進的專用挖礦晶元。

這裡其實還有一個問題,就是假如說有兩個礦工同時計算出結果怎麼辦?這個時候就會出現分叉,也就是說區塊鏈的末端區塊存在分歧了,其實這隻會臨時出現,並不會長久存在。原因是一旦其他礦工確認了本次挖礦成功,就會投入到下一次挖礦,如果其他礦工又挖礦成功了,這條區塊鏈路就會比另一條區塊鏈路多出一個區塊,區塊鏈中的原則就是只認最長的鏈路,所以另一個挖礦成功的礦工很快就會捨棄之前的區塊,以最長的區塊鏈為準。

而獎勵也是要得到大多數的礦工認可後才會有效,畢竟賬本是所有的人一起維護的,只有大多數人的賬本上認可你的挖礦結果才有效。所以臨時的分叉並不會影響最終的獎勵,其實10分鐘的挖礦時間也是比特幣之父「中本聰」對效率和共識的一種平衡。

看到這裡也許你就會明白,為什麼會說挖礦浪費了很多算力和電力,因為勝出者往往只有一個,其他的礦工就相當於白忙活了,但是他們的計算機已經投入計算了,這筆算力和與之相對應的電力也就此浪費了。

這恐怕就是為了維護民主化的代價,如果讓中心化的節點去統一確認交易,並寫入公共帳薄,那麼很容易滋生出腐敗,這也不符合中本聰一開始的去中心化的設計理念,但是靠挖礦決定輸贏又會導致資源浪費,只能說任何事情都是有成本和代價的,只要收益大於成本,這件事就有做的價值,比特幣現在的價格相比用於計算的電費還是划算得多。

5. 小結

關於比特幣的挖礦到此就全部介紹完了,不知道你有沒有看明白。總結一下就是礦工將一定數量的交易打包到同一個區塊,然後共同去計算同一道數學題來決定以誰的區塊鏈為準,並且決定誰贏得新發行的比特幣和交易費。這種靠競爭來解決交易共識的問題,避免了單一節點壟斷整個網路的風險,讓整個網路形成了良性競爭的局面。

當然隨著全網算力的提高,篡改的難度就越來越大了,因為你要改至少51%的全節點的賬本,這就要求你的算力至少是其他51%全節點的總和,這個難度現在已經大到無法想像的程度,而且即便能做到,為此付出的電費代價也會讓篡改者掂量一下這麼做是否划算。關於比特幣的挖礦到此就全部介紹完了,不知道你有沒有看明白。總結一下就是礦工將一定數量的交易打包到同一個區塊,然後共同去計算同一道數學題來決定以誰的區塊鏈為準,並且決定誰贏得新發行的比特幣和交易費。這種靠競爭來解決交易共識的問題,避免了單一節點壟斷整個網路的風險,讓整個網路形成了良性競爭的局面。

當然隨著全網算力的提高,篡改的難度就越來越大了,因為你要改至少51%的全節點的賬本,這就要求你的算力至少是其他51%全節點的總和,這個難度現在已經大到無法想像的程度,而且即便能做到,為此付出的電費代價也會讓篡改者掂量一下這麼做是否划算。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 品途商業評論 的精彩文章:

直播答題「大作戰」,《百萬贏家》們的目的何在?
美柚2017年凈利潤1億元,即將國內上市

TAG:品途商業評論 |