本發(fā)明涉及區(qū)塊鏈PoW共識機制,特別是一種可功耗感知的區(qū)塊鏈PoW共識機制。
背景技術:
2009年比特幣的出現(xiàn)帶來了一種顛覆性的成果--區(qū)塊鏈技術,區(qū)塊鏈是一個安全的帳簿類數(shù)據(jù)庫,由一個個數(shù)據(jù)區(qū)塊組成,使用者可以在這個不斷更新升級的平臺查找數(shù)據(jù),對于金融機構來說,區(qū)塊鏈能加快交易處理過程、降低成本、減少中間人、提高市場洞察力,增加業(yè)務透明度。
如何在分布式系統(tǒng)中高效達成共識是分布式計算領域的重要研究問題,區(qū)塊鏈的優(yōu)勢之一就在于能夠在決策權高度分散的去中心化系統(tǒng)中使得各個節(jié)點高效的針對區(qū)塊數(shù)據(jù)的有效性達成共識。早期的比特幣區(qū)塊鏈采用高度依賴節(jié)點算力的工作量證明,即Proof of work,也就是PoW機制保證比特幣網(wǎng)絡分布式記賬的一致性,其核心思想是通過引入分布式節(jié)點的算力競爭來保證數(shù)據(jù)一致性和共識的安全性,其近乎完美的整合了比特幣系統(tǒng)的貨幣發(fā)行、交易支付和驗證功能,通過算力競爭保障系統(tǒng)的安全性和去中心性,PoW共識機制也存在非常顯著的缺陷,其強大算力造成資源浪費,比如電力,長達10分鐘的交易確認時間使其相對不適合小額交易的商業(yè)應用。
目前提出PoS共識機制來解決資源浪費和安全性缺陷問題,其本質(zhì)上是采用權益證明替代PoW中的基于哈希算力的工作量證明,是由系統(tǒng)中具有最高權益而非最高算力的節(jié)點獲得區(qū)塊記賬權,然而其共識過程僅僅靠內(nèi)部幣齡和權益,而不需要消耗外部算力和資源,解決了算力浪費問題,但是算力卻大打折扣。
我們知道,區(qū)塊鏈是和云計算完全不同的計算方式,從某種意義上來說,兩者是對立的,然而基于網(wǎng)絡虛擬化技術的云計算卻可以在滿足服務水平協(xié)議SLAs的前提下進行功耗感知,在提高網(wǎng)絡性能的同時進一步挖掘基礎設施網(wǎng)絡的資源潛力,同時還能感知功耗,降低碳排放和溫室效應。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種區(qū)塊鏈功耗感知的PoW共識機制,該共識機制包括如下過程步驟:(1)在比特幣系統(tǒng)中,各節(jié)點基于各自的計算機算力相互競爭共同解決一個求解復雜但驗證容易的SHA數(shù)學難題,最快解決該難題的節(jié)點獲得區(qū)塊記賬權和系統(tǒng)自動生成的比特幣獎勵;(2)采用WDM網(wǎng)狀網(wǎng)將位于不同地理位置的物理服務器互聯(lián),構成區(qū)塊鏈基礎設施網(wǎng)絡,響應區(qū)塊鏈請求產(chǎn)生功耗,將輕載服務器上的區(qū)塊鏈節(jié)點整合到較少的物理服務器上,將通信需求疏導至較少的鏈路中,關閉“不必要”的服務器和節(jié)點。
優(yōu)選的,所述SHA數(shù)學難題可表述為根據(jù)當前難度值,通過搜索求解一個合適的隨機數(shù)使得區(qū)塊頭各元數(shù)值的雙SHA哈希值小于或者等于目標哈希值。
優(yōu)選的,所述比特幣系統(tǒng)調(diào)整隨機數(shù)搜索的難度值來控制區(qū)塊的平均生成時間為6分鐘。
優(yōu)選的,所述PoW共識的隨機數(shù)搜索過程包括如下步驟:(1)搜集當前時間段的全網(wǎng)未確認交易,并增加一個用于發(fā)行新比特幣獎勵的Coinbase交易,形成當前區(qū)塊體的交易集合;(2)計算區(qū)塊體交易集合的Merkle根記入?yún)^(qū)塊頭,并填寫區(qū)塊頭的其他元數(shù)據(jù),其中隨機數(shù)Nonce設置為零;(3)隨機數(shù)Nonce加1,計算當前區(qū)塊頭的雙SHA哈希值,如果小于或等于目標哈希值,則成功搜索到合適的隨機數(shù),并獲得該區(qū)塊的記賬權;否則繼續(xù)步驟(3)直到任一節(jié)點搜索到合適的隨機數(shù)為止;(4)如果一定時間內(nèi)未成功,則更新時間戳和未確認交易集合、重新計算Merkle根后繼續(xù)搜索。
優(yōu)選的,所述功耗包括與業(yè)務載荷相關的功耗和與業(yè)務載荷無關的功耗。
優(yōu)選的,使用混合整數(shù)規(guī)劃(MIP)算法對功耗感知區(qū)塊鏈建模。
采用該功耗感知PoW共識機制,在提高區(qū)塊鏈性能的同時進一步挖掘基礎設施網(wǎng)絡的資源潛力,同時還能感知功耗,降低碳排放和溫室效應。
根據(jù)下文結合附圖對本發(fā)明具體實施例的詳細描述,本領域技術人員將會更加明了本發(fā)明的上述以及其他目的、優(yōu)點和特征。
附圖說明
后文將參照附圖以示例性而非限制性的方式詳細描述本發(fā)明的一些具體實施例。附圖中相同的附圖標記標示了相同或類似的部件或部分。本領域技術人員應該理解,這些附圖未必是按比例繪制的。本發(fā)明的目標及特征考慮到如下結合附圖的描述將更加明顯,附圖中:
圖1為根據(jù)本發(fā)明實施例的區(qū)塊鏈功耗感知的PoW共識機制示意圖。
圖2為根據(jù)本發(fā)明實施例的PoW共識機制隨機數(shù)搜索流程圖
具體實施方式
在進行具體實施方式的說明之前,為了更為清楚的表達所論述的內(nèi)容,首先定義一些非常重要的概念。
交易:交易的實質(zhì)是個關系數(shù)據(jù)結構,這個數(shù)據(jù)結構中包含交易參與者價值轉移的相關信息。這些交易信息被稱為記賬總賬簿。交易需經(jīng)過三個創(chuàng)建、驗證、寫入?yún)^(qū)塊鏈。交易必須經(jīng)過數(shù)字簽名,保證交易的合法性。
區(qū)塊:所有的交易信息存放于區(qū)塊中,一條交易信息就是一條記錄,作為一個獨立的記錄存放于區(qū)塊鏈中。區(qū)塊由區(qū)塊頭部和數(shù)據(jù)部分組成,區(qū)塊頭字段包含區(qū)塊本身的各種特性,例如前一區(qū)塊信息,merkle值及時間戳等。其中區(qū)塊頭哈希值和區(qū)塊高度是標識區(qū)塊最主要的兩個指標。區(qū)塊主標識符是它的加密哈希值,一個通過SHA算法對區(qū)塊頭進行二次哈希計算而得到的數(shù)字指紋。產(chǎn)生的32字節(jié)哈希值被稱為區(qū)塊哈希值,或者區(qū)塊頭哈希值,只有區(qū)塊頭被用于計算。區(qū)塊哈希值可以唯一、明確地標識一個區(qū)塊,并且任何節(jié)點通過簡單地對區(qū)塊頭進行哈希計算都可以獨立地獲取該區(qū)塊哈希值。
區(qū)塊鏈:由區(qū)塊按照鏈式結構有序鏈接起來的數(shù)據(jù)結構。區(qū)塊鏈就像一個垂直的堆棧,第一個區(qū)塊作為棧底的首區(qū)塊,隨后每個區(qū)塊都被放置在其他區(qū)塊之上。當區(qū)塊寫入?yún)^(qū)塊鏈后將永遠不會改變,并且備份到其他的區(qū)塊鏈服務器上。
實施例:參見圖1,一種區(qū)塊鏈功耗感知的PoW共識機制,該共識機制包括如下過程步驟:(1)在比特幣系統(tǒng)中,各節(jié)點基于各自的計算機算力相互競爭共同解決一個求解復雜但驗證容易的SHA數(shù)學難題,最快解決該難題的節(jié)點獲得區(qū)塊記賬權和系統(tǒng)自動生成的比特幣獎勵;(2)采用WDM網(wǎng)狀網(wǎng)將位于不同地理位置的物理服務器互聯(lián),構成區(qū)塊鏈基礎設施網(wǎng)絡,響應區(qū)塊鏈請求產(chǎn)生功耗,將輕載服務器上的區(qū)塊鏈節(jié)點整合到較少的物理服務器上,將通信需求疏導至較少的鏈路中,關閉“不必要”的服務器和節(jié)點。
SHA數(shù)學難題可表述為根據(jù)當前難度值,通過搜索求解一個合適的隨機數(shù)使得區(qū)塊頭各元數(shù)值的雙SHA哈希值小于或者等于目標哈希值。比特幣系統(tǒng)調(diào)整隨機數(shù)搜索的難度值來控制區(qū)塊的平均生成時間為小于10分鐘,最好是6分鐘以內(nèi),以滿足快速處理交易的需求。
參見圖2,PoW共識的隨機數(shù)搜索過程包括如下步驟:(1)搜集當前時間段的全網(wǎng)未確認交易,并增加一個用于發(fā)行新比特幣獎勵的Coinbase交易,形成當前區(qū)塊體的交易集合;(2)計算區(qū)塊體交易集合的Merkle根記入?yún)^(qū)塊頭,并填寫區(qū)塊頭的其他元數(shù)據(jù),其中隨機數(shù)Nonce設置為零;(3)隨機數(shù)Nonce加1,計算當前區(qū)塊頭的雙SHA哈希值,如果小于或等于目標哈希值,則成功搜索到合適的隨機數(shù),并獲得該區(qū)塊的記賬權;否則繼續(xù)步驟(3)直到任一節(jié)點搜索到合適的隨機數(shù)為止;(4)如果一定時間內(nèi)未成功,則更新時間戳和未確認交易集合、重新計算Merkle根后繼續(xù)搜索。功耗包括與業(yè)務載荷相關的功耗和與業(yè)務載荷無關的功耗,與業(yè)務載荷無關的功耗稱為無用功耗,在功耗感知的PoW共識機制中,可以通過降低不必要的基本功耗來達到節(jié)能的目的,將工作狀態(tài)分為激活模式和關閉模式。本實施例中,區(qū)塊鏈的兩個節(jié)點a和d被映射到物理服務器S1上,而其余的兩個節(jié)點b和e被整合到物理服務器S2上,另外兩個基點c和f整合到物理服務器S3上,而鏈路(a-b)和(d-e)均被映射到物理路徑(A-B)上,鏈路(b-c)和(e-f)映射到物理路徑(B-C)上,鏈路(c-a)和(f-d)被映射到物理路徑(C-A)上,在該功耗感知的區(qū)塊鏈映射中,通過業(yè)務載荷的整合和疏導,關閉不必要的服務器和節(jié)點,降低功耗大約50%。在映射服務器的算法中,使用混合整數(shù)規(guī)劃(MIP)算法對功耗感知區(qū)塊鏈建模,將功耗感知的區(qū)塊連問題建模成數(shù)學優(yōu)化問題求解,以最小化總的功耗為優(yōu)化目標函數(shù),定義如下:
Minimize{η·Pnetwork+ζ·Pserver} (1)
目標函數(shù)試圖最小化PoW共識機制下區(qū)塊鏈的總功耗,包括網(wǎng)絡功耗和服務器功耗,其中η+ζ=1,兩者分別用來平衡網(wǎng)絡功耗和服務器功耗的權重。同時,需要滿足一些特定的約束條件,包括資源容量約束,位置約束等,約束條件為:
(1)節(jié)點“流量守恒”;
(2)節(jié)點提供給區(qū)塊連的資源量不超過自身可用資源量;
(3)用戶低速率業(yè)務狀態(tài)下每條鏈路所承載業(yè)務帶寬總量不能超過容忍限度
(4)底層物理網(wǎng)絡長期總功耗最低。
當求解目標函數(shù)完成后,需要完成剩余的兩個重要工作,區(qū)塊鏈節(jié)點映射和鏈路映射,協(xié)同考慮節(jié)點資源需求和鄰近鏈路的帶寬資源需求,根據(jù)資源需求量對節(jié)點進行將序排列后,計算區(qū)塊鏈資源利用效率和接納率,利用最低功耗路徑有限原則選擇不同的功耗實施路徑。其中資源需求量定義為:
其中req(v)表示節(jié)點v的服務器資源需求量,b(e)表示鏈路e的鏈路帶寬資源需求量,Adj(v)表示節(jié)點v的鄰近鏈路集合。
采用規(guī)一化懲罰因子算法計算上述資源需求量即可獲得節(jié)點和鏈路的分配機制。
雖然本發(fā)明已經(jīng)參考特定的說明性實施例進行了描述,但是不會受到這些實施例的限定而僅僅受到附加權利要求的限定。本領域技術人員應當理解可以在不偏離本發(fā)明的保護范圍和精神的情況下對本發(fā)明的實施例能夠進行改動和修改。