支持零知識證明的交易數(shù)據(jù)隱私保護(hù)方案_第1頁
支持零知識證明的交易數(shù)據(jù)隱私保護(hù)方案_第2頁
支持零知識證明的交易數(shù)據(jù)隱私保護(hù)方案_第3頁
支持零知識證明的交易數(shù)據(jù)隱私保護(hù)方案_第4頁
支持零知識證明的交易數(shù)據(jù)隱私保護(hù)方案_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

由于傳統(tǒng)區(qū)塊鏈系統(tǒng)在鏈上數(shù)據(jù)完整性和安全性方面存在局限性,且鏈上與鏈下的數(shù)據(jù)無法進(jìn)行高效協(xié)同。因此,本文提出在提供隱私保護(hù)的同時保證鏈上與鏈下數(shù)據(jù)的強(qiáng)關(guān)聯(lián)性。采用零知識證明、鏈下計算等技術(shù)來解決數(shù)據(jù)協(xié)同的關(guān)鍵性問題,最終實現(xiàn)區(qū)塊鏈性能拓展與安全性能的提升。將鏈下的交易數(shù)據(jù)生成零知識證明并置于區(qū)塊鏈中存儲,達(dá)到隱私保護(hù)的效果。區(qū)塊鏈?zhǔn)沁\用密碼學(xué)技術(shù)將區(qū)塊以鏈表形式聯(lián)系起來,由眾多參與者一起完成并維護(hù)的分布式賬本,由于具有去中心化、不可篡改等特點,使其在近幾年受到更深入的研究與使用。其中,以聯(lián)盟鏈為框架的區(qū)塊鏈平臺(例如Fabric)在國內(nèi)得到了越來越多的研究與實際上的應(yīng)用開發(fā),然而聯(lián)盟鏈中的賬本交易數(shù)據(jù)對于每個參與維護(hù)區(qū)塊鏈的組織來說是公開透明的,這意味著每個組織都能夠看見鏈上每個用戶的交易信息。用戶的交易等隱私信息很容易被泄露,這對于一些特別注重隱私性的行業(yè)是不能夠接受的。因此,在既可以實現(xiàn)區(qū)塊鏈去中心化的功能同時也可以對鏈的信息進(jìn)行安全性的保障是本文研究的重要課題。問題的處理關(guān)鍵在于,交易底層的區(qū)塊鏈信息和實際應(yīng)用層間的傳輸接口隱私保密度,以及處理交易的智能合約的可驗證度。針對與基于零知識證明的隱私保護(hù)有機(jī)結(jié)合的問題,本文在研究同態(tài)的Paillier算法的基礎(chǔ)上,給出了與零知識驗證結(jié)合的區(qū)塊鏈隱私保護(hù)方法。零知識證明是屬于當(dāng)前區(qū)塊鏈鏈下Layer2擴(kuò)容的一種技術(shù)路線,其利用零知識驗證進(jìn)行鏈下的安全運算形成數(shù)據(jù),隨后再將計算結(jié)果交給鏈上的智能協(xié)議驗證,以建立鏈下計算鏈上驗證的隱私防護(hù)系統(tǒng)。零知識證明技術(shù)盡管在一些數(shù)字貨幣如Zcash、Monero中有了廣泛應(yīng)用,但其對數(shù)據(jù)所產(chǎn)生的智能合約證明的效率仍然比較慢。基于此,將數(shù)據(jù)利用零知識證明和鏈下的加密算法形成證據(jù),然后將計算結(jié)果交給鏈上的智能合約驗證,以建立鏈下計算鏈上驗證的隱私與安全體系。隨著數(shù)據(jù)時代的到來,本機(jī)處理數(shù)據(jù)的負(fù)載也越來越大。而云計算的發(fā)展很好地解決了對數(shù)據(jù)計算處理的效率問題,但將數(shù)據(jù)外包給第三方服務(wù)器進(jìn)行加密很有可能造成數(shù)據(jù)泄露,因此本方案結(jié)合安全多方協(xié)議,在云服務(wù)器上對數(shù)據(jù)高效計算的同時保證數(shù)據(jù)的隱私性。在基于零知識證明的鏈下計算鏈上驗證的拓展架構(gòu)方案中,會面臨分布式存儲可能帶來的風(fēng)險,使得這種鏈上存證鏈下計算面臨越來越復(fù)雜的安全考驗,同時也增大了數(shù)據(jù)丟失與鏈上鏈下數(shù)據(jù)不協(xié)同帶來的不確定風(fēng)險。因此,如何在功能拓展的同時確保鏈上鏈下數(shù)據(jù)協(xié)同統(tǒng)一,規(guī)避數(shù)據(jù)在管理過程中的風(fēng)險問題是架構(gòu)需要著重討論的內(nèi)容。針對這一難題,一般給出的解決方案是對數(shù)據(jù)在鏈下進(jìn)行計算、生成證據(jù)、加密等處理后再上傳,這其中就包括上面所提到的零知識證明的隱私保護(hù)相關(guān)理念與保護(hù)手段。但區(qū)塊鏈與傳統(tǒng)的隱私保護(hù)機(jī)制不同,如果直接對數(shù)據(jù)進(jìn)行加密處理后再上傳可能會導(dǎo)致整個鏈上交易無法完成共識,即便使用零知識證明技術(shù)在加密算法環(huán)境下滿足了隱私安全的需求,但是鏈上數(shù)據(jù)的協(xié)同一致性也會大打折扣?;诖吮尘?,對于區(qū)塊鏈鏈上數(shù)據(jù)與鏈下數(shù)據(jù)存儲相結(jié)合的可拓展性研究逐漸受到關(guān)注。將可搜索加密方案應(yīng)用到了區(qū)塊鏈架構(gòu)上,通過區(qū)塊鏈實現(xiàn)了不信任的多方間建立可靠數(shù)據(jù)共享的方案,然而該方案基于復(fù)雜的索引與排序算法進(jìn)行設(shè)計,所以計算開銷過大。文獻(xiàn)[10]提出了一種區(qū)塊鏈多授權(quán)可搜索的屬性基加密方案,并結(jié)合布隆過濾器與可搜索加密減少鏈上搜索時間,但只能在簇內(nèi)可信的機(jī)制下適用。以上方案在安全性和開銷效率之間的平衡難以得到解決,所以需要一種解決方案來滿足兩者之間的需求平衡。讓鏈上服務(wù)回歸鏈上,鏈下服務(wù)回歸鏈下,實現(xiàn)鏈上鏈下數(shù)據(jù)協(xié)同,提出鏈上鏈下協(xié)同一致的方案,以達(dá)到區(qū)塊鏈的高可用性、高安全性和高拓展性。本文主要的研究工作如下:(1)研究基于零知識證明的數(shù)據(jù)上鏈機(jī)制和鏈下計算技術(shù),實現(xiàn)隱私保護(hù)功能,提高交易數(shù)據(jù)的隱私保護(hù)能力。(2)提出基于區(qū)塊鏈的數(shù)據(jù)協(xié)同模型,構(gòu)建一種基于區(qū)塊鏈的安全可控數(shù)據(jù)協(xié)同技術(shù)架構(gòu),以此保障交易數(shù)據(jù)流通中的隱私安全。1預(yù)備知識1.1區(qū)塊鏈區(qū)塊鏈科技的源頭是以比特幣為代表的加密貨幣,由化名為中本聰?shù)膶W(xué)者在Bitcoin:A

