比特幣的算力分析
比特幣是近年興起的一種新的虛擬貨幣,它的一個突出特征,就是去中心化,即不存在一個或者多個固定核心作為交易樞紐。交易只存在於買賣雙方之間。
現以國內比較流行的礦場模式為例,整個比特幣的生產流程可以劃分為以下幾個環節:
1.概念的提出
去中心化和競爭機制,最早存在於中本聰(傳說中的比特幣創始人和開發者)的大腦裏,是其日積月累的思想的產物。在他看來,貨幣作為一種載體,可以更好的實現去中心化這個思想。而且這其中也牽扯到中本聰對後續具體工作的一些思考和規劃。
在這個環節中,沒有任何算力參與其中,一切運作都是在大腦這個有機體內進行的,但卻可以稱為比特幣這個大項目的火種。
2.交易系統的邏輯
比特幣作為一種虛擬貨幣,前期不需要實際的造幣工場或者ATM機的參與。但是貨幣的本質是支付手段,也就是說,它必須可以進行交易。這個又涉及一個關鍵,兩個核心。一個關鍵是指,一種為大眾認可的合法憑證;兩個核心是指,交易有效性的確認,以及交易雙方的身份鑒定,也就是對憑證擁有的合法性,或者來源合法性的確認。
要解決上述問題,需要用到密碼學,計算機科學的一些先驗知識,來做可實現性的考量,其中不免需要對實體貨幣交易有一定的理解。但最重要的,這個環節是對上一個環節的產出品,它是對比特幣思想概念的貫徹執行。
在這個環節中,不可避免的要用到一些算力,比如電腦,手機,或者搜索引擎,或者Word之類的文本編輯工具。
3.交易系統的實現
交易系統的本質就是實現貨幣的流轉和記賬。實際上比特幣系統也只保留了這兩項功能。交易系統的核心工作就是保證公平,即防止假賬本和假的賬本信息。
貨幣的流轉使用到一種叫區塊鏈的技術,其核心功能是對賬本的流通歷史(區塊)進行記錄和加密。簡而言之就是運用多次哈希防止非法篡改。哈希的原理有點類似二戰時期德國人的恩格瑪加密機(又稱迷機),就是錯亂對應。在算法上,它比恩格瑪先進的地方有兩點,一是用運算替代字母表實現映射關系,二是從單點映射變為多點映射,即定義域大於(一般情況是遠大於)值域,這樣一來逆運算是不可能實現的。但是對應的關系,在多概率情況下依然正確。
所以哈希算法的特點就是,輸入敏感,改動一個bit,結果差別巨大;二是反向運算(暴力攻擊)計算量遠高於正向運算量。
在區塊鏈技術中,實際上運算量更大,因為需要求出一個聯立哈希方程組的解。而且這個賬本的合法性每個人都是可以驗證,你只需要重新解一遍賬本的方程組即可。
如果有人要篡改歷史數據,就需要改動方程組,改動一個,後續的所有方程組都需要重新計算,這樣一來運算量就會成倍增加,即攻擊者要比誠實交易者多出成倍的計算量。
這個環節需要運用大量軟硬件算力,比如高性能的PC機或者工作站,集成開發環境(IDE)或者獨立的工具鏈,軟件管理工具,測試工具等。
4.礦機的研發和制造
交易系統裏面需要的一個虛擬物件就是賬本,所謂的挖礦,實際上就是獲取給賬本登記信息的權限。要獲得這個權限必須盡可能快的解決一道計算難題,最快者將會獲得若幹比特幣的獎勵。所以,解題速度越快,則獲取比特幣的概率越大。
這道難題就是SHA256算法,裏面牽扯了六種位-邏輯運算,經過循環,補零,翻轉等等步驟,求出一個散列值。這種並行邏輯運算結構極其適合拿GPU或者FPGA進行運算。這也催生了專門用於計算SHA256的設備-比特幣礦機。
礦機設計制造涉及電子機械結構等諸多環節。在電子設計環節,需要CAD工具的參與,包括原理圖-PCB制版工具,GPU開發需要專用的工具鏈,FPGA的實現則離不開布局布線,優化和仿真工具;在機械設計環節,則需要2D-3D繪圖或者建模工具,甚至有可能需要進行有限元分析。在制造環節,現代加工設備無一不需要算力的參與,比如加工機床,工業影像檢測設備得等。
5.集中挖礦
挖礦是能直接產生比特幣的一種方式,也是這次討論的最末端環節,礦場則等效於造幣廠和央行的角色。
挖礦這一環節的算力輸出極大,某國產廠商的熱銷比特幣礦機算力為6.3TH/s,即每秒能計算6.3x10^12次哈希。甚至出現了每秒能計算1P次,也就是10^15次哈希值得單臺礦機。對比之下,Intel Xeon E5-2670處理器(8核16線程,64bits,主頻2.3GHz),假設它每一個線程每一個時鐘計算一次哈希,加起來只有36.8GH/s,約為國產暢銷礦機的百分之0.6。以一個服務器裝兩個CPU計,一臺礦機可以抵得上86臺E5核心的服務器。以國內某礦場為例,裏面有約100PH/s(1P=1,000,000G)的算力,超過約13587臺雙U E5服務器的挖礦速度之和。
在礦場這個環節中,輸出的算力為整個鏈條之最,甚至比之前環節的總和還要多。
總結
下面做一下總結分析:
第一個環節中,調用算力幾乎為零,概念的產出完全來源於中本聰本人的思考。這是整比特幣交易系統的的源流,是一個純輸出的過程。
第二個環節中,為了實現對思考概念的細化,進行了業務邏輯的加工,期間考察了一定資料,並進行可行性評估。此環節依賴於上一個環節,有外部算力的參與。但仍可以算作一個純算力輸出過程。
第三個環節的主要工作是實現交易邏輯的軟件實現,使用了各種環境,平臺和工具,這些也都是外部算力的體現。此環節亦高度依賴於上述環節和外部算力,但是以源代碼量估計,為算力輸出過程。
第四個環節的輸出為礦機,其輸出產品中蘊含了大量算力。此環節調用外部算力資源較多,且同樣依賴於前述環節,但設計輸出(圖紙文檔等)和最後生成的產品,實現了大量算力資源的轉化。
第五個環節既有巨量算力輸入,又有巨量算力輸出,但這些輸出對之前各個環節有較強依賴性。
綜上,可以用算力的產出和依賴性方面衡量各個環節的貢獻;
依賴性
礦場 依賴於 軟硬件實現 依賴於 方案邏輯 依賴於 源(思想概念)
外部算力轉化(算力增益)
源(思想概念)>方案邏輯 > 軟硬件實現 > 礦場
算力輸出
礦場 > 軟硬件實現 > 方案邏輯 > 源(思想概念)
參考資料:
https://www.zhihu.com/question/20820286,哈希算法說明。
https://www.zhihu.com/question/31112808,區塊鏈原理,蕭蕭的回答。
https://www.zhihu.com/question/28397034,恩格瑪機原理
http://blog.jobbole.com/53433/,比特幣交易原理
http://blog.csdn.net/lwanttowin/article/details/53726450,SHA256算法原理
http://www.wakuangji.cn/ziliao/intel-cpu-su-du/,intel 系列cpu比特幣挖礦算力
http://tech.163.com/17/0111/10/CAGA6AVM00097U7R.html 比特幣礦場
http://detail.zol.com.cn/servercpu/index305392.shtml,intel Xeon E5-2670
比特幣的算力分析