国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

區(qū)塊鏈交易內(nèi)容隱私保護(hù)技術(shù)研究綜述*

2022-09-07 00:43張大偉
密碼學(xué)報 2022年4期
關(guān)鍵詞:加密區(qū)塊證明

姚 爽, 張大偉, 李 勇, 王 偉

1. 北京交通大學(xué) 計算機(jī)與信息技術(shù)學(xué)院, 北京 100044

2. 智能交通數(shù)據(jù)安全與隱私保護(hù)技術(shù)北京市重點(diǎn)實驗室, 北京 100044

3. 北京交通大學(xué) 電子信息工程學(xué)院, 北京 100044

1 引言

區(qū)塊鏈技術(shù)是一種去中心化、多方共識、公開透明的新型計算范式. 其去中心化的分布式數(shù)據(jù)處理、多方共識確認(rèn)和數(shù)據(jù)不可篡改的特性為解決數(shù)據(jù)安全和信息共享問題提供了新的解決方案. 同時, 隨著產(chǎn)業(yè)區(qū)塊鏈技術(shù)的普及和發(fā)展, 區(qū)塊鏈系統(tǒng)也從強(qiáng)調(diào)去中心化的開放式公有鏈發(fā)展到多中心化的聯(lián)盟鏈, 區(qū)塊鏈交易場景也從單一的去中心化密碼貨幣發(fā)展到面向行業(yè)應(yīng)用的多中心化數(shù)字資產(chǎn)交易系統(tǒng), 區(qū)塊鏈技術(shù)正成為目前的研究熱點(diǎn).

區(qū)塊鏈系統(tǒng)的交易模型同傳統(tǒng)中心化系統(tǒng)有很大的不同. 首先, 在交易內(nèi)容確認(rèn)方面, 中心化系統(tǒng)中所有交易過程的記錄和確認(rèn)都是由系統(tǒng)的中心機(jī)構(gòu)集中來完成的. 而在區(qū)塊鏈系統(tǒng)中, 客戶端首先將交易發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中, 由網(wǎng)絡(luò)中的特定節(jié)點(diǎn)來對交易進(jìn)行分布式共識確認(rèn); 其次, 在賬本數(shù)據(jù)存儲方面, 傳統(tǒng)交易系統(tǒng)采用由中心機(jī)構(gòu)集中安全存儲且賬本內(nèi)容不公開. 而區(qū)塊鏈交易系統(tǒng)則采用全網(wǎng)節(jié)點(diǎn)共同存儲賬本的方式, 賬本數(shù)據(jù)安全由共識機(jī)制、塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)共同確保, 賬本內(nèi)容公開透明. 由此可見, 區(qū)塊鏈系統(tǒng)在提供了靈活的分布式數(shù)據(jù)處理和交易共識確認(rèn)的同時, 也對交易數(shù)據(jù)的隱私保護(hù)提出了極大的挑戰(zhàn). 隨著產(chǎn)業(yè)區(qū)塊鏈應(yīng)用的普及和推廣, 對區(qū)塊鏈交易隱私保護(hù)的需求也在日益增強(qiáng). 首先, 在公開賬本中確保交易內(nèi)容隱私是在合作競爭環(huán)境下確保交易方合法利益的必然需求; 其次, 在面向行業(yè)應(yīng)用的數(shù)字資產(chǎn)交易系統(tǒng)中確保權(quán)威機(jī)構(gòu)能夠?qū)崿F(xiàn)對交易的有效審計和監(jiān)管也是規(guī)范市場行為、保護(hù)交易方合法權(quán)益的有效手段. 因此, 在交易數(shù)據(jù)公開存儲、全網(wǎng)共識的情況下確保交易內(nèi)容的隱私保護(hù)和可靠監(jiān)管是產(chǎn)業(yè)區(qū)塊鏈應(yīng)用發(fā)展面臨的主要問題之一, 對這一問題進(jìn)行深入研究也具有極其重要的意義.

區(qū)塊鏈系統(tǒng)中的交易由交易身份和交易內(nèi)容兩部分組成. 其中交易身份用于標(biāo)識數(shù)字資產(chǎn)的所有者,交易內(nèi)容用于表示數(shù)字資產(chǎn)本身的屬性. 區(qū)塊鏈交易內(nèi)容隱私是指對于區(qū)塊鏈系統(tǒng)中的某筆交易, 觀察者無法確認(rèn)交易的具體內(nèi)容, 如交易金額、交易類型等. 即對于觀察者而言, 或者無法訪問到交易內(nèi)容、或者無法獲得交易內(nèi)容的明文信息. 目前的文獻(xiàn)多將交易身份和交易內(nèi)容隱私保護(hù)同時討論, 但我們認(rèn)為在如下兩方面二者存在較大的不同: 首先, 二者的保護(hù)對象不同, 交易身份和交易內(nèi)容在基本屬性和操作方式上存在顯著差異. 區(qū)塊鏈系統(tǒng)中多采用公鑰作為用戶的身份標(biāo)識, 并由此作為用戶對數(shù)字資產(chǎn)UTXO 或賬戶的權(quán)屬標(biāo)記. 在交易過程中數(shù)字資產(chǎn)發(fā)生轉(zhuǎn)移時, 資產(chǎn)所屬用戶需使用對應(yīng)的私鑰對交易行為進(jìn)行簽名確認(rèn). 從交易安全的角度考慮, 交易身份的研究更關(guān)注于資產(chǎn)的權(quán)屬標(biāo)記和支付確權(quán)等. 交易內(nèi)容如交易金額多采用數(shù)字形式表示, 在交易過程中用于表示數(shù)字資產(chǎn)的轉(zhuǎn)移金額等信息. 從交易安全的角度考慮,交易內(nèi)容的研究更關(guān)注于支付金額范圍的合理性和交易金額的平衡性等; 其次, 二者在隱私保護(hù)過程中采取了完全不同的設(shè)計思路和技術(shù)手段. 交易身份的隱私保護(hù)更強(qiáng)調(diào)交易過程中的身份混淆, 即將真實交易者的身份混淆在匿名集合中以確保身份隱私, 但同時必須解決支付確權(quán)和防雙花問題以確保交易安全. 鑒于不同的混淆方案, 可基于匿名群組消息協(xié)議、環(huán)簽名和零知識證明等分別實現(xiàn)協(xié)同、自主和全局身份混淆以保護(hù)隱私[1]; 而交易內(nèi)容的隱私保護(hù)更強(qiáng)調(diào)交易信息的機(jī)密性和公開可驗證性, 即在交易明文信息不可見的情況下區(qū)塊鏈驗證節(jié)點(diǎn)可確保金額范圍的合理性和交易金額的平衡性以保證交易安全. 因此, 現(xiàn)有方案多通過消息加密、私有存儲確保交易信息的機(jī)密性, 通過零知識證明確保密態(tài)數(shù)據(jù)交易規(guī)則的可驗證性. 鑒于二者在研究目標(biāo)和技術(shù)路線上的不同, 本文將交易內(nèi)容同交易身份的隱私保護(hù)分離開單獨(dú)進(jìn)行研究討論, 聚焦于內(nèi)容隱私保護(hù)的自有特點(diǎn), 以期為讀者提供有益的研究借鑒.

區(qū)塊鏈交易內(nèi)容隱私保護(hù)是目前的研究熱點(diǎn), 國內(nèi)外已有多篇文獻(xiàn)涉及到區(qū)塊鏈系統(tǒng)安全隱私問題的研究, 但尚缺乏單獨(dú)對交易內(nèi)容隱私保護(hù)的系統(tǒng)性分析和深入探討. 2017 年, 祝烈煌等人[2]從數(shù)據(jù)失真、數(shù)據(jù)加密和限制發(fā)布三方面討論了區(qū)塊鏈交易內(nèi)容隱私保護(hù)問題; 2018 年, Genkin 等人[3]對公有鏈不同密碼貨幣所采用的內(nèi)容隱私技術(shù)進(jìn)行了討論; 王宗慧等人[4]從混幣方案、密碼學(xué)方案和安全通道方案三個方面對公有鏈數(shù)據(jù)隱私保護(hù)方案進(jìn)行了研究; 2019 年, 何德彪等人[5]重點(diǎn)對內(nèi)容隱私保護(hù)方面的零知識證明和同態(tài)密碼進(jìn)行了討論; 李旭東等人[6]從混幣技術(shù)、離鏈支付協(xié)議和密碼學(xué)方案三個方面對比特幣隱私保護(hù)問題和改進(jìn)方案進(jìn)行了研究; 2020 年, 張家碩等人[7]從零知識證明、安全多方計算、環(huán)簽名和可信計算等方面對區(qū)塊鏈隱私保護(hù)的實現(xiàn)技術(shù)手段進(jìn)行了探討; 張奧等人[8]依據(jù)隱私保護(hù)的不同技術(shù)手段從地址混淆、信息隱藏、通道隔離這三個方面主要對公有鏈中的隱私保護(hù)機(jī)制進(jìn)行了研究. 2021年, 李佩麗等人[9]主要從混合技術(shù)和零知識證明兩個方面討論了區(qū)塊鏈隱私保護(hù)技術(shù), 從身份追蹤和內(nèi)容監(jiān)管兩方面探討了隱私監(jiān)管技術(shù). 從隱私計算的范疇而言, 依據(jù)李鳳華等提出的泛在互聯(lián)環(huán)境下的隱私計算理論[10,11], 上述相關(guān)工作[2-9]所討論的區(qū)塊鏈交易隱私保護(hù)歸類為隱私防護(hù)技術(shù), 這些技術(shù)面向區(qū)塊鏈交易內(nèi)容隱私保護(hù)的特定場景, 側(cè)重于基于密碼學(xué)等傳統(tǒng)數(shù)據(jù)安全技術(shù)實現(xiàn)隱私防護(hù). 不同于隱私脫敏技術(shù)中采用失真且不可逆的方法進(jìn)行防護(hù), 區(qū)塊鏈交易隱私保護(hù)重點(diǎn)需解決密態(tài)交易數(shù)據(jù)的準(zhǔn)確運(yùn)算和規(guī)則校驗問題, 且對于交易對手方而言這些數(shù)據(jù)多具有可逆性. 面向交易內(nèi)容的隱私防護(hù)技術(shù), 上述相關(guān)工作[2-9]多以公有鏈密碼貨幣為研究對象, 將交易身份和交易內(nèi)容兩部分一起討論, 依據(jù)所采取的具體技術(shù)分類來進(jìn)行研究. 這一思路沒有集中分析面向交易內(nèi)容和交易身份的隱私保護(hù)在方案目標(biāo)、設(shè)計思路和實現(xiàn)手段上的差異, 研究范圍也未聚焦到交易內(nèi)容隱私保護(hù)及其監(jiān)管的詳細(xì)方案. 此外, 上述工作對聯(lián)盟鏈中的隱私保護(hù)機(jī)制涉及較少, 也未對目前產(chǎn)業(yè)區(qū)塊鏈中面臨的隱私交易監(jiān)管問題進(jìn)行深入探討.