Peer-to-PeerElectronicCashSystem中提出關(guān)于區(qū)塊鏈的概念,是指一個可以根據(jù)時間序列將所有儲存數(shù)據(jù)的區(qū)塊以鏈表的形式組織的數(shù)據(jù)結(jié)構(gòu)體。它可以通過使用密碼學(xué)維持一個去中心化的賬本,而這種賬本的各節(jié)點間的信息共享關(guān)系是無法修改并且也不能進(jìn)行偽造的。這樣的結(jié)構(gòu)形成了一個去中心化的分布式系統(tǒng),存儲每個節(jié)點的歷史交易記錄信息,所有節(jié)點通過共識機(jī)制來保證數(shù)據(jù)庫上數(shù)據(jù)的一致性,并使交易具有可追溯和不可逆轉(zhuǎn)的特性。區(qū)塊鏈技術(shù)最初是用于記錄比特幣等加密貨幣交易的數(shù)據(jù)結(jié)構(gòu),加密貨幣的技術(shù)原理是利用區(qū)塊鏈的分布式網(wǎng)絡(luò)基于密碼學(xué)算法來生成的,代表著區(qū)塊鏈技術(shù)的1.0時代——數(shù)字貨幣時代。隨著數(shù)字加密貨幣技術(shù)平臺的發(fā)展,后來在數(shù)字貨幣的基礎(chǔ)上加入了智能合約的概念,代表著區(qū)塊鏈技術(shù)的2.0時代。與加密貨幣相關(guān)的底層技術(shù)逐步改進(jìn)形成了區(qū)塊鏈技術(shù),如今在其他領(lǐng)域也展現(xiàn)出迅猛的發(fā)展勢頭,在各個行業(yè)與領(lǐng)域中進(jìn)行智能化應(yīng)用的開發(fā),代表著區(qū)塊鏈發(fā)展進(jìn)入到3.0時代。1.2零知識證明零知識證明技術(shù),最早是由Goldwasser等人于20世紀(jì)80年代提出的一種最小泄露證明。其設(shè)計理念與證明思想被廣泛應(yīng)用于身份證明、電子現(xiàn)金、數(shù)字簽名等場景。通常來說,零知識證明的初始化過程包括以下幾個步驟:(1)聲明:證明方根據(jù)論斷內(nèi)容產(chǎn)生一些派生的數(shù)據(jù),然后把它們發(fā)送給驗證方。(2)挑戰(zhàn):驗證方利用斷言產(chǎn)生一些等價問題,然后把這些問題發(fā)送給證明方。(3)響應(yīng):證明方求解這些等價問題,然后把對應(yīng)的解答返回給驗證方(但驗證方無法利用這些等價問題的解答獲得原問題的解答)。(4)驗證:驗證方判斷那些等價問題的解答是否正確。初始化算法:,輸入安全參數(shù)λ,輸出公共字符串str。證明算法:,輸入公共字符串str,語句(其中L是NPLanguage),證據(jù)ω,輸出證明π。驗證算法:,輸入公共字符串str,語句ι,證據(jù)ω,輸出布爾變量b∈{0,1},判斷輸入證明語句ι是否成立。檢查算法:,輸入公共字符串str,語句ι,證據(jù)ω,輸出布爾變量d∈{0,1},判斷ω是否使得ι成立。1.3Paillier算法Paillier加密算法是PascalPaillier在1999年發(fā)明的概率公鑰加密算法。優(yōu)點是原理簡單、易實現(xiàn),缺點是僅支持加法運算。(1)密鑰生成:先隨意選定兩個大素數(shù)p和q,運算出它們的積和最小公倍數(shù)選擇隨機(jī)數(shù)且滿足最大公約數(shù)定義存在此時得到公鑰為私鑰為(2)加密:對于明文m,明文信息需要滿足m小于n,選擇一個隨機(jī)數(shù)密文(3)解密:對于密文c,明文同時,Paillier也存在快速生成密鑰的算法:在密鑰長度相同的情況下,可以快速生成密鑰所以n更像是加密環(huán)境值,對應(yīng)密鑰。1.4IPFS系統(tǒng)星際文件系統(tǒng)(InterPlanetaryFileSystem,IPFS)是一種點對點的分布式文件系統(tǒng),同樣具有去中心化存儲的特性,因此與區(qū)塊鏈具有較好的結(jié)合性,同時也可以較好地解決當(dāng)前區(qū)塊鏈中區(qū)塊存儲容量存在限制的問題。目前有一些與區(qū)塊鏈和IPFS相關(guān)的研究,王路陽等人

