比特幣其實是壹個毫無用處的壹串數字,但是被大家公認為有用,它就像鉆石、古董、字畫、遊戲皮膚等被賦予了價值。既不能吃,也不能用,但我們還是會認可它們的價值。
比特幣是壹種虛擬貨幣,基於區塊鏈技術,區塊鏈是壹個人人都可以參與數據處理的數據庫。通俗壹些講比特幣系統就是壹個大型的記賬本,它不需要壹個具體的地方去記錄某個賬戶下有多少余額,只要知道所有賬戶之間的轉賬記錄,就可以推算出某個賬戶下有多少余額。
舉個例子:A、B、C賬戶初始值分別為50、0、0轉賬記錄:A轉給B:10B轉給C:5C轉給A:2B轉給A:3這時,就可以計算出A、B、C的余額分別為:A:50-10+2+3=45B:0+10-5-3=2C:0+5-2=3A轉賬給B時,A不光要自己記賬,還要把這個賬單廣播給區塊鏈上的所有人。
“挖礦”的過程實際上就是壹個賬單數據記錄的過程,每隔10分鐘左右就需要礦工將之前沒有經過大家確認的交易數據收集起來進行處理。
但問題就來了,礦工那麽多,到底用誰處理的數據?系統就有了壹個特殊的機制,所有參與的礦工把數據打包的時候必須加入壹個叫做“哈希值”的東西,系統才會認可妳處理的數據。挖礦其實就是找Nonce隨機數,通過生成區塊頭部的隨機數來調整每次哈希的結果,使得計算出來的區塊的哈希值符合壹個特定的標準。
誰能最先完成這件事,並把自己的工作成果廣播給其他的礦工確認,全網其他節點核對該區塊記賬的正確性,且大部分認為沒問題,誰就能獲得記錄數據的權利,以及很多的比特幣作為獎勵。最開始的時間,每次獎勵50個比特幣,每過4年時間獎勵減半:2009-2012年,每次獎勵50btc;2013-2016年,每次獎勵25btc;2017-2020年,每次獎勵12.5btc;按照這樣的規劃,到2140年左右,獎勵會變為0,比特幣總量約2100萬個。其實,礦工挖礦不僅僅是為了比特幣,是維護整個區塊鏈網絡的重要環節:挖礦的人越多,參與數據確認的人也就越多,區塊數據也就越安全。比特幣的區塊哈希算法比特幣挖礦的算法,是對區塊頭做兩次sha256哈希運算,得到的結果如果小於區塊中規定的難度目標,即挖礦成功。
挖礦節點壹旦篩選好交易數據,按照時間順序,兩兩哈希,層層約減,就可以計算出壹顆Merkle樹,可以確定壹個唯壹的摘要,這就是Merkle樹的根。Merkle樹中,任何節點的變化,都會導致Merkle樹的根發生變化,通過這個值,可以用來驗證區塊中的交易數據是否被改動過。
區塊頭是80字節,平均每個交易至少250字節,平均每個區塊包含2000個交易。區塊哈希值實際上並不包含在區塊的數據結構裏,區塊打包時只有區塊頭被用於計算哈希。
交易數據都通過Merkle樹固定了下來,不需要再包含進來。所以區塊鏈是通過區塊頭鏈接在壹起的。
隨機數可以變化,而且要從0試到2的32次方。直到最後出現的hash結果其數字低於難度目標值。比如猜出來的值輸入後得到hash值前面40個都是零,而要求是前面35個0,那麽肯定符合要求。
在挖礦時,隨機數是未知的,要從0試到2的32次方,就是4294967296種可能性。以現在的壹臺礦機的算力,全部算完也不需要壹秒,所以還需要改變區塊內部的創幣交易中的附帶消息,這樣就讓Merkle根發生了變化,從而有更多的可能去找符合要求的隨機數。挖礦中,第壹筆交易是創幣交易。創幣交易可以附帶壹段文字消息,這段消息可以用來提供更多符合要求的隨機數。比如中本聰在挖出創世區塊時植入的信息:The
Times 03/Jan/2009 Chancellor on brink of second bailout for
banks綜上所述比特幣是不可能用紙和筆計算出來。壹個區塊計算出來,使用普通的電腦,需要26年。壹臺比特大陸生產的S17(功率1470W)算力50TH/s,不間斷運行挖比特幣壹個月可以獲得0.03個比特幣,挖壹個比特幣則需要33個月。S17運行壹小時耗電量約為1.47度電,壹天就需要耗電35.28度電,那麽挖壹個比特幣就需要34927.2度電。
“挖礦”僅僅只是讓更多的人參與進區塊鏈網絡的建設中來,這麽多的電費用來“計算”壹串虛擬的數值這樣真的好嗎?比特幣並不是壹個保值的東西,價格浮動較大,炒比特幣可能壹夜暴富,也可能壹夜變成窮光蛋。比特幣也並非宣稱那樣安全,2014年全球最大的比特幣交易網站MtGox被黑客入侵導致破產,價值4.67億美元的比特幣瞬間蒸發。犯罪分子用它來洗錢、逃稅等等,政府想去調查也是相當困難的壹件事。以上個人淺見,歡迎批評指正。認同我的看法,請點個贊再走,感謝!喜歡我的,請關註我,再次感謝!