鑒于上述問題, 本文基于區(qū)塊鏈交易模型公開可驗證的特點(diǎn), 將區(qū)塊鏈交易內(nèi)容隱私保護(hù)分為三方面的內(nèi)容進(jìn)行深入探討: 交易內(nèi)容隱藏、隱藏交易驗證和隱藏交易監(jiān)管. 其中, 交易內(nèi)容隱藏用于確保觀察者無法獲得交易明文數(shù)據(jù); 隱藏交易驗證用于確保共識節(jié)點(diǎn)可對隱藏后的交易內(nèi)容進(jìn)行正確性驗證; 隱藏交易監(jiān)管用于確保監(jiān)管方可對隱藏后的交易內(nèi)容進(jìn)行有效監(jiān)管. 本文從上述三個方面對公有鏈和聯(lián)盟鏈中內(nèi)容隱私保護(hù)的共性問題和解決方案進(jìn)行了系統(tǒng)性地梳理. 首先, 基于區(qū)塊鏈交易模型的特點(diǎn), 分析了區(qū)塊鏈交易內(nèi)容隱私保護(hù)所面臨的安全威脅及挑戰(zhàn); 其次, 我們認(rèn)為在區(qū)塊鏈賬本公開存儲、多方共識確認(rèn)情況下如何實現(xiàn)交易內(nèi)容的隱藏和隱藏交易的高效驗證是目前亟待解決的關(guān)鍵問題. 其中的隱藏交易驗證又是區(qū)塊鏈新型交易場景下的特定需求, 相關(guān)的研究工作非?;钴S. 在公有鏈和聯(lián)盟鏈中, 由于去中心化和多中心化交易處理驗證方式的不同, 又使得二者采取了不同的內(nèi)容隱藏和驗證方案. 由此本文從交易內(nèi)容隱藏和隱藏交易驗證兩個方面對目前區(qū)塊鏈系統(tǒng)中所采取的不同隱私保護(hù)手段, 如: 同態(tài)密碼、加密技術(shù)、隔離技術(shù)、環(huán)簽名和零知識證明等進(jìn)行了對比分析, 列舉了不同方案各自存在的優(yōu)缺點(diǎn), 從其所涉及的設(shè)計思路、密碼算法和安全協(xié)議等方面進(jìn)行了深入的探討; 此外, 隨著產(chǎn)業(yè)區(qū)塊鏈的發(fā)展, 隱私交易的監(jiān)管問題在行業(yè)應(yīng)用中日益凸顯. 因此, 本文也從隱藏交易監(jiān)管方面對現(xiàn)有方案進(jìn)行了總結(jié)分析. 最后,本文對交易內(nèi)容隱藏、隱藏交易驗證和隱藏交易監(jiān)管技術(shù)的未來發(fā)展進(jìn)行了展望.

本文組織結(jié)構(gòu)如下: 第1 節(jié)介紹了區(qū)塊鏈交易內(nèi)容隱私保護(hù)的基本概念和需解決的主要問題; 第2 節(jié)分析總結(jié)了當(dāng)前區(qū)塊鏈交易內(nèi)容隱私保護(hù)所面臨的安全威脅及挑戰(zhàn); 第3 節(jié)從交易內(nèi)容隱藏、隱藏交易驗證和隱藏交易監(jiān)管三個方面對目前主流區(qū)塊鏈平臺中交易內(nèi)容隱私保護(hù)所采取的不同技術(shù)手段進(jìn)行了對比分析; 第4 節(jié)對交易內(nèi)容和交易身份隱私保護(hù)技術(shù)的結(jié)合進(jìn)行了分析討論; 第5 節(jié)為總結(jié)及未來展望.

2 區(qū)塊鏈內(nèi)容隱私保護(hù)面臨的威脅與挑戰(zhàn)

區(qū)塊鏈系統(tǒng)采用交易多方共識確認(rèn)模型提供了高效的信任構(gòu)建方法, 同時也為鏈上數(shù)據(jù)流轉(zhuǎn)帶來了更多的安全和隱私保護(hù)問題. 區(qū)塊鏈系統(tǒng)在交易內(nèi)容隱私保護(hù)方面面臨的威脅主要包括:

(1) 區(qū)塊鏈系統(tǒng)采用了交易賬本全網(wǎng)公開的方式來存儲全部的歷史交易數(shù)據(jù), 區(qū)塊鏈系統(tǒng)中的所有節(jié)點(diǎn)都可以看到鏈上的明文數(shù)據(jù)并追溯交易流程, 極易造成用戶身份、交易類型和賬戶余額等隱私信息的泄露,例如敵手可以通過交易圖分析發(fā)現(xiàn)不同賬戶間的關(guān)聯(lián)關(guān)系[12]、追蹤特殊交易[13]以及發(fā)現(xiàn)交易規(guī)則[14]等, 給交易內(nèi)容隱私保護(hù)帶來了威脅.

(2) 區(qū)塊鏈系統(tǒng)采用多方共識方式來完成交易的確認(rèn), 參與共識的節(jié)點(diǎn)必然需要掌握更多的交易信息以實現(xiàn)交易規(guī)則驗證, 一旦共識節(jié)點(diǎn)出現(xiàn)問題, 必然會影響交易的正確驗證以及造成隱私數(shù)據(jù)泄露, 給交易內(nèi)容隱私保護(hù)帶來威脅.

(3) 傳統(tǒng)區(qū)塊鏈隱私保護(hù)的去中心化特點(diǎn)使得鏈上交易缺乏合理監(jiān)管, 對于惡意違法交易無法實現(xiàn)交易追蹤溯源和內(nèi)容監(jiān)管, 在應(yīng)用層面可能帶來系統(tǒng)性的安全風(fēng)險.

在傳統(tǒng)交易系統(tǒng)中, 用戶是向中心機(jī)構(gòu)公開交易身份和交易內(nèi)容, 由中心機(jī)構(gòu)完成信息的隱私保護(hù).而區(qū)塊鏈系統(tǒng)中并無單一中心機(jī)構(gòu), 而是由系統(tǒng)整體安全機(jī)制來完成隱私保護(hù). 因此, 受限于區(qū)塊鏈系統(tǒng)中交易模型的設(shè)計, 交易內(nèi)容隱私保護(hù)方案也面臨著如下一些技術(shù)挑戰(zhàn):

(1) 區(qū)塊鏈系統(tǒng)采用多方共識方式來實現(xiàn)交易的確認(rèn)和信任的構(gòu)建, 有時交易雙方對于作為觀察者的驗證節(jié)點(diǎn)來說是存在交易內(nèi)容隱私保護(hù)需求的, 簡單的信息隱藏方法無法滿足既保護(hù)信息又可驗證內(nèi)容的需求. 因此, 如何在保護(hù)交易內(nèi)容隱私的同時實現(xiàn)正確有效的交易驗證具有一定的挑戰(zhàn)性.

(2) 區(qū)塊鏈系統(tǒng)中采用多方確認(rèn)后通過公開信道(區(qū)塊鏈賬本) 進(jìn)行交易信息發(fā)布, 這一過程耗時較長. 因此, 在區(qū)塊鏈系統(tǒng)中多采用交易發(fā)送方到區(qū)塊鏈節(jié)點(diǎn)的單向通信方式. 這使得傳統(tǒng)交易系統(tǒng)中的多輪雙向隱私保護(hù)協(xié)議不再適用. 因此, 如何在區(qū)塊鏈系統(tǒng)單向傳輸交易數(shù)據(jù)的過程中實現(xiàn)交易認(rèn)證和隱私保護(hù)也具有一定的挑戰(zhàn)性.

(3) 區(qū)塊鏈系統(tǒng)中的賬本數(shù)據(jù)采用追加存儲的方式, 添加的交易數(shù)據(jù)用于賬本的完整性驗證且不能刪除, 而隱私保護(hù)技術(shù)又帶來了額外的交易數(shù)據(jù)存儲開銷. 因此, 必須采取有效措施來降低隱私保護(hù)信息的存儲開銷, 以避免賬本數(shù)據(jù)的膨脹問題.

(4) 隨著區(qū)塊鏈系統(tǒng)在行業(yè)應(yīng)用中的不斷普及和發(fā)展, 行業(yè)監(jiān)管同隱私保護(hù)間的矛盾也逐漸凸顯. 一方面, 區(qū)塊鏈系統(tǒng)中缺乏單一交易中心機(jī)構(gòu); 另一方面, 傳統(tǒng)的公有鏈中無監(jiān)管式的隱私保護(hù)方法是不適合于很多行業(yè)應(yīng)用場景的. 因此, 如何在實現(xiàn)隱私保護(hù)的同時又可提供對于交易內(nèi)容的監(jiān)管也是一個頗具挑戰(zhàn)性的問題.

3 交易內(nèi)容隱私保護(hù)技術(shù)

本文將從交易內(nèi)容隱藏、隱藏交易驗證和隱藏交易監(jiān)管三個方面介紹區(qū)塊鏈交易內(nèi)容隱私保護(hù)技術(shù).首先, 當(dāng)用戶提交交易時, 系統(tǒng)將通過交易內(nèi)容隱藏技術(shù)處理交易數(shù)據(jù)使得明文數(shù)據(jù)對于全網(wǎng)或部分未授權(quán)用戶不可見, 只有交易接收方可通過隱藏后的數(shù)據(jù)恢復(fù)出交易明文; 其次, 驗證節(jié)點(diǎn)使用隱藏交易驗證技術(shù)對交易密文信息進(jìn)行合法性驗證; 此外, 對于存在監(jiān)管需求的區(qū)塊鏈系統(tǒng), 可使用隱藏交易監(jiān)管技術(shù)對交易內(nèi)容進(jìn)行審計和監(jiān)管. 這一隱私保護(hù)模型在確保交易方明文交易數(shù)據(jù)保密性的同時, 又可保證共識節(jié)點(diǎn)對隱藏后的交易內(nèi)容進(jìn)行正確性驗證和監(jiān)管方對交易規(guī)則的有效監(jiān)管. 由上述三方面內(nèi)容構(gòu)成的交易內(nèi)容隱私保護(hù)模型如圖1 所示.

