比特幣礦機耗電量這麼大,到底在計算什麼?
利用「礦機」挖掘比特幣,耗電量大而且時間久,這說明「礦機」做大量的計算工作,可是具體到底是為誰服務?是付費版分散式計算?計算什麼內容呢?科學?醫學?天文?還是不可告人的秘密?
區塊鏈實質上是由一個個記錄著交易信息的數據塊鏈接而成的,生成一個新區塊所需要完成的工作量證明,就是找到一個隨機數,使得將這個隨機數、上一個區塊的哈希值、這個新區塊的交易數據組成的字元串代入做哈希運算,所得到的哈希值符合目標難度要求。
哈希運算,簡單來說,就是輸入任意長度的字元串作哈希運算會得到一個較短的固定位數的字元串,稱為這些輸入信息的哈希值,並且不同的輸入信息,哪怕是一個標點的不同,都會生成截然不同的哈希值。上一個區塊的哈希值即是把上一個區塊信息代入做哈希運算得到的唯一一個哈希值。
哈希值的表達是由0至9這10個數字以及abcdef這6個數字構成的,也就是說每一位有16種可能。而任何輸入所生成的哈希值的表達是非常隨機不可控的。具體的難度要求則是指限定一個哈希值表達的目標範圍——哈希值開頭連續多位數字是0。我們知道,隨機代入數值,要實現開頭1個字位是0的概率是1/16,而要實現開頭8位都是0的概率則是1/2^ 32,也就是大約需要代入2^ 32個隨機數才能夠得到一個開頭8位都是0的哈希值。所以記賬節點們在耗費大量算力計算的過程,就是代入大量隨機數進行哈希運算直到找到一個能夠讓其參與生成的哈希值實現要求數量的0作為開頭。
而這個難度要求是根據全網算力的變化進行調整的,比特幣網路共識每生成2016個區塊後,全網節點重新評估算力水平確定新的難度要求,以保證找到一個目標隨機數的時間大約是10分鐘。
算隨機數。
真的,就是一個隨機數,這是人類最無聊的活動,卻創造了世界上最有價值的數據。
不懂
下面是百度的 評論是我編的……
這一切要從挖礦開始講起。
比特幣的概念由化名為「中本聰」的網路極客在2009年提出,是一種不依靠特定貨幣機構發行,根據特定演算法,通過大量計算產生的去中心化的數字貨幣。
「可以這麼理解,比特幣系統是一個巨大的、不斷更新的賬本。每一頁都叫做一個區塊,按照時間順序連起來,就叫做比特幣的區塊鏈。每10分鐘新增一個區塊,裡面的內容是過去10分鐘系統內發生的一些交易。每一筆交易都會完完整整記錄在這個賬本里,比特幣就是賬本里記錄的錢。」孫小小解釋道,「其實我們電子銀行系統也是一個賬本,支付寶也是賬本,裡面也記錄了每個人的交易記錄。但是比特幣與銀行、支付寶有所不同的是,比特幣的交易信息不保存在中央伺服器中,卻保存在所有連接到比特幣網路的電腦里。」在比特幣的工作量證明機制下,比特幣網路里任何人都可以爭取記賬權,誰先解決一道與記賬相關的數學題誰就先記賬。這種數學題有個特點——解起來很難,驗證很容易。「假設解題是在扔3個骰子,誰扔出來點數小於5就對了,扔出來比較困難,但是驗證卻很簡單,」孫小小用了一個近似的例子。但是真實的題目並不是這麼簡單,其難度相當於1億個骰子扔出小於1億零50的數字,誰先扔出來,誰就獲得記賬權。此時,1億零50就是個哈希值,扔骰子的過程叫做哈希碰撞,而挖礦算力的單位就是每秒鐘多少次哈希碰撞。目前比特幣全網算力達到236萬萬億次哈希碰撞每秒,相當於20多萬個50米長的標準游泳池裡面水滴的數目。但即便是這麼大的算力,也需要10分鐘左右才能碰撞到一個符合要求的哈希值。「礦工」的任務就是參與爭奪記賬權,他們24小時不停地進行哈希碰撞,這個過程叫做「挖礦」。之所以有這個動力,是因為誰記賬,最新生成的比特幣就獎勵給誰。但是記賬的獎勵是遞減的,比特幣誕生之初,每記一頁賬本,賬本的內容是10分鐘內系統產生的幾十筆交易,就能拿到50個比特幣,但是按照中本聰的演算法,後來記一頁獎勵25個,依次遞減,就像挖金子一樣,一開始挖得多,後來越來越少。每次新增獎勵減少一半的時間點,就叫做比特幣產量減半。 「挖礦」主要有四種作用:一是發行了新的可以流通的比特幣;二是確認交易,記賬;三是增加賬本一頁,也就是打包交易形成「礦」;四是通過工作量證明機制,讓比特幣賬本無法被人隨意篡改。 「有人說挖比特幣太耗電了,完全是沒意義的,但目前比特幣系統市值已經100多億美元了,按照現在比特幣價格來算,每年新挖出來的比特幣市值在6億美元以上,另外比特幣挖礦解決了一個棄電的問題,中國2015年棄電500億度,目前很多大型礦場在中國,我們的礦場在西藏和四川,解決了當地很多棄水棄電,」孫小小認為自己的工作是「一根網線搞定」很多地區能源過剩,無法消耗的問題,「就地解決,轉化成比特幣,把價值傳送給世界,連鋪設電網的錢都省了。」
SHA256 Hash函數.
簡單來說,是給一個輸入,得到一個固定位數的輸出,而給出一個輸出,不能倒推回原來輸入(假如你不知道原來的輸入)
那個"輸出"就是共識機制協定好的難度.
通常是類似這樣的.
000000000000000001543a35eb4c1a657911d730d6d11e63a2b2ca678698cc54
用不完全精確的解釋,你可以想像難度已經協定好必須有17個前面的0.才能算挖到幣.
既然是不可倒推的.就只能暴力不停構造去算出來那個"輸入".上面的那串數字是16進位的.
1個0出現的概率是 1/16. 上面有17個零,要同時出現,概率就是 1 / 16 的 17 次方.
約要試 295147905179352825856 次
現在一台礦機是 10T. 每秒可以算 10000000000000 個 hash
你可以理解. 大概就是這樣.細節你可以去看mastering bitcoin
======
意義在於:因為現在挖出來一個塊值20萬。所以很多人去挖。
挖的同時,塊裡面也包含了交易信息和交易費用。
因為你支付了交易費,礦工願意給你打包進去塊里。
為什麼搞那麼複雜?因為能防止有人篡改交易賬本。
塊是一個扣住一個的,所以叫區塊鏈。
意味著你要改動某一筆交易,就得把下面扣住的區塊一起改了。
6個區塊後,基本上要改是不可能的。
礦機的運算實際上是在"爭奪記賬權",即把自己打包的交易寫到區塊鏈里的權利。
算力越大,寫入的幾率就越高。
謝邀,演算天機,算下一個比特幣在哪裡。
不管計算什麼,能賺錢就好
從客觀效果上來講,挖礦是在維護整個比特幣網路的穩定運行,保障整個網路的穩定
這就是挖礦的意義
算錢,很現實
推薦閱讀:
※如何看待網易招財貓?
※區塊鏈技術是否跟大數據一樣雷聲大雨點小,很難真正應用推廣?
※以太幣交易平台有哪些?
※怎麼看待人人網發布的區塊鏈平台「人人坊」,以及Token(代幣)RRcoin?
※PBFT協議在超過100個節點的時候性能會下降,能優化PBFT使其能支持更高量級(1000)的節點嗎?
TAG:雲計算 | 分散式計算 | 比特幣Bitcoin | 比特幣礦池 | 區塊鏈Blockchain |