提出了一種基于區(qū)塊鏈和IPFS網(wǎng)絡(luò)的監(jiān)控信息隱私保護(hù)機(jī)制。該方案結(jié)合IPFS和區(qū)塊鏈技術(shù),解決了監(jiān)控管理中的隱私保護(hù)問題。其中區(qū)塊鏈用于安全存儲帶有哈希的信息,并為哈希值提供驗證信息,IPFS用于存儲和分發(fā)監(jiān)控信息。Hao等人針對農(nóng)產(chǎn)品可溯性管理中數(shù)據(jù)可能被篡改從而影響食品安全的問題,提出了一種基于IPFS的區(qū)塊鏈存儲模型。該方案主要用于存儲不同環(huán)節(jié)中農(nóng)產(chǎn)品的信息,該方案存儲數(shù)據(jù)完全公開透明,雖然通過區(qū)塊鏈保證了數(shù)據(jù)不被篡改,然而并未考慮存儲數(shù)據(jù)的安全問題。有關(guān)區(qū)塊鏈和IPFS技術(shù)的應(yīng)用結(jié)合問題還處在理論研究的起步階段,許多方案還未得到實際的應(yīng)用和落地。因此區(qū)塊鏈和IPFS技術(shù)的應(yīng)用結(jié)合仍然任重而道遠(yuǎn),相關(guān)應(yīng)用的探索還要一直持續(xù),但是可以為兩者的進(jìn)一步實質(zhì)性結(jié)合提供借鑒價值。在數(shù)據(jù)存儲和共享上,IPFS能夠處理重復(fù)冗余的數(shù)據(jù)文件,把相同的文件合并,減少了數(shù)據(jù)復(fù)雜程度,節(jié)省了服務(wù)器的存儲資源。對上傳到IPFS的數(shù)據(jù)文件進(jìn)行加密和哈希函數(shù)處理后,都會生成唯一文件哈希密文值。哈希密文值唯一指定了數(shù)據(jù)文件,對數(shù)據(jù)信息進(jìn)行修改后就會重新獲得更新的不重復(fù)的哈希值。在獲取文件時,IPFS進(jìn)行用戶訪問權(quán)限控制,完成驗證后根據(jù)密文哈希值從分布式存儲節(jié)點中返回解密之后的內(nèi)容。2系統(tǒng)方案基于目前的零知識證明技術(shù)現(xiàn)狀,針對基于零知識證明的交易數(shù)據(jù)隱私保護(hù)的工作可以從零知識證明的區(qū)塊鏈隱私保護(hù)、加密后數(shù)據(jù)的鏈上鏈下一致協(xié)同兩方面展開。2.1方案模型本文基于零知識證明的交易數(shù)據(jù)隱私保護(hù)模型如圖1所示。方案設(shè)計包括區(qū)塊鏈、交易存證服務(wù)、零知識證明算法和同態(tài)加密算法創(chuàng)建隱私保護(hù)模型,以實現(xiàn)區(qū)塊鏈系統(tǒng)中的交易安全與隱私保護(hù)。圖1鏈上零知識驗證模型基于區(qū)塊鏈的隱私保護(hù)方案的設(shè)計包含5個對象:交易雙方、智能合約、區(qū)塊鏈網(wǎng)絡(luò)與密鑰管理方。交易雙方包括交易生產(chǎn)者和消費者。智能合約預(yù)先設(shè)置包含零知識證明驗證的觸發(fā)條件,在去中心化的前提下判斷零知識證明證據(jù)及承諾的有效性。參與共識的組織節(jié)點利用驗證密鑰(VerificationKey,VK)對交易雙方提出的交易內(nèi)容進(jìn)行零知識電路校驗,以確保區(qū)塊鏈上信息的完整性與一致性。密鑰管理方有一種絕對可信的機(jī)制,來產(chǎn)生證明密鑰(Proving

Key,PK)與VK進(jìn)行零知識證明。本文在經(jīng)典同態(tài)加密算法Paillier算法的基礎(chǔ)上,研究了能夠進(jìn)行零知識證明驗證并能夠?qū)τ脩綦[私交易數(shù)據(jù)進(jìn)行保護(hù)的方案算法并對其進(jìn)行數(shù)據(jù)協(xié)同方面的改進(jìn)。該算法能夠在不透露交易雙方所有交易細(xì)節(jié)的情形下,通過智能合約系統(tǒng)確認(rèn)雙方之間交易內(nèi)容的合法性,同時能夠獨立對用戶的隱私數(shù)據(jù)進(jìn)行加密處理。若驗證未通過,則用戶可能發(fā)起了惡意交易并向應(yīng)用端返回錯誤處理信息,否則將此次交易結(jié)果寫入?yún)^(qū)塊中。設(shè)計和構(gòu)建基于零知識證明的簡潔非交互式知識驗證系統(tǒng)需要進(jìn)行信息證明,例如范圍證明和相等性證明,并對此次產(chǎn)生的數(shù)據(jù)和承諾證明進(jìn)行加密操作。在完成交易數(shù)據(jù)初始化和證明生成之后,與鏈上部署的智能合約進(jìn)行交互。通過加密和零知識證明處理之后的數(shù)據(jù)校驗方法,可以在不向各節(jié)點提供交易細(xì)節(jié)的前提下,檢驗交易合規(guī)性。在共識驗證通過后,交易雙方的交易數(shù)據(jù)密文上鏈存儲到區(qū)塊中。在設(shè)計方案中,交易雙方在區(qū)塊鏈網(wǎng)絡(luò)中進(jìn)行P2P通信。為了不泄露交易隱私,交易雙方各自生成零知識證據(jù)和承諾,并對這些承諾和交易數(shù)據(jù)進(jìn)行加密;密鑰管理方為本次交易生成新的證明密鑰與驗證密鑰,證明方向智能合約提交證據(jù)以進(jìn)行驗證;最后,如果認(rèn)證成功,將本次交易上塊,否則予以撤銷。認(rèn)證者在不接觸交易數(shù)據(jù)的前提下進(jìn)行了本次交易的認(rèn)證,保障了交易雙方的信息安全。2.2方案描述2.2.1零知識證明過程本方案中交易雙方的交易過程在應(yīng)用層進(jìn)行,為了確保交易過程中的隱私不被泄露且支持智能合約端對密文的零知識證明驗證的合法性,應(yīng)用層除了為交易雙方進(jìn)行同態(tài)加密產(chǎn)生密文,還須產(chǎn)生零知識證明對應(yīng)的相等性證明和范圍證明證據(jù)。然后將上述信息和經(jīng)過加密后的成交數(shù)據(jù)發(fā)送到交易層的鏈碼端,鏈碼端負(fù)責(zé)對本次成交的有效性加以檢驗?;诮灰讛?shù)據(jù)的零知識證明框架主要分為以下5個步驟,如圖2所示。圖2零知識證明生成過程(1)問題轉(zhuǎn)換:由于非交互式零知識驗證不能直接應(yīng)用于計算,因此為了圍繞這個問題進(jìn)行證明,需要將要證明的問題的陳述轉(zhuǎn)化成零知識證明能夠理解的形式,即二次算術(shù)程序,可以解決所有基于算術(shù)電路的多項式復(fù)雜程度的非確定性(Non-deterministicPolynomial,NP)問題的證明和驗證。將表示計算式的電路問題轉(zhuǎn)換為一階約束系統(tǒng)(Rank-1Constraint

System,R1CS)(向量點積形式),以構(gòu)造完整的零知識證明交易框架。(2)生成多項式:將生成的R1CS向量表達(dá)式轉(zhuǎn)換為多項式二次算術(shù)程序(Quadratic

AssignmentProblem,QAP)問題以實現(xiàn)對上述電路問題的證明驗證,這一步驟主要完成待證明計算式驗證和多項式驗證之間的等價轉(zhuǎn)換。(3)引入約束:完成問題到多項式證明的轉(zhuǎn)換后,需要再引入包括橢圓曲線密碼體系下的系數(shù)知識假設(shè)等約束,限制證明者在證明生成過程中的參數(shù)使用,防止證明者使用不符合約束條件的多項式進(jìn)行惡意攻擊。(4)信任初始化:在進(jìn)行證明和認(rèn)證之前,需要設(shè)置和生成一些公共的參數(shù),例如通過密鑰管理方為交易生成公共參數(shù),為交易雙方提供證明密鑰和驗證密鑰。(5)使用PK生成承諾和證據(jù):區(qū)塊鏈驗證節(jié)點使用VK對證明者零知識承諾信息和零知識證據(jù)進(jìn)行驗證。2.2.2安全多方計算過程安全多方計算過程如下文所述。(1)參與方使用密鑰生成算法生成公私鑰對(2)參與方將輸入經(jīng)過同態(tài)加密處理后產(chǎn)生的密文發(fā)送給服務(wù)器。(3)云服務(wù)器接收到密文后,使用安全多方計算協(xié)議進(jìn)行處理,得到服務(wù)器在對安全多方計算流程中得到的結(jié)果進(jìn)行同態(tài)計算得到并將結(jié)果返回至對應(yīng)的參與者。2.2.3數(shù)據(jù)協(xié)同過程在鏈下通過零知識證明驗證和同態(tài)加密對數(shù)據(jù)實現(xiàn)了隱私保密,為保證通過零知識證明驗證和同態(tài)加密的數(shù)據(jù)保持鏈上和鏈下的協(xié)同安全,基于區(qū)塊鏈隱私保護(hù)的數(shù)據(jù)協(xié)同方法還采用了星際文件分布式數(shù)據(jù)存儲體系IPFS。方案模型結(jié)合了區(qū)塊鏈、IPFS、智能合約以及前面提到的零知識證明和同態(tài)加密Paillier算法,以達(dá)到保護(hù)數(shù)據(jù)隱私,實現(xiàn)數(shù)據(jù)在協(xié)同一致中的安全共享。利用鏈下的分布式數(shù)據(jù)體系的方法保存數(shù)據(jù)信息,將文件數(shù)據(jù)本身保存在IPFS中,而加密后的哈希值等元信息則成為IPFS的鍵值保存在區(qū)塊內(nèi)。通過這樣的方式實現(xiàn)了數(shù)據(jù)的協(xié)同一致。并按照交易邏輯使用智能合約系統(tǒng)進(jìn)行相關(guān)處理,以得出數(shù)據(jù)處理結(jié)果,在數(shù)據(jù)存儲的過程中實現(xiàn)鏈上數(shù)據(jù)與鏈下存儲的協(xié)同一致,避免數(shù)據(jù)隱私泄露。3方案實現(xiàn)3.1算法設(shè)計本節(jié)對李龔亮等人