圖1 交易內(nèi)容隱私保護(hù)模型Figure 1 Model of transaction privacy protection

3.1 交易內(nèi)容隱藏

目前的區(qū)塊鏈系統(tǒng)多采用信息加密和數(shù)據(jù)隔離技術(shù)來實現(xiàn)交易內(nèi)容的隱藏.

3.1.1 交易信息加密

交易信息加密方案通過將含有隱私內(nèi)容的明文數(shù)據(jù)加密后上鏈, 達(dá)到區(qū)塊鏈交易內(nèi)容隱藏的目的. 只有擁有密鑰的用戶才能夠解密密文獲得隱私信息. 目前, 基于交易信息加密的隱私保護(hù)方案可分為同態(tài)密碼、非對稱/對稱加密和屬性加密三種.

同態(tài)密碼

同態(tài)密碼的同態(tài)性是指對明文進(jìn)行加法和(或)乘法運(yùn)算與對密文進(jìn)行相應(yīng)的運(yùn)算,結(jié)果是等價的. 當(dāng)前相關(guān)區(qū)塊鏈交易隱私保護(hù)方案所采用的主要同態(tài)密碼技術(shù)如表1 所示.

表1 同態(tài)密碼技術(shù)及相關(guān)區(qū)塊鏈交易隱私保護(hù)方案Table 1 Homomorphic encryption and its applications in blockchain privacy preserving

為了提高比特幣的隱私保護(hù)特性, Adam Back 和Gregory Maxwell 提出了保密交易的概念[15], 通過在比特幣網(wǎng)絡(luò)中使用Pedersen 承諾[16]實現(xiàn)對UTXO 中交易金額的隱藏.

定義1 (Pedersen 承諾) 設(shè)G為橢圓曲線點(diǎn)群G 中的生成元,H為橢圓曲線中的一個點(diǎn), 隨機(jī)選擇r ∈Zn, 則v ∈Zn的Pedersen 承諾為: commit(r,v)+vH.

Pedersen 承諾具有綁定性(binding) 和隱藏性(hiding).

定義2 (綁定性) 給定承諾值commit(r,v), 對于任何PPT 敵手, 找到(r′,v′) 滿足m/=m′和commit(r′,v′)=commit(r,v) 的概率是可以忽略的.

定義3 (隱藏性) 對于任何v,v′∈Zp以及隨機(jī)選擇的r,r′∈Zp, commit(r,v) 和commit(r′,v′) 的分布是相同的.

定義4 (Pedersen 承諾同態(tài)性) commit(r1,v1) + commit(r2,v2) = (r1+r2)G+ (v1+v2)H=commit(r1+r2,v1+v2).

保密交易技術(shù)中通過構(gòu)造基于橢圓曲線的Pedersen 承諾方案完成交易金額隱藏,v代表交易金額,r為隨機(jī)生成的盲化因子并且不公開. Pedersen 承諾所具有的隱藏性使得觀察者無法通過公開賬本中記錄的承諾值commit(r,v) 還原出交易金額, Pedersen 承諾的綁定性使得發(fā)送者無法再次更改交易金額, 從而在確保交易安全的情況下實現(xiàn)了交易內(nèi)容的隱私保護(hù). 保密交易技術(shù)在公有鏈Elements[17]、Zerocoin[18]、Mimblewimble[19-21]、門羅幣[22,23]和零幣Zcash (sapling 版本)[25]中都得到了實際應(yīng)用. 此外, 基于聯(lián)盟鏈Fabric 的FabZK[24]項目也使用了保密交易技術(shù)來實現(xiàn)交易內(nèi)容的隱藏.

此外, 目前已經(jīng)有相關(guān)研究提出使用Paillier 加法同態(tài)算法實現(xiàn)區(qū)塊鏈用戶交易金額的隱藏. Paillier加法同態(tài)算法基于復(fù)合剩余類困難問題, 其算法流程如下:

(3) Decrypt(sk,C)→m: 該算法為解密算法, 計算hm=Y/Xsk-1, 從hm中恢復(fù)明文m.

在PGC 方案中, 利用Twisted-ElGamal 加密實現(xiàn)交易金額隱藏和賬戶余額的隱藏. 首先, 交易參與者使用自己的公鑰加密賬戶余額. 當(dāng)發(fā)生轉(zhuǎn)賬交易時, 交易發(fā)送方分別使用發(fā)送方和接收方的公鑰(pks,pkr) 加密交易金額v得到交易密文(Cs,Cr). 同時生成零知識證明πcorrect證明交易的正確性, 接收者收到證明和簽名后的交易密文, 完成隱藏交易. 交易確認(rèn)完成后, 交易發(fā)送方和交易接收方可通過Twisted-ElGamal 算法的同態(tài)性使用交易密文(Cs,Cr) 各自更新加密的賬戶余額.

此外,PGC 方案[30]給出了在32 比特消息空間和128 比特安全強(qiáng)度下,Twisted-ElGamal 和Paillier算法運(yùn)行的性能對比. 其中Twisted-ElGamal 工作在prime256v1 橢圓曲線上, Paillier 算法的模長為3072 位. 比較結(jié)果如表2 所示. 由比較可知, Twisted-ElGamal 具有更好的運(yùn)算性能.

表2 Twisted-ElGamal 和Paillier 比較[30]Table 2 Benchmarks of Twisted-ElGamal and Paillier [30]

綜上所述, 基于同態(tài)承諾和同態(tài)加密的方案能夠保證交易內(nèi)容的隱私性, 其中, Twisted-ElGamal 算法不僅解密效率優(yōu)于Paillier 算法, 而且也是對零知識證明友好的. 但是以上方案實現(xiàn)交易內(nèi)容隱藏的同時也存在著一些問題: 雖然同態(tài)密碼方案實現(xiàn)了交易明文的隱藏, 但密文仍然會作為輸入輸出結(jié)果編碼存儲在公開賬本中, 如果未同時采取身份隱藏機(jī)制則會為交易路徑追蹤提供便利; 其次, 由于保密交易所基于的Pedersen 承諾具有單向特性, 即無法由承諾結(jié)果直接獲得被承諾值, 因此基于保密交易構(gòu)建的交易支付過程必須通過其他方式在發(fā)送方和接收方之間進(jìn)行交易明文的傳輸. 為了解決這一問題, 目前存在兩種解決方式, 第一種方式為交易雙方使用鏈外通道交互并記錄交易明文數(shù)據(jù), 如FabZK 即采用鏈外私有賬本的方式來實現(xiàn); 第二種方式為直接將交易數(shù)據(jù)明文進(jìn)行加密并存儲在公開賬本中, 例如, 在門羅幣的最新實現(xiàn)中, 發(fā)送方和接收方之間通過ECDH 密鑰協(xié)商協(xié)議生成共享加密密鑰, 然后使用該密鑰對交易金額進(jìn)行加密(異或) 并存儲在賬本上. 此外, 同態(tài)加密算法雖然可將交易金額直接加密存儲在鏈上, 但Paillier 算法的問題在于加解密效率較低. Twisted-ElGamal 算法在解密過程中采用區(qū)間計算離散對數(shù)的方式獲得m, 因此較適合于具有固定范圍的金額類數(shù)值. 因此, 在實際應(yīng)用時可根據(jù)不同的場景需求擇優(yōu)選取.

非對稱/對稱加密

Zerocash 方案中使用接收者的公鑰通過匿名公鑰加密模式(key-privacy public-key encryption)[31]對交易金額、序列號生成因子和貨幣承諾(v,ρ,rcm) 進(jìn)行加密, 然后將密文包含在隱蔽交易中并廣播到區(qū)塊鏈. 接收方需要監(jiān)聽區(qū)塊鏈上的交易, 嘗試用自己的私鑰解密隱蔽交易中包含的加密信息, 若解密成功, 則存儲解密后的敏感信息并在未來支付時使用. 零幣中的Sprout 版本則通過Curve25519 密鑰協(xié)商協(xié)議在發(fā)送方與接收方之間產(chǎn)生一個共同的會話密鑰, 然后通過一次性認(rèn)證對稱加密方案(authenticated one-time symmetric encryption)[32]對敏感交易信息進(jìn)行加密. Curve25519 密鑰協(xié)商協(xié)議協(xié)商會話密鑰的具體流程如圖2 所示:

圖2 Curve25519 密鑰協(xié)商協(xié)議Figure 2 Key agreement protocol on Curve25519

在密鑰協(xié)商過程中, 發(fā)送方首先隨機(jī)選擇一個臨時公私鑰對 epk/esk, 接收方擁有傳輸密鑰對(pkenc,skenc). 在密鑰交換過程中, 雙方利用自己的私鑰和對方的公鑰再使用一次Curve25519 函數(shù)就可以計算得到一個共同的秘密值, 然后利用這個秘密值派生出會話密鑰用于之后的對稱加密算法. 在交易發(fā)送時, 發(fā)送方連同密文Cenc和epk 一同發(fā)給接收者. 接收者監(jiān)聽區(qū)塊鏈上的交易, 嘗試?yán)米约旱乃借€skenc和交易中公開的epk 計算出加密密鑰Kenc, 解密隱蔽交易中包含的加密信息, 若解密成功, 則接收這筆交易.

使用一次性認(rèn)證對稱加密方案對敏感交易信息進(jìn)行加密的流程如下:

(1) 發(fā)送方產(chǎn)生一個密鑰對(epk,esk).

(2) 通過Curve25519 密鑰協(xié)商協(xié)議K計算共享秘密值sharedSecret :=KA.Agree(esk, pkenc).

(3) 通過密鑰派生方案KDF 計算加密密鑰Kenc:= KDF(i,hsig, sharedSecret, epk, pkenc).

