07 挖礦是什麼意思?礦工都作了什麼?

挖礦節點計算機在挖礦時要作兩個任務:html

  • 第一個任務是把比特幣網絡中未確認的交易按梅克爾樹組裝成候選區塊,未被歸入的交易則往下順延。
  • 在建立候選區塊時,除了普通的交易以外,礦工在其中增長一個特殊的交易:幣基交易(coinbase transaction)。若是挖礦成功,則幣基交易會憑空轉出新區塊的獎勵比特幣到礦工的錢包地址中,從而發行這些比特幣出來。這個特殊交易也被叫做「創幣交易」,新的比特幣是在這一交易中被創造出來的。


挖礦節點計算機的第二個任務是真正的挖礦,即進行加密哈希計算,解決一個計算難題,進行算力競爭。在衆多爭奪記帳權的節點中,誰最早完成這個計算,它打包的區塊就被加到了區塊鏈的最後,成爲最新的區塊。率先完成計算的礦工會贏得新區塊的挖礦獎勵。最初,成功挖出一個區塊,礦工能夠得到 50 個比特幣的獎勵,按規則,這個挖礦獎勵每四年減半一次,分別爲 25 個、12.5 個,以此類推。

咱們再討論兩個問題,以深刻了解比特幣的工做量證實共識機制與它的挖礦機制。編程

第一,先向內看,比特幣礦工挖礦是在作什麼?

在候選區塊的頭部有一個 32 位的隨機數區域,礦工須要反覆調整隨機數並計算,目標是讓整個區塊的哈希值小於一個「目標值」。若是試過全部的 32 位隨機數可能性後,計算仍未能成功,那麼就要改變幣基(coinbase)的一個隨機數,接着進行反覆計算。

這個計算是加密哈希計算(對比特幣來講是 SHA-256),除了反覆計算別無他法。這個計算量很是大,好比在 2015 年年末,在大約 2 的 68 次方個隨機數中,只有一個能夠成功,這個數字比全球總人口的平方還要大。

有意思的是,這種挖礦計算是非對稱的,你挖礦須要通過 2 的 68 次方個哈希計算,而我要驗證你的確找到有效的隨機數,只須要一次就能夠。

第一個完成這個計算難題的節點所打包的區塊就成爲有效區塊,它向全網廣播告知本身已經完成,由其餘節點確認後(即有別的挖礦節點在這個區塊的基礎上進行下一個區塊的挖礦,生成新的區塊)。在等待 6 個區塊後,該挖礦節點就能夠得到此次比特幣獎勵。

比特幣的去中心網絡可以長期運行下來,如今有 1 萬多個全節點,正是由於有這樣的挖礦獎勵機制。出於對本身的利益考慮的礦工運維着這個不屬於任何人、徹底去中心化的網絡。網絡

第二,再向外看,比特幣的挖礦機制在加入挖礦的計算機的算力不斷增長的狀況下,這個挖礦機制是如何保持穩定的?

比特幣挖礦的芯片已經通過幾輪演變,其計算能力愈來愈強:從 CPU 演變到 GPU(顯卡),再到現場可編程門陣列(FPGA),再到如今的專用集成電路技術(ASIC),即只能進行比特幣挖礦所需的哈希計算的專用芯片中。而且隨着礦機的升級迭代和數量增多,接入比特幣區塊鏈網絡、參與挖礦競爭的計算算力愈來愈大。

相應地,比特幣系統有這樣一個對應的機制設計:隨着算力的增加,調整目標值的難度使得挖出一個區塊的時間始終是 10 分鐘左右。

這造成了一種動態的平衡,維持區塊鏈網絡經濟激勵的有效與穩定。這個決定難度的公式很是簡單明瞭,每挖出 2016 個區塊,也就是通過約兩個星期,挖礦難度會進行一次調整,該公式是:運維

下一個難度 = 上一個難度 × 2016 × 10分鐘 / 產生2016個區塊所需的時間分佈式


若是算力忽然大幅度上升,產生上一組 2016 個區塊所需的時間變短,那麼難度就會上升。在某些特殊狀況下,若是產生上一組 2016 個區塊所需的時間變長,那麼難度也會降低,但這樣的狀況並很少見。

所以,比特幣礦工節點的挖礦是它在運行分佈式帳本與去中心網絡。一樣重要的是,它也是比特幣的發行機制和整個社區的激勵機制。

比特幣的挖礦是比特幣的惟一發行機制,從中本聰挖出第一個區塊得到 50 枚比特幣開始,比特幣這個加密數字貨幣就以這樣的去中心化方式不斷地發行了出來。

比特幣區塊鏈網絡是由衆多節點組成的去中心網絡,而這些計算機節點加入這個網絡,維護分佈式帳本,是由於中本聰在設計系統時巧妙地加入了經濟激勵:衆多比特幣礦工(即挖礦節點)在競爭得到記帳的權利,礦工每增長一個新的區塊能得到對應的記帳獎勵。

比特幣的經濟系統是以「競爭-記帳-獎勵」循環爲核心的(見圖1),其中「競爭」很是重要,即挖礦節點進行的算力競爭。在比特幣系統這樣一個去中心網絡中,節點參與是出於得到經濟獎勵的自利動機,而記帳權利和對應的獎勵須要經過競爭來得到。性能

在區塊鏈的相關探討中,有把「挖礦」一詞的含義擴大的傾向,在這裏咱們認爲,只有生成區塊的計算行爲,即運維分佈式帳本與去中心網絡的行爲,纔是真正意義上的挖礦。簡單地說,只有生產區塊,纔是挖礦。即使放寬要求,再也不強求只有計算機節點生產區塊纔是挖礦,咱們也仍想強調,競爭得到對應的權利和獎勵,還是必須的。沒有競爭的獎勵,是很難真實有效的。

 

 

 圖1:比特幣的「競爭-記帳-獎勵」循環區塊鏈

 

經過討論比特幣區塊鏈的五個技術性細節,咱們再一次看到,比特幣系統在發行和交易層面都實現了徹底的去中心化:加密

  • 一個交易的確認,被寫入分佈式帳本記錄下來,是由去中心網絡中互不信任的節點爲了本身的利益相互以算力進行競爭而確認的。
  • 在競爭挖礦的過程當中,比特幣的發行是「憑空發行貨幣」,它的貨幣發行也是靠這個去中心網絡的算力競爭來完成的,是去中心化的。


比特幣做爲區塊鏈 1.0 的典型,完成了價值表示和價值轉移的概念驗證(見圖2)。

比特幣區塊鏈是很是精妙的設計,它無須任何人的居中協調與領導就能持續發展。比特幣多是迄今爲止最成功的加密數字貨幣,比特幣區塊鏈在加密數字貨幣的應用上堪稱完美。

比特幣區塊鏈即「區塊鏈1.0」是專爲去中心化的電子現金設計的,而要在各個領域中普遍應用,咱們須要有更通用、性能更好的區塊鏈系統。.net

 

 

 在比特幣系統以後出現了常被認爲是「區塊鏈 2.0」表明的以太坊。如今,更多項目在競爭成爲「區塊鏈 3.0」。設計

相關文章
相關標籤/搜索