徐鶴語,馬兆豐,葉可可,段鵬飛,羅守山
(1.北京郵電大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,北京 100876;2.中移動信息技術(shù)有限公司 研發(fā)創(chuàng)新中心,北京 102200)
隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,區(qū)塊鏈能夠提供的服務(wù)也越來越豐富。區(qū)塊鏈具有去中心化、防篡改等特點(diǎn),這使其成為一種信任體系構(gòu)造技術(shù),有利于破除傳統(tǒng)互聯(lián)網(wǎng)架構(gòu)下的數(shù)據(jù)孤島問題,也有利于優(yōu)化金融供應(yīng)生產(chǎn)關(guān)系。然而,隨著區(qū)塊鏈技術(shù)的不斷成熟,以及與醫(yī)療、金融、數(shù)字版權(quán)等領(lǐng)域的融合,領(lǐng)域交叉應(yīng)用對區(qū)塊鏈跨鏈和跨鏈身份隱私保護(hù)的需求日益增長[1-7]。
白杰等人[8]指出,由于區(qū)塊鏈之間缺少統(tǒng)一的通信,大多數(shù)公司間無法互相協(xié)同。同時,跨鏈合約的執(zhí)行較為困難?,F(xiàn)實世界的資產(chǎn)流動尤其是數(shù)字版權(quán),需要多方參與,執(zhí)行擔(dān)保監(jiān)督等工作,而局限于一個鏈的合約無法完全完成這些工作。許永鑫、郭子彥等人[9-10]指出,區(qū)塊鏈在優(yōu)化供應(yīng)鏈金融中扮演了非常重要的角色。區(qū)塊鏈可以很好地解決供應(yīng)鏈金融中的憑證信任問題,但同時也存在信息共享困難的問題,不同鏈之間無法直接實現(xiàn)信息共享。
傳統(tǒng)聯(lián)盟鏈的身份管理系統(tǒng)大多基于公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)進(jìn)行證書頒發(fā)和身份認(rèn)證。但每條鏈獨(dú)立存在,沒有一個統(tǒng)一的身份管理系統(tǒng),無法進(jìn)行跨鏈的身份認(rèn)證,形成了身份管理的信息孤島[11]。身份缺失的同時也導(dǎo)致在進(jìn)行跨鏈信息交換時無法確認(rèn)信息是否可信。如何在跨鏈網(wǎng)絡(luò)中為不同的鏈提供統(tǒng)一的身份標(biāo)識以解決跨鏈交易中的認(rèn)證問題,以及如何保護(hù)應(yīng)用鏈在跨鏈交易網(wǎng)絡(luò)中的身份信息,是區(qū)塊鏈跨鏈應(yīng)用進(jìn)一步擴(kuò)大需要解決的問題。因此,本文提出了一種基于群簽名的可監(jiān)管的身份隱私保護(hù)跨鏈交易模型,其與中繼鏈跨鏈網(wǎng)絡(luò)相結(jié)合,在不改變應(yīng)用鏈架構(gòu)與中繼鏈架構(gòu)的基礎(chǔ)上實現(xiàn)對跨鏈交易信息的身份匿名化,為避免匿名的濫用,該模型支持管理員對匿名消息的去匿名化,實現(xiàn)了跨鏈交易的監(jiān)管。
區(qū)塊鏈作為一種新型互聯(lián)網(wǎng)技術(shù),具有高度去中心化、高信賴的特征,是一種數(shù)據(jù)網(wǎng)絡(luò)存儲技術(shù)。其是分布式網(wǎng)絡(luò)技術(shù)與加密技術(shù)相結(jié)合的技術(shù)產(chǎn)物。區(qū)塊鏈的概念源于中本聰[12]在2008年發(fā)表的論文,其提出了一種加密數(shù)字貨幣——比特幣,可以滿足無監(jiān)管的不可信雙方的交易需求。之后開發(fā)者引入了智能合約的概念,實現(xiàn)了區(qū)塊鏈的可編程特性。區(qū)塊鏈技術(shù)是一系列計算機(jī)和加密技術(shù)的結(jié)合,結(jié)合了密碼學(xué)、對等網(wǎng)絡(luò)通信、共識機(jī)制、智能合約編程等技術(shù)手段。從數(shù)據(jù)結(jié)構(gòu)來看,區(qū)塊鏈?zhǔn)且粭l按時間順序?qū)尚沤灰椎臄?shù)據(jù)區(qū)塊連接起來的鏈,由密碼學(xué)算法保證其不可篡改偽造,通過對等網(wǎng)絡(luò)和共識機(jī)制來生成和更新數(shù)據(jù)。
隨著應(yīng)用的增加,區(qū)塊鏈網(wǎng)絡(luò)根據(jù)是否具有控制訪問權(quán)限機(jī)制以及是否集中化擁有控制權(quán)主體,將區(qū)塊鏈系統(tǒng)分為公有鏈(如以太坊)、聯(lián)盟鏈(如Hyperledger、趣鏈)和私有鏈3種類型[13]。其中,公有鏈完全公開透明,無任何身份認(rèn)證授權(quán);聯(lián)盟鏈需要身份授權(quán)準(zhǔn)入機(jī)制,記錄維護(hù)由事先預(yù)備的節(jié)點(diǎn)負(fù)責(zé);私有鏈由單一的節(jié)點(diǎn)參與網(wǎng)絡(luò)維護(hù)。
跨鏈(Cross-Chain)是容許加密貨幣資產(chǎn)跨越不同的區(qū)塊鏈?zhǔn)褂煤捅4妗?珂溂夹g(shù)的關(guān)鍵在于執(zhí)行智能合約,設(shè)計共同的通信協(xié)議,完成共同的跨鏈接入接口,從而實現(xiàn)多個獨(dú)立運(yùn)行的區(qū)塊鏈之間的信息及資產(chǎn)的原子性轉(zhuǎn)移或互換。目前,跨鏈的架構(gòu)方案如下:公證人機(jī)制、側(cè)鏈/中繼、哈希鎖定和分布式私鑰控制。其中,公證人架構(gòu)中存在中心化的風(fēng)險,哈希時間鎖和分布式私鑰控制方式存在應(yīng)用的局限性,而側(cè)鏈增加了網(wǎng)絡(luò)的復(fù)雜度,也存在新的安全風(fēng)險[14]。相較之下,中繼鏈架構(gòu)下的操作應(yīng)用場景廣,且可拓展性強(qiáng),能適用于大部分跨鏈要求。
群簽名是數(shù)字簽名的一種,其目的在于允許成員代表群簽名消息,同時不泄露身份。換而言之,看到簽名的人可以用公鑰驗證該消息是否是合法群成員簽署的,但無法得知實名身份。同時,群成員無法濫用這種匿名機(jī)制,因為群簽名支持群管理員使用秘密信息來打開簽名,證實身份。
一個完善的群簽名方案需要滿足以下幾個要求:
(1)群特性。只有群中成員能夠代表群體簽名。
(2)驗證簡潔。接收者可以用公鑰完成簽名驗證。
(3)匿名保護(hù)。接收者不能得知簽名者在群體中的實名身份。
(4)可追蹤。群體中的成員或可信賴機(jī)構(gòu)可以根據(jù)秘密信息打開簽名。
知名的群簽名方案包括由Camenisch等人[15]于1997年提出的CS97群簽名方案。CS97以離散對數(shù)作為理論基礎(chǔ)。而本文采用的是Boneh等人[16]于2004年提出的BBS短群簽名方案。BBS短群簽名基于強(qiáng)DH假設(shè),即SDH(Strong Diffie-Hellman,SDH)和線性決策假設(shè)。
當(dāng)前基于聯(lián)盟鏈的身份信息管理研究主要集中在鏈內(nèi)的去中心化身份認(rèn)證和跨鏈的身份認(rèn)證管理方面。在提供匿名化身份認(rèn)證方面還有所欠缺。
1.4.1 身份管理研究現(xiàn)狀
Cachin[17]針對以fabric為代表的聯(lián)盟鏈架構(gòu),提出了一種新的聯(lián)盟鏈身份認(rèn)證機(jī)制以改進(jìn)聯(lián)盟鏈的交易背書。主要創(chuàng)新在于對注冊和交易分開授權(quán),實現(xiàn)了一定的匿名性,但同時大量的交易證書帶來了存儲和維護(hù)的瓶頸。Liang等人[18]提出一種組簽名與證書授權(quán)中心(Certificate Authority,CA)機(jī)構(gòu)相結(jié)合的滿足匿名的跨鏈身份認(rèn)證協(xié)議。主CA提供身份認(rèn)證證書,授權(quán)應(yīng)用鏈加入中繼鏈。在應(yīng)用鏈系統(tǒng)中,所有節(jié)點(diǎn)具有唯一身份標(biāo)識ECERT。應(yīng)用鏈中指定的組管理節(jié)點(diǎn)根據(jù)ECERT給要進(jìn)行跨鏈的節(jié)點(diǎn)頒發(fā)組成員證書GCERT。需要進(jìn)行跨鏈?zhǔn)聞?wù)的節(jié)點(diǎn)根據(jù)自己的ECERT向組管理節(jié)點(diǎn)申請TCERT,并用GCERT進(jìn)行簽名保證身份信息。該跨鏈交易協(xié)議雖然可以保證交易過程中的身份匿名,但多個證書的交互與管理使得系統(tǒng)面臨證書管理上的瓶頸。王灑灑等人[19]也針對異構(gòu)應(yīng)用鏈的跨鏈問題提出了一種跨鏈系統(tǒng)的身份標(biāo)識認(rèn)證模型。不過該模型解決的是同一個應(yīng)用鏈需加入多個跨鏈系統(tǒng)中的重復(fù)認(rèn)證問題,與本文關(guān)注的跨鏈中的身份隱私有所不同。
Axon等人[20]針對區(qū)塊鏈PKI架構(gòu)不關(guān)注隱私的問題,設(shè)計了一種滿足隱私感知的PKI架構(gòu),使得公鑰與身份不關(guān)聯(lián)。Conti等人[21]針對信息中心網(wǎng)絡(luò)(Information Centric Networking,ICN)中身份認(rèn)證負(fù)擔(dān)較大的問題,提出了一種輕量級的實現(xiàn)方式。利用區(qū)塊鏈構(gòu)造了一種高效輕量級分布移動生產(chǎn)者認(rèn)證協(xié)議,用于ICN中的安全移動管理,解決了移動網(wǎng)絡(luò)和BC中易受網(wǎng)絡(luò)攻擊的問題。Zhang等人[22]主要利用區(qū)塊鏈的安全特性,提出了一種完全分布式的用戶認(rèn)證框架,利用智能合約進(jìn)行訪問權(quán)限控制,智能合約保證了權(quán)限的授予。王姝爽等人[23]對應(yīng)用鏈接入跨鏈時的安全過程和跨鏈中的身份標(biāo)識做了相關(guān)研究,給出了一種輕量級的身份標(biāo)識方案,但同樣是基于證書與公私密鑰對,沒有關(guān)注跨鏈中的身份隱私問題。
1.4.2 跨鏈身份授權(quán)研究現(xiàn)狀
Wang等人[24]提出了一種去中心化身份(Decentralized Identifier,DID)與 可 信 證 書(Verifiable Credentials,VC)相結(jié)合的跨鏈可信資產(chǎn)轉(zhuǎn)移流程。其中,鏈內(nèi)用戶身份通過唯一DID進(jìn)行身份標(biāo)識,完整的身份信息存儲在中繼鏈上,包含多個公鑰,可以簡化同一個用戶參與多鏈的流程。但同時中繼鏈需要維護(hù)所有應(yīng)用鏈及其用戶的身份元信息和完整信息。隨著業(yè)務(wù)的增長,中繼鏈的存儲負(fù)擔(dān)過重。Shao等人[25]針對物聯(lián)網(wǎng)身份認(rèn)證和跨鏈通信,基于身份加密(Identity-Based Encryption,IBE)協(xié)議,設(shè)計了物聯(lián)網(wǎng)區(qū)塊鏈中的跨鏈通信機(jī)制。其通過在每個區(qū)塊鏈上設(shè)置代理節(jié)點(diǎn),代理節(jié)點(diǎn)需與鏈公證員通信獲得私鑰。區(qū)塊鏈上的每個節(jié)點(diǎn)可通過代理節(jié)點(diǎn)進(jìn)行跨鏈,代理節(jié)點(diǎn)之間可以直接跨鏈通信。該機(jī)制雖保證了跨鏈的身份認(rèn)證,但是公證員機(jī)制的跨鏈方案存在第三方是否可信以及性能瓶頸的問題。Jiang等人[26]利用聯(lián)盟鏈與公證人相結(jié)合的方式,把若干物聯(lián)網(wǎng)區(qū)塊鏈集合到一個財團(tuán)區(qū)塊鏈控制站中,所有跨車聯(lián)網(wǎng)子集的訪問必須經(jīng)由控制站成員審查。Wang等人[27]利用區(qū)塊鏈優(yōu)化應(yīng)用的跨域認(rèn)證。所有認(rèn)證通過根CA執(zhí)行,設(shè)計了一個跨域證書認(rèn)證協(xié)議。雖然實現(xiàn)了證書的分布式,但認(rèn)證過程依舊依賴于CA的可靠性和性能。
綜上,目前跨鏈的身份管理存在以下不足。
首先,跨鏈的身份管理大多需要中繼鏈進(jìn)行統(tǒng)一身份的存儲,如果涉及多鏈交互,還需要存儲多個密鑰對。其一定程度上統(tǒng)一了異構(gòu)鏈的身份標(biāo)識問題,但也存在中繼鏈負(fù)荷過大的瓶頸。其次,大多數(shù)跨鏈身份認(rèn)證策略未考慮在匿名跨鏈?zhǔn)聞?wù)中如何完成身份信任。并且能夠滿足匿名需求的認(rèn)證方案存在多個需要管理的證書,需要通過頻繁交互來完成證書頒發(fā)和身份認(rèn)證,其存儲開銷較大且流程不夠簡潔。
因此,本文提出一種基于群簽名的中繼鏈跨鏈身份信息保護(hù)方案。能夠?qū)崿F(xiàn)應(yīng)用鏈間的信息共享,同時保護(hù)身份信息,允許管理員進(jìn)行監(jiān)管,以解決區(qū)塊鏈間信息孤島的問題。
針對多應(yīng)用鏈用戶在跨鏈互操作間存在的信任傳遞、跨鏈訪問、身份隱私保護(hù)等問題,提出了一種面向跨鏈系統(tǒng)中的身份認(rèn)證方案,既能滿足跨鏈中的身份信任要求,又能滿足用戶對身份隱私保護(hù)的要求,實現(xiàn)可控的匿名認(rèn)證。首先介紹跨鏈系統(tǒng)的分層架構(gòu)模型,跨鏈采用不需要可信第三方的中繼模式進(jìn)行。跨鏈模型分層架構(gòu)中的角色符號與表示如表1所示。
表1 分層架構(gòu)角色表示
由中繼鏈R系統(tǒng)負(fù)責(zé)身份注冊、身份認(rèn)證、身份維護(hù)管理以及跨鏈交易的驗證和轉(zhuǎn)發(fā)等。在中繼架構(gòu)模型中,中繼模塊提供身份注冊合約、身份認(rèn)證合約,以及交易所需的認(rèn)證合約。根據(jù)跨鏈傳輸協(xié)議(Inter Blockchain Transfer Protocol,IBTP)包解析出鏈類型和交易證明等信息,交易的驗證,存證交易。確保交易的合法性,保障交易安全。
應(yīng)用鏈A,B間的跨鏈交易通過與跨鏈網(wǎng)關(guān)交互,執(zhí)行對應(yīng)的跨鏈合約,完成跨鏈交易。應(yīng)用鏈?zhǔn)切枰ㄟ^跨鏈架構(gòu)連接的區(qū)塊鏈主體,通過完成中繼鏈上的身份注冊和認(rèn)證,可以加入跨鏈網(wǎng)絡(luò)中,擁有在跨鏈網(wǎng)絡(luò)中的唯一身份標(biāo)識,與跨鏈網(wǎng)絡(luò)中其他應(yīng)用鏈進(jìn)行跨鏈交互。
跨鏈合約是部署在應(yīng)用鏈上的智能合約,負(fù)責(zé)跨鏈?zhǔn)录膱?zhí)行。為了方便管理,跨鏈合約分為broker和其他業(yè)務(wù)合約。業(yè)務(wù)合約在broker上注冊后方可生效。
Pier跨鏈網(wǎng)關(guān)負(fù)責(zé)完成跨鏈中的監(jiān)聽、路由、代理轉(zhuǎn)發(fā)等工作,同時把跨鏈?zhǔn)聞?wù)轉(zhuǎn)換成IBTP通信協(xié)議的格式,并提交到中繼鏈上。Pier中的分層與功能對應(yīng)關(guān)系如表2所示。
表2 Pier分層架構(gòu)
為了保證跨鏈?zhǔn)聞?wù)的安全性和隱私性,每一個進(jìn)行交互的應(yīng)用鏈需要擁有在跨鏈聯(lián)盟鏈中的唯一身份標(biāo)識,身份標(biāo)識可以通過執(zhí)行身份注冊合約獲得。DID身份標(biāo)識架構(gòu)如圖1所示。
圖1 DID身份標(biāo)識架構(gòu)
注冊接口由應(yīng)用鏈插件開發(fā)實現(xiàn)。數(shù)字身份滿足Web3的DID標(biāo)準(zhǔn)。DID作為一種新型的可驗證、分布式的數(shù)字身份標(biāo)識,相比于證書具有更強(qiáng)的身份隱私保護(hù)[28-29],可以由用戶控制其身份屬性的披露。據(jù)Web3標(biāo)準(zhǔn)指出,DID標(biāo)準(zhǔn)由DID和DID文檔組成。DID是一個簡單的文本字符串,包含方案標(biāo)識符、DID方法標(biāo)識符和DID方法的特定標(biāo)識符結(jié)構(gòu)。DID實例可以解釋為一個DID文檔,DID文檔包含與DID相關(guān)的信息,例如以加密的方式對DID控制器進(jìn)行身份驗證的方法。
跨鏈的身份標(biāo)識通常采用DID身份標(biāo)識, 應(yīng)用鏈的身份標(biāo)識結(jié)構(gòu)如下:id:{did identification: relay chain identifier:application chain name:},例如did:relaychain:chain_test:為一個鏈的DID標(biāo)識。用戶DID的身份標(biāo)識結(jié)構(gòu)如下:id:{did ID:relaychain ID:userchain ID:ueserchain address:},例如{did:relaychain:chain_test:0x111111111:}為一個用戶的DID標(biāo)識。應(yīng)用鏈的身份注冊流程如圖2所示。
圖2 應(yīng)用鏈的身份注冊流程
應(yīng)用鏈的公私鑰對和交易地址等信息由注冊合約執(zhí)行結(jié)果返回。注冊提案經(jīng)中繼鏈管理節(jié)點(diǎn)投票通過后生效。應(yīng)用鏈及其應(yīng)用節(jié)點(diǎn)獲得唯一身份標(biāo)識,可以參與跨鏈?zhǔn)聞?wù)。
目前主流的聯(lián)盟鏈在跨鏈?zhǔn)聞?wù)的身份認(rèn)證中依舊采用基于數(shù)字證書的實名認(rèn)證方案,通過向交易方提供實名的數(shù)字證書來證實合法身份。這滿足了交易的安全性,但是沒法為需要匿名交易的用戶提供服務(wù)。為了符合跨鏈身份隱私保護(hù)的要求,需要提供一種可控匿名身份隱私保護(hù)模型,能夠做到驗證證書與實名身份的剝離,同時允許管理員監(jiān)管,保證匿名不被濫用。
在現(xiàn)有的中繼鏈跨鏈架構(gòu)上對該方案進(jìn)行改進(jìn)。由中繼鏈管理節(jié)點(diǎn)作為群管理員,聯(lián)盟鏈以唯一身份標(biāo)識作為加入群的憑證,以群簽名代替數(shù)字證書認(rèn)證身份的合法性,最終實現(xiàn)匿名的身份認(rèn)證。此方案包括群的創(chuàng)建、群成員加入、簽名消息、驗證消息和打開身份。方案各個部分的關(guān)系如圖3所示。
圖3 方案內(nèi)容
由中繼鏈管理員完成群的創(chuàng)建,生成群公鑰、群管理員私鑰和一系列的群成員私鑰,并向所有群成員公開群公鑰,保密群管理員私鑰以及成員私鑰。應(yīng)用鏈憑借在中繼鏈中的唯一身份標(biāo)識,可以向中繼鏈管理員請求一組群成員證書,并獲得群成員私鑰。應(yīng)用鏈在進(jìn)行匿名的跨鏈?zhǔn)聞?wù)時可以用群簽名代替數(shù)字證書簽名。同在群中的其他跨鏈成員可根據(jù)群公鑰完成對簽名的驗證,從而實現(xiàn)身份認(rèn)證。
該方案的主要步驟如下文所述。
(1)群的創(chuàng)建。由中繼鏈管理節(jié)點(diǎn)執(zhí)行,首先考慮滿足雙線性映射的兩個群G1和G2,其各自的生成元為g1和g2,且SDH假設(shè)成立于(G1,G2),決策線性假設(shè)成立于G1。
Step1 選擇一個隨機(jī)數(shù)n作為群成員數(shù)量。
Step4 群 公 鑰gpk=(g1,g2,h,u,v,w), 群 管 理 員 私 鑰gmsk= (ξ1,ξ2),群 成 員 私 鑰gsk= (A,x)。
(2)簽名。由應(yīng)用鏈完成消息簽名,作為對消息的背書,證明消息來源的可信。
Step1 給出(gpk,gsk,M),其中M為待簽名消息。
Step3 計算兩個輔助值?1=xα和?2=xβ。
Step4 從Zp中隨機(jī)選擇5個隨機(jī)數(shù)rα,rβ,rx,r?1,r?2。
Step5 計算5個中間值R1,R2,R3,R4,R5:
生成挑戰(zhàn)c:hash(M,T1,T2,T3,R1,R2,R3,R4,R5)。
Step6 計算響應(yīng)sα,sβ,sx,s?1,s?2:
式中:c為生成的hash挑戰(zhàn);x為簽名成員私鑰。其余為上述步驟選擇的隨機(jī)數(shù)和計算的輔助值。
給出簽名σ← (T1,T2,T3,c,sα,sβ,sx,s?1,s?2)。
(3)驗證。所有參與到中繼鏈群中的應(yīng)用鏈都可充當(dāng)驗證者,驗證該條消息是否來自合法的群成員。
Step2 其中
式中:g1,g2,h,u,v,w由公開的群公鑰gpk=(g1,g2,h,u,v,w)得出。其余計算參數(shù)由收到的簽名σ給出。
(4)打開。中繼鏈管理節(jié)點(diǎn)可使用其擁有的私鑰打開對消息的簽名,查看實名身份,監(jiān)督匿名的使用。
Step1 首先判斷σ是否為合法簽名。
跨鏈交易的執(zhí)行一般由跨鏈合約進(jìn)行維護(hù)。由跨鏈協(xié)議規(guī)范跨鏈請求需要包含的字段,為保證認(rèn)證的靈活性,跨鏈協(xié)議包含一段proof證明字段,該字段提供中繼鏈驗證所需的信息。中繼鏈會根據(jù)事先部署的驗證策略對交易合法性進(jìn)行驗證。傳統(tǒng)的驗證策略如fabric聯(lián)盟鏈采用背書策略,簽名基于實名數(shù)字證書。當(dāng)驗證方進(jìn)行驗證時必須知道簽名者的數(shù)字證書和公鑰,否則無法滿足匿名認(rèn)證要求。
本節(jié)結(jié)合3.1節(jié)提出的可控匿名認(rèn)證方案,對聯(lián)盟鏈交易的背書策略進(jìn)行改進(jìn),實現(xiàn)中繼鏈對跨鏈交易的認(rèn)證。首先,應(yīng)用鏈憑借注冊獲得的唯一身份標(biāo)識申請加入群,中繼鏈核驗應(yīng)用鏈身份后為其分配群成員私鑰,應(yīng)用鏈中所有可以充當(dāng)背書節(jié)點(diǎn)的用戶都知曉群成員私鑰信息。其次,在收到交易提案后,用群私鑰對交易執(zhí)行結(jié)果進(jìn)行簽名,完成背書。背書策略的模型與跨鏈交易流程如圖4所示。
圖4 可控匿名跨鏈交易背書模型
(1)應(yīng)用鏈加入群。已在中繼鏈中注冊過的應(yīng)用鏈需要從中繼鏈群管理員生成的成員私鑰組中選擇一組私鑰,作為簽名密鑰。
Step1 應(yīng)用鏈A請求加入群。
Step2 中繼鏈驗證是否是已注冊的應(yīng)用鏈。
Step3 通過驗證,中繼鏈從(0,n? 1)中隨機(jī)選擇一個數(shù)i。
Step4 私鑰組gsk(i)為此應(yīng)用鏈的群成員私鑰。
Step5 以A的公鑰加密gsk(i)結(jié)果。
(2)基于群簽名的背書。獲得簽名私鑰的應(yīng)用鏈成員,可以對交易進(jìn)行群簽名并完成背書。此背書具有匿名性,保護(hù)用戶身份隱私。
Step1 應(yīng)用節(jié)點(diǎn)進(jìn)行交易提案,觸發(fā)執(zhí)行交易對應(yīng)的鏈碼,提交給背書節(jié)點(diǎn)。
Step2 檢查簽名提案的消息格式和簽名是否正確,包括通道頭、簽名頭等。
Step3 檢查交易的ID是否唯一,檢查是否有權(quán)限,查找需要滿足的驗證策略。
Step4 模擬執(zhí)行提交的交易鏈碼,記錄結(jié)果。
Step5 對提案響應(yīng)執(zhí)行群簽名,構(gòu)造響應(yīng)消息返回背書結(jié)果。
Step6 應(yīng)用節(jié)點(diǎn)收集到足夠的背書后,經(jīng)由跨鏈網(wǎng)關(guān)打包消息發(fā)至中繼鏈。
Step7 中繼鏈執(zhí)行驗證策略,驗證背書簽名,無誤后交易信息上鏈。
在該背書策略下,所有加入中繼鏈的節(jié)點(diǎn)都可以看到交易信息,以及對交易信息的可信背書,無法得知信息提供者的身份。既實現(xiàn)了信息的共享,也實現(xiàn)了對身份的保護(hù)。
本節(jié)主要分析上述跨鏈交易可控匿名身份隱私保護(hù)模型在身份隱私保護(hù)方面的有效性。
由模型結(jié)構(gòu)可知,身份隱私的保護(hù)依賴于群簽名方案。在進(jìn)行跨鏈信息交換時,上鏈對交換信息的群簽名而非信息本身,既能證明鏈上信息的真實合法,又能不泄露信息提供者的身份。即只要群簽名方案是安全的,此可控匿名身份隱私保護(hù)模型就是有效的。由第3節(jié)可知,群簽名方案的主要環(huán)節(jié)為對私鑰和成員證書的知識簽名。下面證明知識簽名的安全性。
簽名驗證的正確性要求一個不合法的簽名不可能使等式成立。對于誠實的簽名而言, 驗證者進(jìn)行的等式運(yùn)算必然成立。若證明由驗證步驟計算的與簽名 者結(jié)算的中間變量R1,R2,R3,R4,R5是 相等的,則驗證者計算的就和簽名者計算的挑戰(zhàn)是相等的,即驗證等式是正確的。
證明驗證算法中5個驗證等式的成立。
證明:
式中:計算所需參數(shù)由簽名σ←(T1,T2,T3,c,sα,sβ,與公開的群公鑰gpk=(g1,g2,h,u,v,w)給出。
Step3
式中:計算所需參數(shù)由簽名σ←(T1,T2,T3,c,sα,sβ,s與公開的群公鑰gpk=(g1,g2,h,u,v,w)給出。
Step5
式中:計算所需參數(shù)由簽名σ←(T1,T2,T3,c,sα,sβ,與公開的群公鑰gpk= (g1,g2,h,u,v,w)給出。
Step6 由Step5可知:
式中:計算所需參數(shù)由簽名σ←(T1,T2,T3,c,sα,sβ,s與公開的群公鑰gpk=(g1,g2,h,u,v,w)給出。
綜上,只要簽名者是誠實的簽名者,其將嚴(yán) 格按照簽名生成算法進(jìn)行運(yùn)算,驗證者的驗證等式成立。
正確的群簽名需要保證打開的正確性,即合 法的簽名一定能通過管理員私鑰恢復(fù)得到群成員的私鑰組,從而獲得群成員身份查詢響應(yīng)。
證明:誠實簽名者給出簽名σ←(T1,T2,T3,c,sα,sβ,sx,s?1,s?2) 的 前3個 分 量 值T1,T2,T3, 是成員私鑰gsk= (A,x)中的A在群公鑰gpk=(g1,g2,h,u,v,w)中(u,v,h)下的線性加密。根據(jù)群初始化算法,存在成立,所以群管理員一定可以通過私鑰,經(jīng)由恢復(fù)身份。
在不知道群管理員私鑰的情況下,要恢復(fù)出用戶成員私鑰組是不可能的。
概念1:SDH假設(shè)
如果在群 (G1,G2)上沒有一個t時間的算法,在求解q-SDH問題時有ε優(yōu)勢,則認(rèn)為(q,t,ε)?SDH假設(shè)成立,Shoup[30]證明了此假設(shè)在一般群組中成立。
概念2:決策線性假設(shè)
如果在G1上沒有一個t時間的算法,在解決G1的決策線性問題時有ε優(yōu)勢,則認(rèn)為在G1上,(t,ε)決策線性假設(shè)成立。BBS[16]證明了決策線性假設(shè)在一般雙線性群中成立。
證明:由簽名算法得知,生成簽名的兩個群應(yīng)滿足SDH假設(shè)和決策線性假設(shè),找不出在固定時間內(nèi)有優(yōu)勢的破解算法。根據(jù)BBS[16]證明可知,如果線性加密在群G1上是(t”,ε”)語義安全的,那么SDH群簽名(t,qH,ε)是符合CPA完全匿名的。其中ε”=ε,且t=t”?qHo(1),qH為對手進(jìn)行哈希函數(shù)查詢的數(shù)量。
本節(jié)主要從群成員私鑰安全管理和安全分發(fā)兩個維度對模型進(jìn)行安全性分析。證明此模型具有不可偽造性和可監(jiān)督性。
首先,群成員私鑰的管理和產(chǎn)生是安全的。由3.1節(jié)介紹的方案可知,群成員私鑰由管理員在計算群公鑰時一并計算給出,形成群成員私鑰池。群管理員由跨鏈分層架構(gòu)中的中繼聯(lián)盟鏈管理員擔(dān)任。管理員不參與一般跨鏈?zhǔn)聞?wù),屬于中繼鏈治理模塊中的節(jié)點(diǎn)。一般的應(yīng)用鏈節(jié)點(diǎn)無法從管理員處獲得不屬于自己的信息,即無法偽造群簽名。
其次,群私鑰的分發(fā)也是安全的。群私鑰由應(yīng)用鏈節(jié)點(diǎn)向中繼鏈發(fā)起加入群的提案,通過身份審查后由中繼管理員分發(fā)私鑰。由3.2節(jié)介紹的策略可知,中繼鏈在傳輸群私鑰時使用應(yīng)用鏈身份標(biāo)識對應(yīng)的公鑰進(jìn)行加密傳輸,保證了群私鑰分發(fā)的安全性。
最后,該模型的可監(jiān)督性由群簽名打開算法的正確性進(jìn)行保證,由4.1節(jié)可知,擁有秘密信息的管理員可以打開誠實的簽名。
本文實驗均在虛擬機(jī)環(huán)境中執(zhí)行,采用的虛擬機(jī)是VMware Workstation Pro 15。虛擬機(jī)的環(huán)境配置為Ubuntu20.04操作系統(tǒng)。采用Hyperledger Fabric1.4作為應(yīng)用聯(lián)盟鏈的底層框架,跨鏈?zhǔn)褂胋itxhub v1.6.2系統(tǒng)提供的跨鏈網(wǎng)關(guān)和中繼鏈進(jìn)行,并安裝go1.16.2、Docker20.10.12等配套環(huán)境。簽名算法開發(fā)采用go語言并配合PBC密碼庫進(jìn)行實現(xiàn)。實驗的性能測試包括:背書簽名在不同消息大小下,簽名和驗證的時間效率以及采用了本文的背書策略后鏈上驗證的耗時。
由表3可以看出,群簽名算法的時間開銷隨文件大小的增長變化穩(wěn)定。雖然簽名需要產(chǎn)生的輔助變量和計算的等式較多,但大部分可以在收到消息前做預(yù)計算,從而節(jié)省時間效率。
表3 簽名時間開銷
由表4可以看出,驗證簽名時的時間開銷隨文件大小的增長變化穩(wěn)定。由驗證算法可知,驗證中進(jìn)行的計算比較都已由收到的簽名給出,不需要從基本參數(shù)開始計算,為驗證提高了時間效率。
表4 驗證時間開銷
在測試鏈上驗證性能時,統(tǒng)一選擇1 024 Byte的消息進(jìn)行簽名,測試跨鏈節(jié)點(diǎn)個數(shù)對背書驗證時間的影響。
由表5可以看出,鏈上驗證的性能主要受發(fā)起驗證的應(yīng)用鏈與存儲簽名的中繼塊鏈之間的傳遞事務(wù)所影響,當(dāng)網(wǎng)絡(luò)環(huán)境良好時,傳輸通暢,鏈上開銷可能更小。因此,在單機(jī)環(huán)境下模擬測試的測試結(jié)果同時還受CPU性能影響。綜上,鏈上驗證的吞吐量與網(wǎng)絡(luò)環(huán)境、服務(wù)器性能都有較大關(guān)系。
表5 鏈上驗證開銷
綜上,群簽名在保護(hù)消息的匿名性和不可追蹤性方面能夠滿足對身份隱私敏感的應(yīng)用鏈的隱私要求。群簽名上鏈的跨鏈模型對以信息共享和需要信息認(rèn)證的跨鏈服務(wù)適應(yīng)良好。同時利用中繼鏈聯(lián)盟鏈的治理模式,由治理節(jié)點(diǎn)充當(dāng)群管理員,保證了群管理員私鑰安全性的同時,滿足了中繼鏈上應(yīng)用鏈的驗證需求。