提出的支持零知識證明的同態(tài)加密(HomomorphicEncryptionBasedon

PaillierandZero-KnowledgeProof,HEPZP)算法進(jìn)行描述及實現(xiàn),并從密文性驗證和數(shù)據(jù)協(xié)同方面對其設(shè)計進(jìn)行改進(jìn),以更好地應(yīng)用于區(qū)塊鏈上的交易數(shù)據(jù)服務(wù)。算法公式中涉及的參數(shù)如表1所示。表1方案相關(guān)參數(shù)3.1.1系統(tǒng)參數(shù)生成區(qū)塊鏈系統(tǒng)中擁有一份獨立的系統(tǒng)參數(shù),且該參數(shù)在區(qū)塊鏈系統(tǒng)初始化存儲在賬本后便不可篡改,在整個系統(tǒng)的生命周期中保持不變。系統(tǒng)參數(shù)在交易過程中為交易雙方提供公私鑰生成、交易密文生成以及零知識證據(jù)產(chǎn)生等功能。選取兩個較大的素數(shù)p和q,計算兩者的乘積n和的最小公倍數(shù)λ,定義式在中選擇階很大的元素以滿足的最大公倍數(shù)為1,即互素。計算系統(tǒng)參數(shù)指定隨機(jī)數(shù),并計算用戶公鑰參數(shù)滿足互素。將作為系統(tǒng)參數(shù),記為P。3.1.2公私鑰生成每個參與交易的用戶需要持有一對由系統(tǒng)生成的公私鑰。其中,公鑰作為用戶的唯一標(biāo)識,可當(dāng)作每一個用戶的交易地址,而私鑰由用戶自己保存,并需要確保私鑰的隱私安全性。選擇隨機(jī)數(shù)利用系統(tǒng)參數(shù)P中的計算出公開密鑰并對取模。將v記作私有密鑰,生成用戶公私鑰分別記為和3.1.3加密過程當(dāng)交易雙方都需要完成交易過程時,應(yīng)用層要求對交易中的有關(guān)數(shù)據(jù)和交易信息進(jìn)行加密,然后再發(fā)送到鏈碼端。加密過程如下文所述。對于明文選取兩個隨機(jī)數(shù)使用系統(tǒng)參數(shù)P中的以及公鑰k,可得:獲得4份密文其中E與零知識證明證據(jù)的生產(chǎn)有關(guān),其加密函數(shù)也記為3.1.4解密過程對密文c來說,需要對明文數(shù)據(jù)m和用來為鏈碼端創(chuàng)建相等性證據(jù)的進(jìn)行解密。解密m:使用系統(tǒng)參數(shù)P中的和私鑰v,以及密文中的先從密文中提取明文數(shù)據(jù)對應(yīng)的加密結(jié)果再計算得到原始明文:解密使用系統(tǒng)參數(shù)P中的和私鑰v,以及密文中的從密文中提取出隨機(jī)數(shù)對應(yīng)的加密數(shù)據(jù)并計算得到原始數(shù)據(jù):解密函數(shù)分別記為和3.2零知識證明驗證3.2.1相等性證明(1)應(yīng)用端使用交易雙方選取的隨機(jī)數(shù)以及產(chǎn)生的交易金額密文(2)根據(jù)密文為交易雙方生成承諾E和F:式中:a為參數(shù);b為余額;t為交易的金額。(3)根據(jù)承諾E和F產(chǎn)生相等性證據(jù)。(4)智能合約通過承諾和相等性證據(jù),以及雙方的公鑰和系統(tǒng)參數(shù)完成相等性證明過程。3.2.2范圍證明交易金額大于0證明如下:(1)應(yīng)用端使用交易雙方選取的隨機(jī)數(shù)以及產(chǎn)生的交易金額密文(2)根據(jù)上述步驟(1)中隨機(jī)數(shù)密文產(chǎn)生承諾E,如式(9)所示。在范圍證明中,參數(shù)a的絕對值需要大于或等于1。(3)承諾產(chǎn)生范圍證據(jù)。(4)智能合約端通過承諾與范圍證據(jù),以及消費者的公鑰和系統(tǒng)參數(shù)完成校驗。交易余額大于0證明如下:(1)應(yīng)用端使用交易雙方選取的隨機(jī)數(shù)以及產(chǎn)生的交易金額密文消費者的輸入金額密文(2)解密出輸入金額密文的明文以及產(chǎn)生輸入金額密文

