比特幣礦機到底在計算什麼?為什麼要做這些計算?

買賣虛擬貨幣

比特幣的挖礦計算其實就是大家一起做數學題,題幹是需要被記錄的交易,大家透過做題搶奪記賬權,搶到的礦工就能獲得系統獎勵和交易手續費。

比特幣用的SHA256演算法的特點是已知答案驗證正確很容易,但是要得到答案非常麻煩,需要一個一個數字去試。最先得到答案的礦工大家就都認可他是搶到了記賬權,獎勵就歸他了。大家繼續搶下一題的記賬權。

簡單來說這些計算的意義只在於保證整個系統的穩定安全,並沒有更多的意義。把比特幣看作是計算的副產品是不全面的,比特幣的產生髮行、比特幣鏈上所有的交易流通、比特幣系統的穩定性,都是計算的目的,是一體的。當然除了維護這個系統之外,的確並沒有產生其他的價值和產物。這也是比特幣被指責不環保浪費資源的一個黑點。

總的來說,比特幣作為一個里程碑式的區塊鏈數字貨幣,其源於大量的算力投入和使用者信任的巨大價值。這一點還是毋庸置疑的。

區塊鏈實質上是由一個個記錄著交易資訊的資料塊連結而成的,生成一個新區塊所需要完成的工作量證明,就是找到一個隨機數,使得將這個隨機數、上一個區塊的雜湊值、這個新區塊的交易資料組成的字串代入做雜湊運算,所得到的雜湊值符合目標難度要求。

雜湊運算,簡單來說,就是輸入任意長度的字串作雜湊運算會得到一個較短的固定位數的字串,稱為這些輸入資訊的雜湊值,並且不同的輸入資訊,哪怕是一個標點的不同,都會生成截然不同的雜湊值。上一個區塊的雜湊值即是把上一個區塊資訊代入做雜湊運算得到的唯一一個雜湊值。

雜湊值的表達是由0至9這10個數字以及abcdef這6個數字構成的,也就是說每一位有16種可能。而任何輸入所生成的雜湊值的表達是非常隨機不可控的。具體的難度要求則是指限定一個雜湊值表達的目標範圍——雜湊值開頭連續多位數字是0。我們知道,隨機代入數值,要實現開頭1個字位是0的概率是1/16,而要實現開頭8位都是0的概率則是1/2^ 32,也就是大約需要代入2^ 32個隨機數才能夠得到一個開頭8位都是0的雜湊值。所以記賬節點們在耗費大量算力計算的過程,就是代入大量隨機數進行雜湊運算直到找到一個能夠讓其參與生成的雜湊值實現要求數量的0作為開頭。

而這個難度要求是根據全網算力的變化進行調整的,比特幣網路共識每生成2016個區塊後,全網節點重新評估算力水平確定新的難度要求,以保證找到一個目標隨機數的時間大約是10分鐘。

簡單的說就是不停地拼湊字串,計算的SHA256雜湊值,直到找到產生合適的雜湊的字串,這個字串就是解。

為什麼要做這些計算?

本質上這個計算是為了解決分散式網路的同步問題,也常被稱為”拜占庭將軍問題“。中本聰曾經回覆過這個問題 比特幣採用了工作證明來解決拜占庭問題,而且中本聰選擇了計算雜湊來作為過程中計算的問題。

比特幣網路的區塊鏈實際上就是一個大賬本,在分散式的網路中會存在多個版本的賬本,怎麼找最新的賬本呢?你只需要找計算難度最大而且長度最長的賬本,這樣每個人都能安全地同步到同一個賬本上來。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;