摘 要:針對目前EOS平臺下BFT算法+DPoS共識機制逐漸成熟穩定,大量商業級應用的涌入,以及未來可能實現的百萬級TPS,本文通過對EOS平臺下共識機制的研究,提出了相應的區塊鏈溯源體系架構模型,旨在解決各溯源機構權力過于集中,數據存儲壓力大,數據過于集中化,積極性不高等各種問題。
關鍵詞:EOS;溯源;共識機制
EOS可以理解為Enterprise Operation System,即為商用分布式應用設計的一款區塊鏈操作系統。本文根據EOS發布的最新版白皮書中提到的新的區塊鏈架構和共識機制,運用BFT+DPoS的共識節點的運維模式,推引出新的溯源區塊鏈體系架構模型,更好地解決了現存溯源機構之間的數據集中化、孤島化等問題。
1 EOS
1.1 EOS核心特點
EOS的愿景是成為能運行大量商業級應用的公鏈,其核心特點是“商用”。現在很多公鏈存在網絡轉賬速度慢,費用高,系統并發量低或穩定性差等問題,不能很好的支撐真正的大規模商業級應用的運轉。從EOS白皮書中得知,EOS采用石墨烯區塊鏈架構,BFT-DPoS的共識機制減少了驗證節點,但使得EOS的擴展性明顯增強,能夠支持很快的交易處理速度。
1.2 EOS共識機制
1)BFT算法+DPoS共識機制。EOS在第一版白皮書中采用的是DPoS共識機制,在最新一版的白皮書中,對其作了一些改進,現為BFT-DPoS共識機制。DPoS相比于比特幣的PoW機制,DPoS不用浪費算力資源爭奪記賬權,其通過賦予EOS通證持有人股票權,選出21個超級節點來擔任記賬人的角色,保證整個網絡的正常運行,21個超級節點輪流負責記賬,每一個區塊產生后,會按照順序傳遞到下一個超級節點中,第二個超級節點負責打包新的區塊,同時確認上一區塊的內容,當某一區塊被超過2/3的超級節點確認后,該區塊將被確認為不可逆區塊。BFT算法加上DPoS共識后,驗證時不再按照出塊順序由超級節點一個個驗證區塊內容,而是讓出塊節點成為主節點,出塊后同時向剩下20個節點進行廣播,并獲得節點的驗證反饋,如果有超過2/3的節點驗證通過,則該區塊成為不可逆區塊,BFT可以使得EOS的區塊確認速度顯著增加。
2)超級節點。EOS中超級節點為“區塊生產者”,指的是那些收集、打包、驗證交易信息到區塊中的節點,是EOS網絡穩定運行的基礎,基于BFT-DPoS的共識機制,目前(截至2018.6.25)EOS規定網絡中有21個超級節點和49個備用節點,EOS是一個社區驅動的項目,因此超級節點的數量并非一成不變,若超級節點數量不能滿足項目發展,社區成員可以投票增加超級節點的數量,若想當選EOS超級節點,需要滿足一系列的標準才能參與競選,而后獲得一定票數后才能當選超級節點。
2 區塊鏈溯源體系架構
2.1 溯源的概念
現在的商品或農產品溯源包括原材料信息溯源、生產線信息溯源、出廠信息溯源、流通信息溯源、終端零售服務信息溯源等,所以,建立完善的溯源體系意義重大,而區塊鏈技術應用在溯源上恰好發揮了極大的作用,其不可纂改性、去中心化等特征完美契合溯源的需求。
2.2 區塊鏈溯源體系架構模型
1)TIFS及CFS。結合EOS中BFT算法和DPoS共識機制的特點,以云南省為例,各市各縣可以通過民主投票的方式競選出有實力、有設備、算力強大的溯源機構,共21個作為超級節點組成溯源機構聯盟服務器群(TIFS,Traceability Institution Federated Servers),選出的21個節點符合“多數節點是正義的”和“最長連機制”,在通過同樣的方式選取出有相同算力的候選聯盟服務器群CFS(Candidate Federated Servers)49個作為備選節點。21個超級節點(TIFS)負責提供系統資源和打包生產區塊等任務,49個備用節點(CFS)負責監督或者隨時替換TIFS中的超級節點。在BFT算法和DPoS共識機制下,這21個溯源機構即超級節點,在驗證時不再按照DPoS共識機制中21個記賬人輪流記賬的原則,而是讓出塊節點成為主節點,出塊后,同時向剩下的20個節點進行廣播,并獲得節點的認證和反饋,如果有超過2/3的節點驗證通過,則該區塊成為不可逆區塊并由主節點錨定到主鏈上。并且,21個溯源機構(超級節點)會按照其地理位置分布輪流成為主節點,盡可能地減少超級節點之間的網絡延遲。當TIFS中的某個或者某些超級節點受到外界因素干擾而出現問題時,CFS中的備用節點需要隨時頂替其位置并保證系統的穩定運行;當TIFS中的節點出現作惡或造假等惡劣行為時,CFS中的備選節點可以通過民主的方式吸引選票,得票高的節點替換TIFS中的作惡節點,以此實現監督的作用。
2)TIFS工作流程。步驟1:主節點收集網絡中的交易;步驟2:驗證交易并把交易打包到區塊;步驟3:廣播區塊給其余的20個溯源機構節點;步驟4:TIFS中其余的節點進行驗證并反饋信息給主節點;步驟5:主節點在獲取到有2/3的節點驗證通過后,將生成的Merkle根錨定到主鏈上。
其中,為了提升系統的性能,在將出塊速度縮短到0.5秒/塊的同時,可以將原來的隨機出塊順序改為由見證人商議后確定的出塊順序,這樣網絡延遲較低的見證人之間可以相鄰出塊,并且每個見證人連續生產6個區塊,使得6個區塊能有足夠的時間傳遞給下一個見證人。并且區塊的確認和生產是獨立的,每個區塊生產后立即進行全網廣播,區塊生產者一邊等待0.5秒生產一下個區塊,同時會接收其他見證人對上一個區塊的確認結果,新區塊的生產和舊區塊確認的接收同時進行,大部分情況下,使得交易會在1秒內確認且不可逆。
3)Merkle樹與格基算法。Merkle樹是一個基于Hash算法的數據結構,他的葉子節點的value是數據集合的單元數據或者單元數據Hash,非葉子節點的value是根據他下面所有葉子節點值,然后按照Hash算法計算而得出的。在區塊鏈中,生成的所有記錄通過Merkle樹的哈希過程生成唯一的Merkle根,存儲在區塊鏈的頭部。
Merkle樹被廣泛地用來驗證大數據組和大多數區塊鏈應用的包含性。它使得說謊或作假根本不可能發生,保證了數據的真實和有效性。
在基于區塊鏈的商品農產品溯源架構中,消費者在購買商品或農產品后會相應的獲得一對密鑰(一個公鑰和一個私鑰),區塊鏈網絡根據密鑰所屬類型開放對應權限。消費者只可以查詢和追溯農產品數據,生產商、供應商等環節中的人員可以進行數據錄入和查詢,TIFS中的超級節點則可進行錄入人員信息的查詢以及更高級的操作。本文采用了格基算法生成公私鑰對協議。
1)生成隨機矩陣 ,選擇安全整數q,n。
2)生成公私鑰對:
公鑰pk=P,P=R-A,
其中R,S是高斯參數,則私鑰sk=S。
3)加密算法:
其中e1,e2,e3是誤差參數。
4)解密算法:
根據與0的距離遠近判斷為0還是為1。
3 總結和展望
本文將EOS平臺下BFT算法+DPoS共識機制的運行方式與商品農產品溯源體系相結合,提出了新的溯源區塊鏈體系架構模型,具有去中心化,數據分布式存儲,數據不可篡改,出塊速度快等特點,同時TIFS的設定提高了系統的魯棒性,CFS的設立制衡權利集中化的同時也提高了機構的積極性。目前區塊鏈技術也在不斷的發展,因此,后續對商品農產品溯源各個環節的研究和細節的設計還需進一步完善。
參考文獻
[1]梅海濤,劉潔.區塊鏈的產業現狀、存在問題和政策建議[J].電信科學,2016,32(11):134-138.
作者簡介
傅威(1995-),男,漢族,安徽省合肥市,碩士研究生,云南財經大學信息學院,研究方向:計算機應用技術。