王丹丹
(鄭州工業(yè)應用技術學院信息工程學院,河南鄭州451100)
隨著科技的發(fā)展和信息化程度的不斷提高,數(shù)據(jù)傳遞的方式也在不斷變化,互聯(lián)網技術在實現(xiàn)信息快速傳輸?shù)耐瑫r,也暴露了對信息維護和個人隱私保護缺乏有效監(jiān)督的問題[1].一方面借助于第三方平臺的數(shù)據(jù)共享模式增加了交易環(huán)節(jié),提升費用支出的同時容易受到外界攻擊;另一方面,傳統(tǒng)的中心化數(shù)據(jù)存儲,任意環(huán)節(jié)出現(xiàn)錯誤都可能帶來系統(tǒng)的崩潰,且由于受制于各方面因素,數(shù)據(jù)共享具有局限性,在傳遞過程中易被篡改[2].因此,與快速信息傳輸網絡匹配的共享模型被提出,在實現(xiàn)隱私保護的同時,提升數(shù)據(jù)的安全性,進而實現(xiàn)去中心化.在去信任化、去中心化的時代背景下,區(qū)塊鏈技術作為一個結合了通信傳輸、分布式存儲、密碼保護等多種功能的分布式系統(tǒng),具有集體維護、去中心化、數(shù)據(jù)庫可靠的特點,可以實現(xiàn)數(shù)據(jù)共享過程可跟蹤、隱私可保護、數(shù)據(jù)可加密,最終構建一個健康可信的網絡共享環(huán)境[3].
區(qū)塊鏈技術通過去信任化、去中心化維護數(shù)據(jù)庫信息.工作流程為:通過網絡中的任意節(jié)點產生新的交易數(shù)據(jù),將交易數(shù)據(jù)利用加密技術存儲到數(shù)據(jù)塊,數(shù)據(jù)塊驗證接收數(shù)據(jù)的合法性,通過驗證的數(shù)據(jù)鏈接到下一個數(shù)據(jù)塊匯聚為區(qū)塊,網絡中所有節(jié)點通過共識算法來判斷區(qū)塊的真?zhèn)?當區(qū)塊的準確性、合法性得到驗證后,生成新的區(qū)塊得到準確數(shù)據(jù),繼而生成可靠數(shù)據(jù)庫,被全網節(jié)點記錄[4].區(qū)塊鏈工作原理如圖1所示.
圖1 區(qū)塊鏈工作原理Fig.1 Blockchain work mechanism
區(qū)塊鏈網絡作為解決中心化網絡低效率、高成本、數(shù)據(jù)存儲不安全等問題的解決方案,通過塊鏈式數(shù)據(jù)結構校對存儲信息,數(shù)據(jù)的生成和更新依賴于節(jié)點的分布式存儲以及共識算法,數(shù)據(jù)的隱私及安全性通過各種加密技術來實現(xiàn),最終通過自動編程腳本實現(xiàn)網絡數(shù)據(jù)的分布式架構[5].區(qū)塊鏈關鍵技術主要有加密技術、分布式存儲以及共識算法[6].區(qū)塊鏈和其他的網絡結構一樣具有普適性的底層架構,P2P網絡作為區(qū)塊鏈的底層結構,具有動態(tài)性,主要負責網絡間的交互和通信,P2P網絡的上層通過加密技術形成分布式存儲.典型的區(qū)塊鏈架構一般包括數(shù)據(jù)層、網絡層、共識層、激勵層、合約層及應用層,如圖2所示.
圖2 典型區(qū)塊鏈架構Fig.2 Typical blockchain architecture
傳統(tǒng)的信息技術中,隱私可以理解為數(shù)據(jù)和信息的完整性及不公開性,區(qū)塊鏈技術為了實現(xiàn)節(jié)點間的同步及數(shù)據(jù)共享,要求數(shù)據(jù)公開,但是對一些敏感信息和數(shù)據(jù)需要進行加密處理.加密技術主要采用橢圓曲線密碼學(ECC)由維爾斯特拉斯方程確定平面曲線
式(1)中:假設橢圓曲線E上有一點(x,y),a,b,c為小于p的非負整數(shù),p為素數(shù)且大于3,F為一個域,O為無窮遠處一點,那么利用橢圓曲線加密的密碼學體系方程可表示為
同時,式(2)應滿足(4a3+27b3)modp≠0.
已有數(shù)據(jù)體系采用中心化存儲,集中存放數(shù)據(jù)的方式不利于數(shù)據(jù)的大規(guī)模存放,且一旦受到攻擊容易導致整個系統(tǒng)的癱瘓[7].基于分布技術的區(qū)塊鏈體系,通過將數(shù)據(jù)存儲在多個節(jié)點上,一方面大大提升了數(shù)據(jù)的使用效率,使數(shù)據(jù)在不同的存儲設備中具有一定的延展性;另一方面可以分攤維護成本,數(shù)據(jù)不易丟失[8].分布式存儲采用Paxos算法,由準備和批準兩個步驟構成.Paxos算法網絡節(jié)點類型見表1.
表1 Paxos算法網絡節(jié)點類型Tab.1 Paxosalgorithmnetwork node type
由于區(qū)塊鏈體系具有去中心化的特點,網絡各節(jié)點之間不分主次,地位平等,為了維護區(qū)塊鏈系統(tǒng)的穩(wěn)定,當決策出現(xiàn)不同意見時需要有一個合理共識,即解決拜占庭將軍問題和雙花問題,這時需要一個共識算法[9].共識算法依據(jù)不同的原理大致可以分為:驗證池機制(POOL)、權益證明機制(POS)、工作量證明機制(POW)及實用拜占庭容錯算法(PBFT).系統(tǒng)的容錯性能、響應時間、吞吐量是判斷共識算法性能優(yōu)劣的主要因素.系統(tǒng)的容錯性能f表示為
式(3)中:n為網絡節(jié)點數(shù)量,響應時間T也稱交易確認時間由兩部分組成:共識節(jié)點接收時間TTXBroadcast和共識時間TBlockConsensus,即
系統(tǒng)吞吐量表示單位時間內區(qū)塊鏈上鏈的交易總量,其數(shù)學表示為
搭建區(qū)塊鏈系統(tǒng)模型,應考慮以下幾個方面:(1)共識算法,不同的共識算法具有不同的特點,因此應根據(jù)網絡數(shù)據(jù)的差異性選擇合適的共識算法;(2)區(qū)塊數(shù)據(jù)的更新,區(qū)塊鏈去中心化使得每個節(jié)點都包含了系統(tǒng)數(shù)據(jù),當系統(tǒng)數(shù)據(jù)發(fā)生更新或者缺失時,如何驗證并及時對每個節(jié)點進行更新;(3)數(shù)據(jù)的擴展,區(qū)塊鏈作為數(shù)據(jù)存儲平臺,需要存放不同類型、不同時間節(jié)點的數(shù)據(jù),如何將不同類型的數(shù)據(jù)進行擴展使其關聯(lián)起來,方便用戶的提取和共享;(4)用戶應用的便捷性,如何實現(xiàn)簡單易用、良好的用戶體驗,在保證安全性的前提下如何簡化用戶的操作流程[10].系統(tǒng)模型功能模塊見圖3.
圖3 基于區(qū)塊鏈和隱私保護的數(shù)據(jù)共享功能模塊Fig.3 Data sharing function modulebased on blockchain and privacy protection
區(qū)塊鏈的去中心化,使得每個節(jié)點都含有系統(tǒng)的全部信息,因此鏈路的容量制約了區(qū)塊鏈的進一步提升,如何在保護數(shù)據(jù)隱私的同時,不影響區(qū)塊鏈性能是需要解決的主要問題.隱私保護主要采用密碼技術、混幣技術等.本文采用加密技術中的聚合簽名方法,通過多次簽名信息的輸入和輸出,聚合疊加為一個數(shù)據(jù).這種算法安全系數(shù)高,可以提供區(qū)塊的交易信息且不增加系統(tǒng)負擔.具體流程為:假設網絡存在節(jié)點交易輸入、輸出,分別為n和m,且存在
式(6)中:i取值在[0,n]之間,j取值在[0,m]之間,為了保護隱私需要對數(shù)據(jù)ini和outj進行隱藏,本文采用橢圓曲線密碼學(ECC),交易生成元用G表示,ini和outj的數(shù)據(jù)交易形式則轉換為
繼而通過橢圓曲線密碼學(ECC)將式(6)帶入,得到數(shù)據(jù)ini和outj的隱藏形式
通過式(9)和(10)可以發(fā)現(xiàn),當數(shù)據(jù)在網絡中傳輸或共享時,通過Ii和Oj無法獲取數(shù)據(jù)ini和outj的信息,因此用戶的輸入、輸出數(shù)據(jù)無法被發(fā)現(xiàn),隱私得到了保護.加密保護的核心代碼為:
Function encrypt(key,textBuffer)
{
Var encrypted="";
Var cip=crypto.createCipher('aes182',key);
Encrypted+=cip.update(textBuffer,'utf8','hex');
Encrypted+=cip,final('hex');
Return encrypted;
}
Function decrypt(key,encrypted)
{
Var decrypted="";
Var decipher=crypto.createDecipher('aes182',key);
decrypted+=decipher.update(encrypted,'hex','utf8');
decrypted+=decipher,final('utf8');
Return decrypted;
}
首先搭建實驗所需軟硬件環(huán)境,通過5臺虛擬機構建局域網絡,虛擬機硬件參數(shù)為32 G內存、英特爾I7處理器主頻3.7 GHz、LINUX操作系統(tǒng)、1 000 M網絡帶寬;同時安裝所需測試組件,構建測試代碼.實驗采用數(shù)據(jù)需被區(qū)塊鏈系統(tǒng)確認,并通過共識算法認證,因此本文采用拜占庭容錯機制中區(qū)塊鏈已有的共享數(shù)據(jù).通過比對分析,驗證本文模型與已有成果在系統(tǒng)共識上的優(yōu)劣,結果見表2.
表2 不同模型共識算法比對Tab.2 Comparison of different model consensusalgorithms
由表2可知,本文模型在對已有實驗數(shù)據(jù)進行共識算法比較時具有明顯優(yōu)勢,不管是驗證速度還是拜占庭容錯、吞吐量都明顯優(yōu)于其他模型,具有一定的先進性.共識機制作為區(qū)塊鏈的核心技術,雖然能夠說明本文模型具有一定優(yōu)勢,但在整體網絡上將本文模型與其他模型進行比對,仍缺少足夠證據(jù),因此需在整體網絡上將本文模型與已有模型進行對比,結果見表3.
表3 本文模型與已有模型數(shù)據(jù)比對Tab.3 Data comparison between themodel in thispaper and existingmodels
由表3可知,本文模型在整體上與其他模型相比具有一定的優(yōu)勢,可以很好地對用戶隱私起到保護作用,同時不過多占用鏈路容量,減輕了主鏈壓力,實用性更強、安全性更高,在整體上具有一定的先進性.
信息技術的快速發(fā)展一方面給人們帶來了便利,另一方面也使人們的隱私保護越來越難.區(qū)塊鏈技術在信息大爆炸時代解決了分布式網絡中的一致性問題,適應當前去中心化、去信任化的大背景,可以使數(shù)據(jù)不經過第三方平臺進行共享,提高了數(shù)據(jù)共享的安全性、便利性.如何在去中心化的模型中提高系統(tǒng)的容錯性能,同時平衡數(shù)據(jù)監(jiān)控與隱私保護,構建更加安全可靠的網絡環(huán)境,進而促進區(qū)塊鏈應用的健康合理發(fā)展,是下一步的研究重點.