(4) 通過認(rèn)證加密方案Sym 計算消息m對應(yīng)的密文C:=Sym.EncryptKenc(m).

屬性加密

為了解決更細(xì)粒度隱私保護(hù)場景下的數(shù)據(jù)隱私保護(hù)問題, 一些基于屬性加密(attribute-based encryption, ABE)[33,34]的區(qū)塊鏈數(shù)據(jù)隱私保護(hù)方案[35,36]相繼被提出. ABE 分為密文策略屬性加密(ciphertext policy attribute-based encryption, CP-ABE) 和密鑰策略屬性加密(key policy attribute-based encryption, KP-ABE). 現(xiàn)有的區(qū)塊鏈系統(tǒng)下基于屬性加密的交易隱私保護(hù)方案多使用CP-ABE 算法.CP-ABE 的算法流程如下:

(1) Setup(1λ,S)→(PP,MK), 初始化算法輸入安全參數(shù)λ和屬性集S, 輸出公開參數(shù)PP 和主密鑰MK;

(2) KeyGen(MK,S)→SK, 密鑰生成算法輸入主密鑰MK 和屬性集S, 輸出用戶屬性私鑰SK;

(3) Encrypt(PP,M,A)→CT, 加密算法輸入公開參數(shù)PP, 明文M和訪問結(jié)構(gòu)A, 輸出密文CT;

(4) Decrypt(PP,CT,SK)→M, 解密算法輸入公開參數(shù)PP, 密文CT 和用戶私鑰SK, 輸出明文M, 只有滿足訪問結(jié)構(gòu)A的用戶才能解密獲得M.

Yuan 等人[37]使用CP-ABE 實現(xiàn)了一種區(qū)塊鏈數(shù)據(jù)隱私保護(hù)方案, 保證了數(shù)據(jù)的機(jī)密性.同時通過ABE 完成不同用戶對高級、低級數(shù)據(jù)的訪問權(quán)限控制, 即高級用戶可以查詢高級和低級數(shù)據(jù), 而低級用戶只能查詢低級數(shù)據(jù). Cheng 等人[38]提出了基于屬性加密的區(qū)塊鏈隱私保護(hù)方案并將其應(yīng)用于車聯(lián)網(wǎng)用戶的隱私保護(hù), 該方案通過設(shè)置用戶的交通屬性集合將用戶分組并設(shè)置不同訪問策略加密隱私內(nèi)容,只有滿足密文訪問控制策略的用戶才能解密密文獲得隱私內(nèi)容; Qiu 等人[39]提出了一種基于屬性加密算法的Fabric 數(shù)據(jù)訪問控制方案, 該方案將通道ID、組織ID 和用戶ID 作為用戶屬性集合, 根據(jù)屬性集合設(shè)置訪問控制策略, 在通道和組織層面為Fabric 提供了更細(xì)粒度的數(shù)據(jù)內(nèi)容隱私保護(hù). 概括而言, 基于CP-ABE 方案的區(qū)塊鏈數(shù)據(jù)訪問控制方案通過設(shè)置屬性集合將用戶分組, 由數(shù)據(jù)發(fā)送方指定加密數(shù)據(jù)的用戶訪問控制列表, 一個屬性集可配置不同的多個訪問控制策略, 用戶可以根據(jù)需求使用不同嚴(yán)格程度的訪問控制策略加密隱私數(shù)據(jù)得到密文上鏈, 實現(xiàn)更多樣化、細(xì)粒度的交易內(nèi)容隱私保護(hù), 如圖3 所示. 基于CP-ABE 的區(qū)塊鏈數(shù)據(jù)隱私保護(hù)方案主要包括如下幾個步驟:

圖3 基于屬性加密的區(qū)塊鏈隱私保護(hù)方案Figure 3 ABE-based blockchain privacy protection scheme

(1) 初始化: 首先生成公開參數(shù)PP 和主密鑰MK, 然后設(shè)置屬性集S, 利用MK 和S為各用戶生成屬性私鑰SK, 通過某種安全方式將屬性私鑰SK 發(fā)送給對應(yīng)用戶.

(2) 數(shù)據(jù)加密上鏈: 數(shù)據(jù)發(fā)送方根據(jù)訪問結(jié)構(gòu)A加密明文M生成密文CT, 密文CT 經(jīng)過共識確認(rèn),存儲于區(qū)塊鏈中.

(3) 數(shù)據(jù)解密: 接收方用戶請求區(qū)塊鏈網(wǎng)絡(luò)中包含該交易密文的對應(yīng)信息, 得到對應(yīng)的密文CT, 滿足訪問結(jié)構(gòu)A的用戶能夠通過屬性密鑰SK 解密CT 得到對應(yīng)明文.

綜上所述, Zcash 等使用對稱加密技術(shù)通過密文交易實現(xiàn)了交易內(nèi)容隱藏, 基于CP-ABE 的隱私保護(hù)方案通過設(shè)置屬性集合和不同的訪問控制策略實現(xiàn)了更細(xì)粒度的基于屬性的數(shù)據(jù)內(nèi)容隱藏. 基于信息加密的內(nèi)容隱藏方法必須提供較為復(fù)雜的隱藏交易驗證機(jī)制, 如基于零知識證明的驗證方案. 這在一定程度上增加了驗證過程的計算復(fù)雜性, 降低了驗證效率, 也帶來了額外的賬本存儲開銷. 上述屬性加密的保護(hù)方案也并未提供密文共識驗證算法, 若將密文解密得到明文再驗證, 如果存在惡意共識節(jié)點(diǎn)參與交易驗證,那么就會產(chǎn)生交易數(shù)據(jù)的隱私泄露問題. 因此, 在區(qū)塊鏈公開可驗證交易模型下, 如何設(shè)計鏈上密態(tài)數(shù)據(jù)的高效可驗證機(jī)制以確保交易規(guī)則符合性仍有待進(jìn)一步深入研究.

3.1.2 基于業(yè)務(wù)邏輯的數(shù)據(jù)隔離技術(shù)

在目前得到廣泛應(yīng)用的聯(lián)盟鏈系統(tǒng)中, 多面向業(yè)務(wù)邏輯適度引入中心化處理機(jī)制來設(shè)計區(qū)塊鏈系統(tǒng)的總體架構(gòu). 這不同于公有鏈交易全網(wǎng)共識的實現(xiàn)方式, 也為聯(lián)盟鏈中隱私保護(hù)的設(shè)計帶來了便利. 因此,F(xiàn)abric、Corda 和Quorum 等聯(lián)盟鏈采用適度的中心化機(jī)制完成隱私交易的處理, 同時設(shè)計了基于業(yè)務(wù)邏輯的數(shù)據(jù)隔離技術(shù)來實現(xiàn)交易內(nèi)容的隱私保護(hù).

Hyperledger Fabric

Hyperledger Fabric[40,41]基于中心化的背書模型通過通道和私有數(shù)據(jù)集來實現(xiàn)交易內(nèi)容的隱私保護(hù). Fabric 中的背書節(jié)點(diǎn)受到交易各方的信任對交易合法性進(jìn)行背書驗證, 因此可以處理、訪問所有的隱私交易數(shù)據(jù), 這使得Fabric 無需使用復(fù)雜的密碼學(xué)機(jī)制來實現(xiàn)交易的驗證, 只需采用一定的機(jī)制來實現(xiàn)交易內(nèi)容隱藏即可.

為了保護(hù)交易內(nèi)容的數(shù)據(jù)隱私, Fabric1.0 引入了通道(channel) 機(jī)制. 所謂通道是指在Fabic 中多個成員間構(gòu)成的私有通信子集, 以用來執(zhí)行保密交易. 該機(jī)制下, 交易可見的最小范圍是通道, 通道內(nèi)的鏈上交易數(shù)據(jù)對于屬于該通道的所有成員是可見的, 但對于通道外的成員是不可見的. 通道可理解為基于共識服務(wù)提供的一種通訊機(jī)制, 它將背書節(jié)點(diǎn)、提交節(jié)點(diǎn)和共識服務(wù)連接在一起, 形成一個具有保密性的虛擬通訊子鏈路, 從而實現(xiàn)業(yè)務(wù)隔離, 通道機(jī)制如圖4 所示. 其中, 共識服務(wù)與(節(jié)點(diǎn)1、節(jié)點(diǎn)3)、(節(jié)點(diǎn)1、節(jié)點(diǎn)2、節(jié)點(diǎn)3)、(節(jié)點(diǎn)2、節(jié)點(diǎn)3) 組成了三個相互獨(dú)立的通道, 加入到不同通道的Peer 節(jié)點(diǎn)能夠維護(hù)各通道對應(yīng)的賬本和狀態(tài), 通道外的節(jié)點(diǎn)無法看到其中的賬本和交易數(shù)據(jù), 從而提高了交易內(nèi)容的隱私性.

圖4 Fabric 通道機(jī)制Figure 4 Channel in Fabric

通道的訪問控制機(jī)制通過“安全域” 劃分的方法在一定程度上保證了數(shù)據(jù)的隱私性, 但該機(jī)制只是粗粒度的數(shù)據(jù)隱私保護(hù). 通道內(nèi)成員往往隸屬于不同的組織, 如果通道內(nèi)的部分組織不希望其他組織能夠查看一些特殊數(shù)據(jù), 這些組織需要單獨(dú)創(chuàng)建一個新的通道, 使該通道僅包含這些特殊數(shù)據(jù). 若要保護(hù)任意多方間的隱私數(shù)據(jù), 則需要構(gòu)建大量的通道, 從而造成過多的資源開銷.

為了解決通道大量創(chuàng)建造成的資源浪費(fèi)問題, Fabric1.2 引入了私有數(shù)據(jù)(private data) 機(jī)制, 如圖5 所示, 它允許通道上的成員之間可以提交、查詢私有數(shù)據(jù)而無需創(chuàng)建單獨(dú)的通道, 從而實現(xiàn)一些特殊數(shù)據(jù)僅在通道內(nèi)部分成員間共享. 相對于通道機(jī)制, 私有數(shù)據(jù)機(jī)制是一種更細(xì)粒度的數(shù)據(jù)隱私保護(hù)機(jī)制.

圖5 Fabric 中的私有數(shù)據(jù)集機(jī)制Figure 5 Private data collection in Fabric

