當前位置: 首頁>>技術問答>>正文


究竟什麽是比特幣挖礦?

我聽說準備好硬件的人就可以進行比特幣挖礦了……但究竟什麽是比特幣挖掘(采礦)呢?它是否像真正的采礦一樣運作?我的意思是,就像你在進行物理采礦。

比特幣挖礦

最佳解決思路

挖礦是確保交易並將其交付到比特幣公共鏈中的過程。它需要贏得類似一種計算彩票的東西,其中你執行的每個哈希就像是購買一張票。比特幣協議目前允許產生區塊的礦工獲得50比特幣以及礦工選擇包括的交易的任何交易費用。

比特幣係統使用挖掘過程來生成硬幣,安全交易和發布交易。

上麵的說法完全準確,這裏試著用更簡單的語言來描述:

比特幣運作的方式是:不是有一個中央機構來保證和控製貨幣供應(就像大多數政府為其本國貨幣所做的那樣),而是這項工作遍布整個網絡。比特幣的大部分繁重工作都由礦工(”miners”)完成。

礦工們收集網絡上的交易(比如“Alice支付Karim 10個比特幣”和“Liam支付索非亞8.3個比特幣”),並將其捆綁成名為blocks的大捆。這些塊被串聯在一起,形成一個連續的,權威的記錄block chain,它不允許任何衝突的交易。這是必要的,因為如果沒有它,人們就可以在two different recipients上簽署相同的比特幣,比如在支票上寫入比您帳戶中更多的錢。塊鏈讓你確切地知道哪些交易數和可以信任(所以沒有錯誤的檢查!)。

比特幣確保隻有一個區塊鏈的方式是讓區塊真的很難生產。因此,礦工不必隨意製作塊,而必須計算符合特定標準的塊的cryptographic hash。 Bitcoiners將此過程稱為哈希散列(“hashing”)。找到一個“足夠好的數字”的加密散列的唯一方法就是嘗試計算大量散列,直到你幸運並找到一個可行的方法。就像上麵提到的彩票(”lottery”)一樣,因為成功創建塊的礦工是rewarded some bitcoins according to a preset schedule。根據塊出現的頻率不斷調整哈希標準的難度,因此會有更多的競爭,也等於需要更多的工作來找到塊。現代GPU每秒可以嘗試數以億計的哈希值,因此要在這場競賽中找到具有競爭力的哈希值,需要專門的硬件,否則他們往往會比在彩票(“lottery”)上花更多的電力。

除了散列標準之外,塊隻需包含有效的非衝突事務。因此,礦工的另一個主要任務是仔細驗證所有進入他們區塊的交易,否則他們不會為他們的工作獲得任何獎勵!

由於所有這些工作,當比特幣客戶登錄網絡時,它可以信任最難生成的區塊鏈(因為這顯然是大多數礦工正在進行的)。如果偽造的區塊鏈與真正的區塊鏈競爭(比如有人假裝他們沒有真正向索非亞提供那些8.4比特幣並且他們仍然擁有它們),那麽欺詐者將不得不做出與整個其餘部分一樣多的工作網絡,使他們的區塊鏈看起來值得信賴。所以基本上,通過哈希來尋找塊的緊張工作確保網絡免受欺詐。當然,還有一些漂亮的代碼可以指出如何在衝突交易之間進行選擇;以及如果兩個人同時找到有效的塊,該怎麽辦。

最後一件事:為什麽叫做挖礦(采礦)?在最初的比喻中,執行這項重要工作的人員與金礦工從地下挖金的比較,以便每個人都可以使用它。但事實上,比特幣礦工(”miners”)隻是在非常專業化的硬件上運行計算機程序,從而實現了網絡安全保護過程的自動化。總結一下,這個軟件

  • 收集來自網絡的交易

  • 驗證它們,並且不允許衝突

  • 將它們放入名為區塊(blocks)的大捆,及區塊鏈

  • 一遍又一遍地計算cryptographic hashes,直到找到一個“足夠好的數”

  • 然後將該塊提交給網絡,將其添加到區塊鏈中並獲得回報。

簡而言之,這就是比特幣挖礦!

次佳解決思路

挖礦是通過計算尋找nonce的工作,以便sha256(sha256(data+nonce)) < difficulty

其中

  • nonce是礦工自由選擇的一個整數(這個nonce的選擇和檢查條件(<difficulty))是否被滿足包括工作

  • 數據是對塊(事務)和上一個塊的散列內容的散列

  • sha256()是SHA-256密碼散列函數(wikpedia SHA-2 article)

  • 難度是由比特幣網絡的節點共同調整以適應網絡計算能力變化的值,以便網絡每10分鍾找到一個塊

由此產生的隨機數是工作的證明:因為如果沒有主要嘗試不同的隨機數並計算兩個散列函數,發現隨機數是不可能的,找到滿足條件的隨機數就證明了這項搜索和計算工作實際上已經完成。

這是比特幣解決雙重支出問題的核心思想:由於在數據中包含了前一個塊的散列(這將塊鏈接起來形成一個鏈),以及網絡的誠實節點始終在其上工作最長的鏈塊,double spending攻擊包括計算(並稍後發布)比"honest chain"(包含應該撤銷的事務)長的秘密分叉塊鏈。由於需要這樣做的工作,如果攻擊者具有比其他網絡更強的計算能力,則隻能獲勝。由於使用這種計算能力來誠實地挖礦可能比拉動double-spend更有利可圖,因此執行double-spend攻擊的動機很低。

另外,Mining隻是做計算工作來保護交易塊鏈。采礦的副作用是創建新硬幣並通過簽署交易賺取額外的資金。

比特幣挖礦,區塊鏈

參考資料

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3798.html,未經允許,請勿轉載。