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