在原有通道狀態(tài)庫的基礎(chǔ)上, Fabric1.2 的私有數(shù)據(jù)機(jī)制加入了私有狀態(tài)庫, 即部分組織間的私有數(shù)據(jù)會被存儲到私有狀態(tài)庫中. 同時為了保證這些私有數(shù)據(jù)的有效性和不可篡改, 還需要將這些私有數(shù)據(jù)的哈希值存儲到通道狀態(tài)庫中, 即“上鏈”. 私有數(shù)據(jù)僅存儲在部分已授權(quán)節(jié)點(diǎn)中, 但是所有節(jié)點(diǎn)都會在通道狀態(tài)中存儲私有數(shù)據(jù)的哈希值. 經(jīng)過授權(quán)的節(jié)點(diǎn)可以訪問這些私有數(shù)據(jù)并通過鏈上哈希值來進(jìn)行完整性驗證, 而未授權(quán)的節(jié)點(diǎn)本身并沒有私有數(shù)據(jù). 通過這種方式在保證全局賬本一致的前提下, 實現(xiàn)了較通道機(jī)制更為細(xì)粒度的數(shù)據(jù)隱私保護(hù).

Fabric 中含有私有數(shù)據(jù)的交易流程如下:

(1) 客戶端的應(yīng)用程序向背書節(jié)點(diǎn)提交提案請求, 調(diào)用鏈碼讀取或?qū)懭胨接袛?shù)據(jù). 私有數(shù)據(jù)(或用于在鏈碼中生成私有數(shù)據(jù)的數(shù)據(jù)) 包含在提案的臨時字段中.

(2) 背書節(jié)點(diǎn)模擬執(zhí)行交易并將私有數(shù)據(jù)存儲在臨時數(shù)據(jù)緩沖區(qū)中,然后根據(jù)既定的策略使用Gossip協(xié)議將私有數(shù)據(jù)分發(fā)給授權(quán)用戶.

(3) 背書節(jié)點(diǎn)將公開數(shù)據(jù)以提案響應(yīng)的形式返回給客戶端, 其中包括私有數(shù)據(jù)哈希值.

(4) 客戶端應(yīng)用程序?qū)⑻岚疙憫?yīng)轉(zhuǎn)化為交易并發(fā)送給排序服務(wù)節(jié)點(diǎn). 排序服務(wù)會將這些交易打包成區(qū)塊, 然后將區(qū)塊分發(fā)給所有的記賬節(jié)點(diǎn). 通過這樣的方式, 通道上的所有節(jié)點(diǎn)都可以驗證交易的有效性而不需要知道具體的私有數(shù)據(jù).

(5) 提交區(qū)塊時, 接收到私有數(shù)據(jù)的授權(quán)節(jié)點(diǎn)會檢查臨時數(shù)據(jù)緩沖區(qū)中私有數(shù)據(jù)的哈希值是否與公開賬本全局狀態(tài)數(shù)據(jù)中的哈希值一致, 如果一致則將公開數(shù)據(jù)賬本追加到本地賬本, 并將私有數(shù)據(jù)寫入私有狀態(tài)庫中.

為了增強(qiáng)私有數(shù)據(jù)機(jī)制的功能, Fabric2.0 啟用了處理和共享私有數(shù)據(jù)的新模式. 之前的版本中私有數(shù)據(jù)僅在一個私有數(shù)據(jù)集合中共享, 但Fabric2.0 通過引入特定的API 函數(shù)實現(xiàn)了不同集合之間共享私有數(shù)據(jù)的功能.

Corda

Corda 是由R3 聯(lián)盟開發(fā)的適用于金融類應(yīng)用場景的分布式賬本系統(tǒng), 于2016 年11 月實施開源[42].Corda 是一個基于半信任環(huán)境的、服務(wù)于現(xiàn)實世界金融活動的分布式賬本平臺, 同時滿足信息適度可見和高性能兩個核心特性, 采用聯(lián)盟鏈或私有鏈的形式, 用于記錄、管理及自動化執(zhí)行金融合約.

不同于公有鏈平臺具有的全局交易驗證及共識、單位時間產(chǎn)出數(shù)據(jù)塊等特征, Corda 平臺具有如下特點(diǎn):

(1) 交易無需全網(wǎng)廣播, 而僅在交易的關(guān)聯(lián)方及驗證節(jié)點(diǎn)之間傳遞. 這樣可以減少節(jié)點(diǎn)接收的數(shù)據(jù)量,并且有效保證交易相關(guān)方的內(nèi)容隱私保護(hù).

(2) 共識機(jī)制僅存在于負(fù)責(zé)驗證交易的節(jié)點(diǎn)之間, 而不是所有的參與節(jié)點(diǎn), 從而加快了達(dá)成共識的速度, 提高了交易性能.

(3) 沒有“區(qū)塊” 的概念, 而是讓后續(xù)交易直接指向前序交易, 以達(dá)到數(shù)據(jù)不可篡改、可追溯的特性.

Corda 系統(tǒng)仍是基于UTXO 交易模型, 通過工作流來構(gòu)建各種復(fù)雜的業(yè)務(wù)流程. 但不同于其它區(qū)塊鏈系統(tǒng)的是, Corda 中的交易無需全網(wǎng)廣播, 交易數(shù)據(jù)的流動均通過基于TLS 安全信道的點(diǎn)對點(diǎn)傳輸來完成, 且僅在交易的關(guān)聯(lián)方及驗證節(jié)點(diǎn)之間傳遞. 這一基于業(yè)務(wù)邏輯相關(guān)性來構(gòu)建數(shù)據(jù)“安全域” 的方法有效地保護(hù)了交易對手方之間的數(shù)據(jù)隱私, 達(dá)到了“數(shù)據(jù)適度可見” 的安全目標(biāo).

此外, Corda 中存在一個受信任的公共服務(wù)Oracle 節(jié)點(diǎn), 用來將現(xiàn)實世界中的事實(例如股票價格、外匯牌價、銀行利率等等) 注入到Corda 網(wǎng)絡(luò)中, 使之可以成為交易的一個輸入項. 同時為了確保引入外部數(shù)據(jù)后賬本交易數(shù)據(jù)的確定性(deterministic), Oracle 節(jié)點(diǎn)會對嵌入外部事實的交易進(jìn)行簽名. 為了保護(hù)交易方的數(shù)據(jù)隱私, Oracle 節(jié)點(diǎn)采用了名為“交易部分屏蔽”(transaction tear-offs) 的數(shù)據(jù)簽名方案,系統(tǒng)將交易簽名數(shù)據(jù)的哈希計算過程構(gòu)造成一棵Merkle 樹, 待簽名數(shù)據(jù)的哈希結(jié)果為Merkle 樹的根值.從而可以實現(xiàn)將一個保留了必要哈希分支的子樹發(fā)送給Oracle 節(jié)點(diǎn), 使它仍然能按照簽名結(jié)構(gòu)完成對整個交易的簽名. Corda 對記錄交易歷史的Merkle 樹結(jié)構(gòu)進(jìn)行剪枝后只留下原始數(shù)據(jù)的哈希運(yùn)算結(jié)果, 從而保護(hù)了數(shù)據(jù)隱私. “交易部分屏蔽” 的哈希計算過程如圖6 所示.

圖6 Transaction tear-off的哈希計算過程Figure 6 Hash computation of transaction tear-off

Quorum

企業(yè)以太坊聯(lián)盟(enterprise ethereum alliance, EEA) 是一個會員驅(qū)動的標(biāo)準(zhǔn)化組織, 旨在開發(fā)基于以太坊的開放性企業(yè)級區(qū)塊鏈標(biāo)準(zhǔn)[43]. 摩根大通在EEA 框架的基礎(chǔ)上基于以太坊構(gòu)建了開源的企業(yè)級區(qū)塊鏈平臺Quorum[44], 其通過引入私有交易和私有存儲的概念來實現(xiàn)交易內(nèi)容隱藏.

以太坊所有公開交易的數(shù)據(jù)都存儲在區(qū)塊鏈上, 任何人都可以訪問所有交易數(shù)據(jù). 為了實現(xiàn)交易內(nèi)容的隱藏, Quorum 將系統(tǒng)中的交易分為公有交易和私有交易, 以對其采用不同的交易處理流程和存儲方式.私有交易的處理流程如圖7 所示.

圖7 Quorum 私有交易處理流程Figure 7 Quorum private transaction flow

首先, 不同于公有交易, 私有交易加入了一個交易接受者身份(公鑰) 列表, 表明該私有交易應(yīng)該只發(fā)送給這些列表成員. 其次, 為了單獨(dú)處理私有交易, Quorum 引入了交易管理器(Transaction Manager)和飛地(Enclave) 組件, Transaction Manager 專門用于處理和分發(fā)私有數(shù)據(jù); Enclave 則為同Transaction Manager 一一對應(yīng)的組件, 專門用于完成數(shù)據(jù)加解密和密鑰管理工作. 最終, 私有交易數(shù)據(jù)荷載加密存儲在Transaction Manager 中, 而相應(yīng)智能合約的執(zhí)行結(jié)果則存儲在相應(yīng)節(jié)點(diǎn)的私有存儲數(shù)據(jù)庫中,Quorum 區(qū)塊中存儲的則是公有交易以及私有交易加密后的哈希值. 這樣既保護(hù)了私有交易隱私, 又實現(xiàn)了私有交易和公有交易參與統(tǒng)一的共識. 私有交易的具體執(zhí)行流程如下:

(1) 客戶端發(fā)送私有交易到Quorum 節(jié)點(diǎn), 并在交易中直接指明每個接收者身份(公鑰).

(2) Quorum 節(jié)點(diǎn)將私有交易傳送至對應(yīng)的Transaction Manager.

(3) Transaction Manager 通過Enclave 為每個接收者生成加密交易荷載并計算其哈希值.

(4) Transaction Manager 將私有交易的加密荷載及其哈希值分別點(diǎn)對點(diǎn)的傳播至每個交易接收方的Transaction Manager.

(5) 數(shù)據(jù)傳播成功后, Transaction Manager 將私有交易加密荷載的哈希值返回至對應(yīng)的Quorum 節(jié)點(diǎn).