時的隨機(jī)數(shù)計算剩余金額計算加密剩余金額的隨機(jī)數(shù)(3)利用同態(tài)加密加法同態(tài)的性質(zhì)獲得交易余額的加密密文(4)根據(jù)上述步驟(1)中隨機(jī)數(shù)密文產(chǎn)生承諾E,如式(9)所示。(5)智能合約端通過承諾與范圍證據(jù),以消費者的公鑰和系統(tǒng)參數(shù)完成校驗。3.2.3密文正確性證明驗證過程的實現(xiàn),需要在鏈上部署證明方的鏈碼,證明方將經(jīng)過智能合約驗證后的證據(jù)承諾與鏈碼本身交由區(qū)塊鏈網(wǎng)絡(luò)節(jié)點驗證,并根據(jù)數(shù)字簽名或數(shù)字證書進(jìn)行身份驗證,完成交易的零知識驗證。區(qū)塊鏈網(wǎng)絡(luò)共識的其他節(jié)點也可通過鏈碼進(jìn)行參與。需要驗證在同態(tài)加密Paillier下密文的正確性。給定密文c和證明密鑰PK,證明者需要證明其知道明文m和隨機(jī)數(shù)使得密文證明者隨機(jī)選擇并計算驗證者生成挑戰(zhàn)變量e,令證明者計算出明文和隨機(jī)數(shù)對應(yīng)的證據(jù)為其中并發(fā)送給驗證方。驗證者計算如果等同于則驗證成功。對于交易雙方給出的承諾和證明,區(qū)塊鏈的各節(jié)點加以驗證。只有當(dāng)每個產(chǎn)生的證明都經(jīng)過智能合約驗證后,本次交易才驗證通過。當(dāng)該交易通過區(qū)塊鏈運行的共識方案后,即可寫入到區(qū)塊中。3.3數(shù)據(jù)上鏈交易方案設(shè)計交易方案的過程主要包括應(yīng)用層和鏈碼端兩部分,假設(shè)消費者向生產(chǎn)者發(fā)起交易,則應(yīng)用層步驟如下:(1)得到消費者的公鑰和私鑰,作為被轉(zhuǎn)賬方的生產(chǎn)者僅需提供公鑰而非私鑰和系統(tǒng)參數(shù)P,通過兩者的公鑰對交易輸入進(jìn)行加密,產(chǎn)生交易輸入密文。(2)產(chǎn)生的交易數(shù)據(jù)僅能夠通過交易參與者的私鑰才能解密查看,因此通過消費者的私鑰和系統(tǒng)參數(shù)對所有交易輸入信息進(jìn)行解密,并計算交易余額。(3)基于方案的零知識證明算法來生成可信任不被泄露的零知識交易證據(jù),同時對交易輸入輸出金額密文上的承諾形成范圍驗證和相等性證明。(4)發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)其他節(jié)點的交易數(shù)據(jù)需要由參與雙方進(jìn)行數(shù)字簽名,并將密文和零知識證據(jù)相關(guān)承諾發(fā)送到鏈碼端,請求本次交易校驗。3.4數(shù)據(jù)協(xié)同設(shè)計在此過程中,必須要在鏈下對數(shù)據(jù)進(jìn)行零知識證明的證據(jù)產(chǎn)生和同態(tài)加密之后,再對數(shù)據(jù)進(jìn)行上鏈操作,方案中使用的加密算法是零知識證明應(yīng)用于同態(tài)加密Paillier算法得到的,數(shù)據(jù)上載存儲則是在區(qū)塊鏈運行的智能協(xié)議中,添加將加密后的哈希數(shù)據(jù)保存在IPFS的流程,部署智能合約并同步到區(qū)塊鏈網(wǎng)絡(luò)。根據(jù)算法對文件中記錄字段進(jìn)行加密,得到密文計算結(jié)果式中:為記錄字段的第h條記錄;為算法的證明密鑰;為對記錄字段加密過程中產(chǎn)生的隨機(jī)數(shù)。為用戶X生成密鑰。該設(shè)計中采用上文提到的公私鑰生成算法生成非對稱密鑰。非對稱密鑰中的公鑰用于對信息加密,私鑰用于對信息解密。將信息Y的內(nèi)容寫入IPFS中,Y中包含區(qū)塊字段的所需信息,生成對應(yīng)的區(qū)塊字段。用于驗證角色的權(quán)限,查看當(dāng)前用戶是否可以讀取監(jiān)控信息。計算文件數(shù)據(jù)哈希值,將信息F進(jìn)行哈希函數(shù)計算后得到一串哈希值。設(shè)計的模型中,生產(chǎn)者在上傳數(shù)據(jù)時可以根據(jù)合約內(nèi)容對文件數(shù)據(jù)進(jìn)行加密,并由鏈碼端將數(shù)據(jù)密文存儲到分布式文件系統(tǒng)中,并向生產(chǎn)者用戶返回相應(yīng)哈希值。同時合約也會將產(chǎn)生的哈希值信息等同于交易上鏈。此后,消費者根據(jù)哈希值在IPFS系統(tǒng)中進(jìn)行交易數(shù)據(jù)的查詢。4安全性分析(1)隱私性:數(shù)據(jù)加密是保證隱私數(shù)據(jù)安全性的基本要求。方案采用了將同態(tài)加密Paillier算法和零知識證明相結(jié)合的方式對數(shù)據(jù)進(jìn)行加密后的儲存。在各區(qū)塊鏈節(jié)點的智能合約終端查看到的所有交易數(shù)據(jù)全部處于密文狀態(tài)。利用鏈下算法處理應(yīng)用數(shù)據(jù)在鏈上公開的隱私泄露問題,維護(hù)交易數(shù)據(jù)的隱私性。(2)真實性:數(shù)據(jù)內(nèi)容在區(qū)塊鏈儲存流程中與生產(chǎn)者進(jìn)行綁定,將數(shù)據(jù)文件存放到IPFS中,而相應(yīng)的數(shù)據(jù)內(nèi)容哈希值在經(jīng)過對生產(chǎn)者的私鑰密碼進(jìn)行簽名后,進(jìn)行區(qū)塊鏈上持久化且不可篡改的儲存,以保證數(shù)據(jù)內(nèi)容哈希值與生產(chǎn)者之間的一一對應(yīng),因為數(shù)據(jù)內(nèi)容修改會導(dǎo)致相應(yīng)的數(shù)據(jù)內(nèi)容哈希值發(fā)生變化,所以在數(shù)據(jù)發(fā)生變化時可以根據(jù)哈希值判斷是否發(fā)生了攻擊篡改。(3)防抵賴性:將參加交易過程的每個用戶產(chǎn)生的交易信息都同等存儲在鏈上,同時基于區(qū)塊鏈可溯源和不可篡改的特點,對數(shù)據(jù)共享流程進(jìn)行跟蹤溯源,實現(xiàn)了防抵賴性功能。(4)零知識性:零知識性是指在證明者Prover與驗證者Verifier的交互過程中只通信正確的知識,不會泄露額外的信息。系統(tǒng)參數(shù)為公開值,證明者Prover向驗證者Verifier發(fā)送的簽名函數(shù)稱為正確的知識證據(jù),驗證者返回給證明者的隨機(jī)數(shù)c稱為驗證挑戰(zhàn),證明者接收到隨機(jī)數(shù)c后回復(fù)驗證者的知識證據(jù)稱為應(yīng)答。在證明過程交易雙方的交互中,沒有向其他用戶和節(jié)點泄露交易的細(xì)節(jié),因此具備零知識性。5實驗分析為了驗證論文提出的基于同態(tài)加密和零知識證明的同態(tài)加密算法的性能,本章采用聯(lián)盟鏈中的Fabric項目對該算法進(jìn)行實現(xiàn)。在完成對基于Fabric2.2版本的聯(lián)盟鏈系統(tǒng)的環(huán)境搭建后,本章對算法的實現(xiàn)效果進(jìn)行了測試,以驗證算法的可行性和測試該算法的實現(xiàn)效率。本文的仿真實現(xiàn)實驗在虛擬機(jī)中進(jìn)行,采用的虛擬機(jī)是VMware,機(jī)器配置處理器內(nèi)核4個,內(nèi)存6GB。在虛擬機(jī)中采用Ubuntu16.04操作系統(tǒng),所需的環(huán)境配置包括docker20.1.7和docker-compose1.29.2等服務(wù)。本文零知識證明隱私保護(hù)方案中涉及的智能合約采用語言進(jìn)行編寫。5.1功能性測試功能性測試主要包括數(shù)據(jù)加密成功測試、零知識驗證測試和數(shù)據(jù)真實性測試3個部分。測試過程中鏈碼實例化為用戶A在賬本中存儲密文50的金額,然后向另一用戶B發(fā)起轉(zhuǎn)賬10的交易。在正確的交易過程中,為用戶A生成一個密文金額為40的余額,為用戶B生成一個密文金額為10的轉(zhuǎn)賬金額。將生成的密文信息與零知識證明證據(jù)發(fā)送至鏈碼端驗證,通過在節(jié)點中查看容器日志可以發(fā)現(xiàn)鏈碼端出現(xiàn)的交易信息均為密文狀態(tài),同時也通過了各種零知識證明的驗證,并向應(yīng)用端返回交易成功的信息。通過使用用戶私鑰修改鏈下IPFS系統(tǒng)存儲的信息模擬惡意用戶篡改攻擊。經(jīng)過鏈下鏈上的協(xié)同驗證,發(fā)現(xiàn)此時鏈下信息計算生產(chǎn)的哈希值發(fā)生了改變且與鏈上存儲的哈希值不相同,以此來確定該數(shù)據(jù)被攻擊篡改,保障了數(shù)據(jù)的真實性。在功能性測試中,當(dāng)應(yīng)用端正確計算交易結(jié)果時,鏈碼端還可在交易數(shù)據(jù)是密文的情況下對交易結(jié)果進(jìn)行檢驗,并能夠驗證通過,將交易結(jié)果密文保存在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論