(6) Quorum 節(jié)點(diǎn)將私有交易加密荷載的哈希值打包進(jìn)Quorum 區(qū)塊. 當(dāng)每個Quorum 節(jié)點(diǎn)執(zhí)行該以太坊交易時, 需要基于該以太坊交易的荷載(即私有交易加密荷載的哈希值) 向?qū)?yīng)的Transaction Manager 請求原始的私有交易荷載.

(7) 根據(jù)Quorum 節(jié)點(diǎn)的請求, 各個交易接收方的Transaction Manager 通過Enclave 和接收到的加密私有交易荷載解密出原始的私有交易荷載.

(8) 交易接收方的Transaction Manager 將原始的私有交易荷載返回至對應(yīng)的Quorum 節(jié)點(diǎn), 非交易接收方則返回空消息.

(9) 交易涉及的每個Quorum 節(jié)點(diǎn)將私有交易提交至智能合約運(yùn)行, 智能合約會將執(zhí)行私有交易時生成的狀態(tài)數(shù)據(jù)存儲至私有存儲數(shù)據(jù)庫.

綜上所述, Corda 通過引入點(diǎn)對點(diǎn)交易和數(shù)據(jù)傳輸、交易部分屏蔽簽名方案來構(gòu)建交易關(guān)聯(lián)方之間的數(shù)據(jù)“安全域”, 從而實現(xiàn)了交易內(nèi)容的隱私保護(hù). 但這一方案也存在一定的問題: Corda 的整體架構(gòu)設(shè)計思想是基于中心化背書的點(diǎn)對點(diǎn)交易模式, 它在帶來信息適度可見和高處理性能優(yōu)勢的同時, 卻也具有不適合于“多方共識確認(rèn)” 交易模式的弱點(diǎn). 而“去(多) 中心化” 模式下的多方交易共識確認(rèn)恰恰是區(qū)塊鏈的典型應(yīng)用場景; Hyperledger Fabric 通過引入通道和私有數(shù)據(jù)集實現(xiàn)了細(xì)粒度的數(shù)據(jù)隱私保護(hù)機(jī)制, 以適用于多方交易過程中的私有數(shù)據(jù)保護(hù). Quorum 采用類似的設(shè)計思想, 通過引入私有交易和私有存儲的概念實現(xiàn)了私有交易的數(shù)據(jù)隱私保護(hù)機(jī)制. 但這一類方案也存在一定的問題: 首先, 需在公共區(qū)塊鏈存儲之外引入私有狀態(tài)庫和點(diǎn)對點(diǎn)數(shù)據(jù)分發(fā)機(jī)制用于實現(xiàn)隱私數(shù)據(jù)的存儲, 這在一定程度上增加了系統(tǒng)實現(xiàn)的復(fù)雜度; 其次, 隱私明文數(shù)據(jù)在被信任節(jié)點(diǎn)的集中單點(diǎn)處理也加大了數(shù)據(jù)泄漏和單點(diǎn)失效的安全風(fēng)險.

3.2 隱藏交易驗證

隱藏交易驗證需要實現(xiàn)密文條件下交易內(nèi)容的合法性和正確性驗證, 所要驗證的主要內(nèi)容包括: 隱藏交易的平衡性驗證, 即確保交易輸入輸出的金額相等, 一般通過同態(tài)密碼或零知識證明技術(shù)來實現(xiàn); 交易金額的范圍證明, 即確保交易金額在合法范圍內(nèi), 防止出現(xiàn)支付負(fù)值金額而憑空產(chǎn)生貨幣的問題, 一般通過零知識證明或環(huán)簽名技術(shù)來實現(xiàn); 貨幣的合法性驗證, 即在使用全局混幣方案的密碼貨幣中(如零幣),確保支付貨幣為一個已發(fā)行的合法貨幣, 一般通過零知識證明技術(shù)來實現(xiàn).

3.2.1 同態(tài)密碼

Pedersen 承諾的加法同態(tài)特性為礦工(驗證者) 使用金額承諾進(jìn)行隱藏交易驗證提供了便利. 假設(shè)一個交易的輸入為v1,v2, 輸出為v3. 為了確保交易平衡, 即:v1+v2=v3, 構(gòu)建的交易承諾應(yīng)滿足:

Wang 等人[28]希望使用Paillier 方案利用Paillier 算法同態(tài)性來實現(xiàn)交易平衡性驗證. 但在這一方案中會使用不同接收方的公鑰來對輸出金額(UTXO) 進(jìn)行Paillier 加密, 不同公鑰的加密結(jié)果使得無法利用Paillier 算法的同態(tài)特性進(jìn)行平衡性驗證. 因此, 該方案引入一個dumb account 賬戶, 并對每一個輸出金額均使用dumb account 公鑰來進(jìn)行Paillier 加密并將這一加密結(jié)構(gòu)構(gòu)造為一個承諾, 從而利用基于承諾的零知識證明方案來實現(xiàn)交易非負(fù)性和平衡性驗證. 交易驗證通過后會寫入?yún)^(qū)塊, 接收方通過查詢區(qū)塊收到各自隱藏金額并使用私鑰解密獲得明文交易金額. 因此, 該方案在使用Paillier 加密為接收方傳遞交易金額的同時, 還需引入dumb account 賬戶的加密(承諾) 金額, 這額外增加了系統(tǒng)的存儲開銷.

PGC 方案[30]則是為基于賬戶模型的區(qū)塊鏈交易系統(tǒng)而設(shè)計的, 它利用Twisted-ElGamal 同態(tài)加密算法對交易金額和賬戶余額進(jìn)行加密, 從而可實現(xiàn)交易過程中賬戶余額的密態(tài)加減操作. 同時, Twisted-ElGamal 算法又是對零知識證明友好的, 基于加密結(jié)構(gòu)便于構(gòu)建出金額非負(fù)性、金額上限、金額比例等交易規(guī)則審計算法.

綜上所述, 在隱藏交易驗證方面, 加法同態(tài)承諾如Pedersen 承諾和同態(tài)加密方案能夠?qū)崿F(xiàn)隱藏交易的平衡性驗證, 但同態(tài)承諾無法由承諾結(jié)果直接獲得承諾值, 而同態(tài)加密能夠?qū)崿F(xiàn)承諾金額的傳遞但不利于零知識證明方案的構(gòu)建. 因此, 二者均需增加額外的密碼運(yùn)算來實現(xiàn)完整的密態(tài)交易和公開驗證功能.Twisted-ElGamal 算法在基于賬戶的交易模型下構(gòu)建了高效的實現(xiàn)方案, 但如何在基于UTXO 的交易模型下實現(xiàn)密態(tài)交易驗證仍有待進(jìn)一步研究. 此外, 同態(tài)加密方案在性能上存在不足, 目前全同態(tài)加密算法(fully homomorphic encryption, FHE)[45,46]的運(yùn)行效率較低, 存在密文膨脹等問題, 只能適用于小數(shù)據(jù)規(guī)模場景, 無法在大規(guī)模數(shù)據(jù)場景中得到普遍應(yīng)用.

3.2.2 零知識證明

零知識證明(zero-knowledge proof) 在區(qū)塊鏈交易內(nèi)容隱私保護(hù)方面發(fā)揮了重要作用. 零知識證明[47,48]是一種涉及兩方或多方的密碼協(xié)議, 證明者能夠在不泄露任何秘密內(nèi)容的情況下向驗證者完成秘密信息的證明[49]. 目前很多方案如零幣和門羅幣[50]等都是用零知識證明來實現(xiàn)隱藏交易內(nèi)容的驗證.

零幣Zcash[25,32]使用zk-SNARKs[51,52]非交互式零知識證明完成隱藏交易的正確性驗證. zk-SNARKs 將任意計算條件用算術(shù)電路C表示, 輸入數(shù)據(jù)后, 0 或1 作為驗證結(jié)果返回. zk-SNARKs 在Zcash 系統(tǒng)中的應(yīng)用如圖8 所示. zk-SNARKs 主要有以下三個步驟:

圖8 Zcash 中的零知識證明協(xié)議Figure 8 Zero-knowledge proof in Zcash

(1) KeyGen(1λ,C)→(pk,vk). 輸入一個安全參數(shù)λ和F域-算術(shù)電路C, 生成零知識證明中的證明密鑰pk 和驗證密鑰vk.

(2) Prove(pk,x,a)→π. 輸入一個證明密鑰pk、公開信息x和證明者擁有的秘密信息a, 輸出一個非交互式證明π, 來表示證明者確實擁有某些知識.

(3) Verify(vk,x,π)→b. 輸入一個驗證密鑰vk 和公開信息x, 一個證明π, 如果驗證者被說服, 即他相信證明者確實擁有某種知識, 則驗證輸出為b=1.

表3 零知識證明系統(tǒng)比較Table 3 Comparison of three zero-knowledge proof systems

此外, Ma 等人提出了一種新的零知識證明方案NIZK[58], 該方案借鑒了Camenisch 等人于2008 年提出的基于Boneh-Boyen 簽名[59]的交互式范圍證明方案[60], 采用Fiat-Shamir 啟發(fā)式將方案構(gòu)造為非交互式零知識證明方案. 該方案大幅縮短了零知識證明的生成時間, 但生成的零知識證明信息長度更長.Ma 等人方案同其他零知識證明方案的性能比較如表4 所示.

方案使用jsnark[63]前端編譯工具生成電路, 電路規(guī)模在220量級. 通用零知識證明方案實現(xiàn)時選取的是橢圓曲線bn128 上的有限域, 滿足128 比特安全性. 表4 中的C為電路大小,u,l為限定明文消息空間大小的參數(shù), 明文消息空間為[0,2L) , 其中L=u×l.

表4 NIZK 同其他零知識證明方案的比較[58]Table 4 Comparison of NIZK scheme to existing ZKP systems [58]

3.2.3 環(huán)簽名

在Maxwell 提出的保密交易方案中采用了Borromean 環(huán)簽名[64]來實現(xiàn)承諾值的范圍證明. 在基于Borromean 環(huán)簽名的保密交易方案中, 范圍證明方案的思路為首先將要證明的金額v分解為二進(jìn)制形式,然后計算金額各位的承諾值, 并將承諾值作為公鑰生成環(huán)簽名, 接收方對簽名等進(jìn)行驗證判定交易是否有效. 假設(shè)金額v ∈[0,2n),n為公開參數(shù), 金額v的Pedersen 承諾為commit=kG+vH, 已知G,H ∈G,G是G 的生成元,H的離散對數(shù)未知. 證明者有承諾commit 以及k和v, 生成證明π表明v ∈[0,2n).Borromean 環(huán)簽名實現(xiàn)承諾金額范圍證明和驗證的具體步驟如下:

首先, 發(fā)送方根據(jù)金額v生成其范圍證明π:

綜上所述, 門羅幣使用環(huán)簽名技術(shù)實現(xiàn)了交易金額的范圍證明, 保證交易金額處于合理區(qū)間. 但基于Borromean 環(huán)簽名的范圍證明方案生成的證明長度較大, 證明長度與所要證明的區(qū)間上界成線性相關(guān), 交易大小主要受范圍證明長度影響, 導(dǎo)致效率較低. 因此最新的Monero 方案使用Bulletproofs 技術(shù)替換Borromean 環(huán)簽名, 優(yōu)化了范圍證明算法的性能, 基于Bulletproofs 方案的相關(guān)改進(jìn)算法[65]也被提出.Zcash 方案使用zk-SNARKs 零知識證明能夠在不泄露明文數(shù)據(jù)的情況下完成隱藏交易驗證, 僅需生成很小數(shù)據(jù)量的證明就可完成大量數(shù)據(jù)的驗證. 但零知識證明技術(shù)在提供了良好的交易內(nèi)容隱私保護(hù)的同時,也存在一些不足: 首先, 由于系統(tǒng)引入了零知識證明算法, 使得隱藏交易驗證算法的開銷增大, 吞吐量與響應(yīng)速度有待進(jìn)一步提高; 其次, zk-SNARKs 在系統(tǒng)初始化時需要信任中心安全地生成公共參數(shù), 存在初始化各方共謀偽造新幣的安全風(fēng)險, zk-STARKs 無需系統(tǒng)初始化, 并且是后量子安全的, 但其證明長度過長,在區(qū)塊鏈的實際應(yīng)用中有一定局限性; 此外, 以上這些方案均未考慮實際應(yīng)用中的交易內(nèi)容監(jiān)管問題.

3.3 隱藏交易監(jiān)管

為了解決區(qū)塊鏈隱私保護(hù)問題, 多種密碼技術(shù)應(yīng)用到區(qū)塊鏈系統(tǒng)中用于實現(xiàn)交易內(nèi)容隱藏和隱藏交易驗證, 但同時也對區(qū)塊鏈交易監(jiān)管提出了更多挑戰(zhàn). 基于公有鏈的密碼貨幣多強(qiáng)調(diào)隱私保護(hù), 無法實現(xiàn)交易內(nèi)容監(jiān)管, 為了滿足行業(yè)應(yīng)用的監(jiān)管需求, 一些具有監(jiān)管功能的隱私保護(hù)方案也陸續(xù)被提出[66-70], 例如PRCash[71]、zkLedger[72]、FabZK[24]、PGC[30]以及ACT[67]方案等.

PRCash[71]使用基于UTXO 的Mimblewimble 交易模型來構(gòu)建密態(tài)交易. 交易方使用交易金額的Perdersen 承諾在公開賬本中記錄交易, 同時系統(tǒng)引入監(jiān)管方, 基于用戶交易身份來限定用戶在一段時間內(nèi)的交易總額. 當(dāng)用戶向系統(tǒng)注冊時, 監(jiān)管方使用隨機(jī)化簽名(randomizable signature)[73]來為用戶公鑰pku簽發(fā)證書. 當(dāng)用戶接收到一筆新的交易輸出時, 如果用戶使用匿名身份進(jìn)行交易, 需通過私鑰sku和偽隨機(jī)函數(shù)(pseudorandom function)[74]生成匿名身份PIDe接收交易輸出, 同時通過零知識證明生成監(jiān)管證明信息, 以確保PIDe生成私鑰和簽發(fā)證書中公鑰的正確對應(yīng)以及匿名身份PIDe在當(dāng)前時段的合法性. 此外, 用戶還需累加PIDe身份對應(yīng)的所有UTXO 并通過范圍證明表明總額沒有超過限值; 如果用戶使用實名身份進(jìn)行交易, 需使用監(jiān)管方公鑰pkr加密用戶公鑰pku并通過零知識生成監(jiān)管證明信息,以確保加密的公鑰pku同之前簽發(fā)證書中的公鑰pku相同, 從而完成交易. 監(jiān)管方在接收到交易中的上述監(jiān)管證明信息后, 如果驗證通過即可確認(rèn)交易并寫入?yún)^(qū)塊. PRCash 方案提供了用戶派生身份的靈活驗證和匿名交易總額的有效監(jiān)管.

Naganuma 等人[69]在Zerocoin 協(xié)議的基礎(chǔ)上提出了可審計的Zerocoin 方案, 審計方能夠監(jiān)管某筆交易的交易軌跡. Zerocoin 在區(qū)塊鏈賬本中使用Pedersen 承諾來表示生成的密碼貨幣(coin), 為了實現(xiàn)監(jiān)管, 發(fā)送方發(fā)送交易的同時需要附帶審計信息. 審計信息包括: 用監(jiān)管方公鑰加密零幣承諾gyhz的一部分gy生成的密文Enc(pk,gy) 和一個零知識證明π:

零知識證明π用來防止發(fā)送方惡意地偽造審計密文. 交易方在貨幣支付過程中將y值作為貨幣序列號Serial 予以公開. 監(jiān)管方收到監(jiān)管信息后, 用私鑰解密Enc(pk,gy) 得到gy并根據(jù)π驗證密文真實性和監(jiān)管可靠性, 通過比較gy和gSerial將交易的收發(fā)方關(guān)聯(lián)起來, 實現(xiàn)交易軌跡監(jiān)管.

表5 zkLedger 賬本存儲結(jié)構(gòu)Table 5 Ledger structure of zkLedger

綜上所述, 目前PRCash、Naganuma、zkLedger、PGC 和ACT 等方案中的隱藏交易監(jiān)管主要通過構(gòu)建承諾值的零知識證明來實現(xiàn), 交易方使用承諾來隱藏交易金額, 監(jiān)管方使用交易方基于零知識證明生成的監(jiān)管證明信息進(jìn)行監(jiān)管規(guī)則驗證. 目前的監(jiān)管方案如表6 所示, 這些方案在保護(hù)交易內(nèi)容隱私的前提下實現(xiàn)了交易內(nèi)容面向不同規(guī)則的有效監(jiān)管, 如PRCash、Naganuma 和zkLedger 等主要設(shè)計了交易總額限制的監(jiān)管規(guī)則, PGC 方案則提供了總額限制、比例規(guī)則等更為多樣的監(jiān)管規(guī)則. 但上述方案仍存在一些問題: PRCash、zkLedger 等方案面向公有鏈結(jié)構(gòu)設(shè)計, 對于在聯(lián)盟鏈應(yīng)用場景中的使用仍需要進(jìn)一步優(yōu)化; FabZK 給出了Fabric 中的監(jiān)管架構(gòu)設(shè)計, 但該方案需引入額外的鏈外賬戶存儲并要求監(jiān)管方需保持實時在線, 這在實際應(yīng)用中具有一定的局限性; ACT 方案計算審計令牌時, 涉及的零知識證明生成時間較長, 如何優(yōu)化審計策略、提高審計效率需進(jìn)一步研究. 雖然上述方案均提供了一些審計規(guī)則, 但對于日益普及的區(qū)塊鏈應(yīng)用而言監(jiān)管規(guī)則仍顯不足, 如都無法滿足某些應(yīng)用場景下監(jiān)管方監(jiān)管每筆交易金額的需求.

表6 相關(guān)可監(jiān)管隱私保護(hù)方案對比Table 6 Comparison of privacy protection schemes with regulation

4 交易內(nèi)容和交易身份隱私保護(hù)的結(jié)合

此外, 通過將交易內(nèi)容和交易身份隱私保護(hù)方案相結(jié)合, 一些具有強(qiáng)隱私保護(hù)特性的區(qū)塊鏈交易系統(tǒng)也得到了廣泛應(yīng)用. 本節(jié)參考姚前等人[1]關(guān)于區(qū)塊鏈身份隱私的研究, 對于交易內(nèi)容和交易身份隱私保護(hù)技術(shù)的結(jié)合展開進(jìn)一步的分析討論.

(1) 同態(tài)密碼同無標(biāo)識交易的結(jié)合

無標(biāo)識交易技術(shù)是指在鏈上資產(chǎn)的表示(如UTXO) 中不包含資產(chǎn)所有者的身份標(biāo)識, 資產(chǎn)權(quán)屬變更過程中的交易確認(rèn)是由用戶采用資產(chǎn)表示中的秘密因子進(jìn)行相應(yīng)的密碼運(yùn)算來完成的, 接收方通過密碼運(yùn)算的結(jié)果來判斷資產(chǎn)權(quán)屬和交易確認(rèn)的正確性[1]. 公開賬本中記錄的UTXO 中不再存有標(biāo)識用戶身份的公鑰信息, 這使得所有基于交易地址的關(guān)聯(lián)分析技術(shù)失效, 尤其是增加了交易可鏈接性的分析難度. 基于Pedersen 承諾和無標(biāo)識交易技術(shù)構(gòu)建的Mimblewimble 方案[19]可有效地確保用戶交易隱私. 它通過同態(tài)承諾隱藏了交易金額, 并且利用承諾中的盲因子結(jié)合數(shù)字簽名實現(xiàn)了交易行為的確權(quán)和交易輸入輸出的平衡性驗證. Mimblewimble 在交易輸出承諾的構(gòu)建過程中指定接收方隨機(jī)秘密選擇交易輸出的盲化因子r, 并由此實現(xiàn)對該UTXO 的權(quán)屬控制. 由于這一過程帶來了輸入輸出承諾盲化因子的差值(excess), 因此也將礦工對交易平衡的等式驗證過程轉(zhuǎn)化為驗證交易雙方共同構(gòu)建以盲化因子差值為私鑰的正確簽名過程. 這一組合方案在開源密碼貨幣項目Grin[75]和Beam[76]中得到了應(yīng)用.

(2) 同態(tài)密碼同自主混幣的結(jié)合

“混幣” 機(jī)制是將真實交易者發(fā)起的交易(UTXO) 隱藏在一個交易集合中, 從而使得觀察者無法確認(rèn)真正的交易, 也即無法確認(rèn)同每一個UTXO 相關(guān)聯(lián)的用戶身份. 它是區(qū)塊鏈系統(tǒng)中實現(xiàn)交易身份隱藏的基本思想. 自主混幣是指真實交易者在混幣過程中無需第三方中心機(jī)構(gòu)和其他用戶的參與, 可自主完成混幣過程[1]. 自主混幣的實現(xiàn)機(jī)制為環(huán)簽名算法. 基于Pedersen 承諾的同態(tài)密碼方案結(jié)合自主混幣技術(shù)構(gòu)建的RingCT (ring confidential transaction) 方案可有效地確保用戶交易隱私. 它將同態(tài)承諾隱藏交易金額同可鏈接環(huán)簽名隱藏交易身份相結(jié)合, 通過可鏈接環(huán)簽名將真實交易者身份隱藏在匿名集合中并完成了支付確權(quán), 借助簽名可鏈接性實現(xiàn)了貨幣防雙花. 在交易內(nèi)容驗證方面采用同態(tài)承諾確保交易輸入輸出的平衡性驗證, 基于Bulletproofs 的零知識證明方案實現(xiàn)了交易金額的范圍證明. 這一組合方案在門羅幣[22]中得到了應(yīng)用.

(3) 信息加密同全局混幣的結(jié)合

全局混幣技術(shù)是將待支付貨幣的真?zhèn)悟炞C問題轉(zhuǎn)化為一個已發(fā)行貨幣列表的成員證明問題, 從而實現(xiàn)支付貨幣在全部貨幣中的混淆[1]. 基于對稱加密的交易信息加密方案結(jié)合全局混幣技術(shù)構(gòu)建的Zerocash方案可有效地確保用戶交易隱私. Zerocash 將系統(tǒng)中所有的貨幣承諾值構(gòu)建為一棵Merkle 樹, 當(dāng)真實交易者執(zhí)行交易時, 交易發(fā)送方通過零知識證明來確保支付貨幣為Merkle 樹中的成員并完成支付確權(quán), 從而實現(xiàn)了真實身份在全部用戶身份集合中的混淆. 在交易內(nèi)容隱私保護(hù)方面, 交易發(fā)送方首先使用Curve25519 密鑰協(xié)商協(xié)議協(xié)商對稱密鑰, 而后通過對稱加密將交易內(nèi)容秘密傳送給交易接收方, 并通過zk-SNARKs 零知識證明方案確保密態(tài)交易內(nèi)容的規(guī)則合法性驗證. 這一過程在保護(hù)交易內(nèi)容的同時也確保了交易接收方的身份隱私. 這一組合方案在零幣[25]中得到了應(yīng)用.

(4) 基于業(yè)務(wù)邏輯的數(shù)據(jù)隔離同可控匿名認(rèn)證的結(jié)合

可控匿名認(rèn)證是指在用戶身份標(biāo)識的建立和認(rèn)證過程中, 除監(jiān)管方以外不允許其他人確定交易者的真實身份. 在必要時, 監(jiān)管方可恢復(fù)出匿名化后交易方的真實身份[1]. 可控匿名認(rèn)證在聯(lián)盟鏈中得到了廣泛應(yīng)用, 通常用戶在實名申請后獲得一個匿名證書用于交易過程中的身份標(biāo)識, 監(jiān)管者在必要時可通過證書和實名注冊信息恢復(fù)出用戶的真實身份. 基于業(yè)務(wù)邏輯的數(shù)據(jù)隔離技術(shù)同可控匿名認(rèn)證方法[1]構(gòu)造的隱私保護(hù)方案可有效地確保用戶交易隱私. 聯(lián)盟鏈中的用戶在通過匿名證書認(rèn)證身份后, 可通過數(shù)據(jù)隔離機(jī)制控制隱私交易內(nèi)容的知悉范圍. 聯(lián)盟鏈中心化背書的特點(diǎn)也更便于實現(xiàn)身份的可控匿名和隱藏交易的快速驗證. 這一組合方案在聯(lián)盟鏈Hyperledger Fabric[40]和Corda[42]中得到了應(yīng)用.

5 總結(jié)與展望

區(qū)塊鏈系統(tǒng)中的交易內(nèi)容隱私保護(hù)技術(shù)已經(jīng)成為當(dāng)前研究的熱點(diǎn). 密碼學(xué)技術(shù)在實現(xiàn)區(qū)塊鏈的交易內(nèi)容保護(hù)和監(jiān)管上發(fā)揮著重要作用. 首先, 在交易內(nèi)容隱藏方面, 目前的區(qū)塊鏈系統(tǒng)多采用保密交易(confidential transaction) 和加密技術(shù). 已有的加密方案如一次性認(rèn)證對稱加密方案、屬性加密等提供了更細(xì)粒度的內(nèi)容隱私保護(hù), 但也給隱藏交易的驗證帶來了更多挑戰(zhàn). 聯(lián)盟鏈如Hyperledger Fabric, Corda和Quorum 等則通過通道隔離劃分“安全域” 以及鏈外私有數(shù)據(jù)存儲來解決交易內(nèi)容隱藏問題. 其次, 在隱藏交易驗證方面, 區(qū)塊鏈系統(tǒng)多采用基于零知識證明的范圍證明方案, 以及利用同態(tài)承諾方案的同態(tài)特性實現(xiàn)交易合法性和平衡性驗證, Hyperledger 等聯(lián)盟鏈則使用中心化背書方式來完成隱藏交易驗證. 最后, 目前的交易內(nèi)容監(jiān)管主要采用零知識證明技術(shù)通過構(gòu)造可驗證加密方案來實現(xiàn)隱藏內(nèi)容監(jiān)管.

隨著區(qū)塊鏈技術(shù)的深入普及和推廣, 區(qū)塊鏈交易內(nèi)容隱私保護(hù)技術(shù)在以下幾個方面也有待進(jìn)一步研究:

第一, 新型的區(qū)塊鏈交易內(nèi)容隱私保護(hù)算法的研究與設(shè)計一直是關(guān)注的熱點(diǎn). 隨著區(qū)塊鏈系統(tǒng)新應(yīng)用場景的不斷出現(xiàn), 需要設(shè)計滿足新需求的區(qū)塊鏈交易內(nèi)容隱私保護(hù)算法. 區(qū)塊鏈的應(yīng)用已不僅限于密碼貨幣的點(diǎn)對點(diǎn)支付場景, 多方協(xié)作、數(shù)據(jù)交易、身份認(rèn)證和隱私計算等新型應(yīng)用場景下的隱私保護(hù)需求更加多樣, 參與方數(shù)量更多, 交互方式更加多元, 保護(hù)內(nèi)容更加多樣. 例如: 目前的安全多方計算+ 區(qū)塊鏈的隱私計算方案受到廣泛關(guān)注, 區(qū)塊鏈系統(tǒng)為安全多方計算過程中的數(shù)據(jù)確權(quán)、可信審計和數(shù)據(jù)流通提供了有效的支撐, 未來隨著區(qū)塊鏈運(yùn)算性能和存儲容量的進(jìn)一步提高, 能否在確保隱私的條件下提供更為靈活的隱私計算方案也備受期待. 因此, 如何設(shè)計多應(yīng)用場景下細(xì)粒度隱私保護(hù)方案仍是未來的研究熱點(diǎn).

第二, 交易內(nèi)容隱私保護(hù)算法性能和安全性方面的不足也有待進(jìn)一步提高. 引入基于復(fù)雜密碼學(xué)算法的隱私保護(hù)方案一方面會降低原有區(qū)塊鏈系統(tǒng)的效率, 另一方面也帶來了安全證明方案難于構(gòu)建的問題.例如, 2019 年Zcash 零知識證明系統(tǒng)存在的缺陷[77]就會導(dǎo)致貨幣偽造的問題. 這些不足必然會限制其進(jìn)一步的大規(guī)模應(yīng)用. 因此, 如何設(shè)計更為高效的密碼算法、提出更為完備的安全模型、構(gòu)建更為嚴(yán)謹(jǐn)?shù)淖C明方案也是亟待解決的關(guān)鍵問題.

第三, 隨著區(qū)塊鏈技術(shù)在金融、政務(wù)、社會治理等領(lǐng)域的廣泛應(yīng)用, 對于交易過程的監(jiān)管需求日益增強(qiáng). 如何在監(jiān)管方及交易方共同參與模式下設(shè)計高效安全的交易內(nèi)容保護(hù)方案, 既確保交易方隱私又符合行業(yè)監(jiān)管要求, 達(dá)到隱私與監(jiān)管的平衡, 也有待進(jìn)一步研究.

第四, 在隱私保護(hù)算法實現(xiàn)層面, 通過引入專用密碼設(shè)備來提升零知識證明以及同態(tài)加密等算法的計算性能、引入可信執(zhí)行環(huán)境(如SGX) 為隱私保護(hù)方案提供安全的計算環(huán)境以彌補(bǔ)密碼方案的不足也具有很好的研究前景.

猜你喜歡
加密區(qū)塊證明
保護(hù)數(shù)據(jù)按需創(chuàng)建多種加密磁盤
《紅樓夢》的數(shù)字化述評——兼及區(qū)塊鏈的啟示
谷歌禁止加密貨幣應(yīng)用程序
一場區(qū)塊鏈引發(fā)的全民狂歡
區(qū)塊鏈助力企業(yè)創(chuàng)新
區(qū)塊鏈投機(jī)者
加密與解密
證明我們的存在
Nesbitt不等式的十七種證明
證明
大渡口区| 眉山市| 玉屏| 黑龙江省| 江孜县| 商丘市| 富蕴县| 九江市| 灵武市| 南平市| 驻马店市| 中西区| 贵溪市| 兴海县| 邳州市| 咸丰县| 汕尾市| 平江县| 广宁县| 安乡县| 柘城县| 威海市| 公主岭市| 马边| 郧西县| 古交市| 富源县| 金门县| 深水埗区| 广昌县| 福海县| 光泽县| 青川县| 阿城市| 垫江县| 峨边| 新乐市| 芷江| 清镇市| 左贡县| 镇康县|