999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

可監管的區塊鏈交易隱私保護方案

2023-10-09 01:47:10玄佳興李國民
計算機應用與軟件 2023年9期

玄佳興 李國民 李 軍

1(國網區塊鏈科技(北京)有限公司 北京 100053)

2(北京信息科技大學 北京 100192)

0 引 言

區塊鏈起源于中本聰(Satoshi Nakamoto)的奠基性論文《比特幣:一種點對點電子現金系統》[1],至此以比特為代表的區塊鏈技術進入了新的篇章[2]。比特幣(Bitcoin)是區塊鏈1.0的代表,主要解決貨幣和支付去中心化的問題,以太坊(Ethereum)[3]是區塊鏈2.0的代表,利用智能合約解決金融領域去中心化的信任問題。對于區塊鏈上的一筆交易,主要涉及發送者、接收者和交易金額三部分內容,但比特幣和以太坊都無法保證交易的隱私性[4],發送者和接收者的身份通過用戶公鑰地址實現,具有一定程度的匿名性,但能通過數據分析或機器學習方法挖掘交易主體的一些關聯信息[5],再結合一些背景知識獲得交易者的身份信息。另外,由于區塊鏈的交易金額完全暴露在鏈上,任何人都可通過區塊鏈全節點查詢訪問,攻擊者通過分析交易記錄可能獲取到交易賬戶的資金余額和資金流向等[6],無法保證交易的隱私性。目前也存在一些匿名數字貨幣,如門羅幣(Monero)、零幣(Zcash)、新上線的Beam和Grin等[7],采用環簽名、零知識證明、密碼承諾等技術保證交易發送者、接收者、交易金額的隱私性[8],但其隱私性保護程度過強,任何人都無法對其進行監管控制,可能被用于一些非法金融交易活動中,對社會造成一定的危害性。

本文融合多種密碼學技術,提出一種兼具隱私和監管功能的區塊鏈交易方案。利用概率公鑰加密的優勢,隱藏用戶的真實身份信息,利用密碼承諾方案和零知識證明技術實現區塊鏈交易的合法性驗證,監管機構則可通過解密獲取用戶的真實身份信息,實現了交易隱私保護和監管功能的要求。并且監管機構無須存儲用戶的真實身份和密鑰信息,大幅降低存儲和運算壓力,通過對比分析表明本文提出的區塊鏈交易方案具有簡單易用的特點,在數字貨幣、金融和能源等多種情景中具有實用價值。

1 預備知識

1.1 UTXO模型

UTXO(Unspent Transaction Output),即表示未花費的交易輸出[9]。在比特幣賬本上記錄了多筆的交易,每一筆交易都有若干個交易輸入(轉賬者),也就是資金來源,同時也有若干個交易輸出(收款者),也就是資金去向,這些產生的輸出,就是UTXO。圖1為比特幣的UXTO模型示例,其中交易1有1個1BTC的輸入,有2個分別為0.4BTC和0.5BTC的輸出,輸入與輸出的0.1BTC差值為交易手續費。交易2與交易1類似,并且其輸出又作為交易3的輸入,由此形成交易的鏈式結構。

圖1 比特幣UTXO交易模型示例

1.2 概率公鑰密碼體制

概率公鑰加密是一種非確定性密碼,對于相同的明文生成的密文隨機變化,在計算安全假設條件下,不可能在多項式時間內通過密文相關攻擊獲取明文的任何有效信息。Goldwasser等[10]利用二次剩余定理設計了一種概率公鑰密碼方案(簡稱GM概率公鑰加密算法),但GM概率公鑰體制的密文擴展率較大,傳輸效率較低。Blum等[11]給出了一種效率較高的概率加密方案(簡稱BG概率公鑰加密算法),大幅降低了密文數據膨脹,因此本文主要選用BG方案對用戶的身份信息進行加密。BG概率加密主要利用Blum-Blum-Shub(BBS)[12]生成器提升密文隨機性,算法詳細過程為:

加密算法:對于待加密明文消息x∈(Z2)m,加密過程為:

1) 隨機選擇種子so,利用BBS生成器產生m個隨機比特z1,z2,…,zm作為密鑰流。

3) 計算yi=(xi+zi) mod 2,其中1≤i≤m。

4) 密文為c=EK(x,r)=(y1,y2,…,ym,Sm+1)。

解密算法:解密c=(y1,y2,…,ym,sm+1)的過程如下:

5) 利用中國剩余定理計算r,滿足以下條件:

r≡b1modp和r≡b2modq。

6) 利用BBS生成器從種子so=r計算得到z1z2…zm。

7) 對于1≤i≤m計算xi=(yi+zi)mod 2。

8) 解密明文即為x=x1x2…xm。

1.3 基于身份的密碼體制

基于身份的密碼技術(Identity-Based Cryptography,IBC)[13]能夠有效地解決PKI數字證書管理的難題。在IBC密碼體制中,每一個實體的標識ID即為該用戶的公鑰,用戶的私鑰由KGC主公私鑰和用戶ID計算得出。本文采用國密SM9標準算法作為IBC的一個實例,下面對SM9數字簽名算法進行介紹[14]。

設P1為橢圓曲線加法循環群G1的生成元,P2為橢圓曲線加法循環群G2的生成元,H(·)為Hash函數,e(·)為雙線性對。假設A為簽名者,B為驗證者,SM9數字簽名過程如下:

簽名過程:設待簽名的消息為M,A簽名過程如下:

1) 計算g=e(P1,Ppub-s)。

2) 選擇隨機數r∈[1,N-1]。

3) 計算w=gr,h=H2(M‖w,N),l=(r-h)modN。

4) 計算S=[l]dsA,則M的簽名為(h,S)。

驗證過程:為了驗證消息M′的簽名(h′,S′),B執行以下過程:

1) 計算g=e(P1,Ppub-s)。

2) 計算t=gh′,h1=H(IDA,N)。

3) 計算P=[h1]P2+Ppub-s,u=e(S′,P),w′=u·t。

4) 計算h2=H2(M′‖w′,N),若h2=h′,則簽名驗證通過,否則失敗。

1.4 密碼承諾方案

密碼承諾是一個涉及承諾方和接收方的二階段交互協議,門羅幣中的Pedersen承諾是一種常用的滿足完美隱藏、計算綁定的同態承諾協議,用來保護交易金額的隱私,數據公式表述為:

P=r·G+v·H

(1)

式中:P為隱藏后的交易金額;G和H為橢圓曲線密碼中的基點;r為隨機數;v為交易金額,另外還需要利用Bulletproofs零知識證明技術[15],通過更加高效的方式實現交易金額的范圍證明。

2 可監管的區塊鏈交易隱私保護方案

本文融合UTXO交易模型、BG概率公鑰加密算法、IBC密碼體制和Pedersen承諾等技術,提出一種可監管的區塊鏈交易隱私保護方案,下面對設計過程進行具體介紹。

2.1 方案模型

本方案的參與交易主體如圖2所示,主要有:(1) 交易的發送者和接收者,希望能通過安全的交易方式保護自己的身份匿名性和交易金額的隱私;(2) 區塊鏈礦工,驗證交易的合法性并打包進區塊中,并通過共識機制存儲在區塊鏈上;(3) 監管機構,在必要時候追蹤交易的相關參與者及交易金融,用以打擊金融非法犯罪活動;(4) 第三方,通過某些技術手段竊取交易相關信息,以此獲取不當利益。

圖2 區塊鏈交易主體

方案包括以下7個算法:

BG.KeyGen(p,q):使用大素數p和q生成BG算法的公鑰pk和私鑰sk。

BG.Enc(pk,m):使用概率公鑰密碼BG算法的公鑰pk,對消息m加密得到密文。

BG.Dec(sk,ct):使用概率公鑰密碼BG算法的私鑰sk,對密文ct解密得到明文。

IBC.KeyGen(sk,id):使用SM9算法的主密鑰sk和用戶id,生成用戶私鑰。

IBC.Enc(pk,m):使用SM9算法的公鑰pk,對消息m加密得到密文。

IBC.Dec(sk,ct):使用SM9算法的私鑰sk,對密文ct解密得到明文。

IBC.Sign(sk,m):使用SM9算法的私鑰sk,對消息m簽名得到簽名值。

2.2 匿名身份實現

在方案初始化階段,監管機構需要生成三對公私鑰對:(1) 利用BG概率公鑰加密算法生成相應的私鑰SkBG和公鑰PkBG;(2) 監管機構作為IBC密碼體制中KGC的角色,生成主公鑰MPK和主私鑰MSK;(3) 定義IBC的身份標識為IDa,將IDa作為公鑰,基于IBC算法,利用主私鑰MSK生成對應的簽名私鑰Ska=IBC.KeyGen(MSK,IDa)。然后系統中的用戶通過可唯一標識身份的信息IDu向監管機構申請密鑰分發,IDu需要具有自證性,可以為用戶的郵箱地址、身份證號、手機號碼等。

監管機構在認證用戶的身份信息后,利用BG概率密碼算法公鑰PKBG加密用戶的身份信息IDu,生成AID1=BG.Enc(PkBG,IDu),為了確保用戶的IDu確定經過監管機構認證,需要監管機構對AID1進行簽名認證,生成AID2=IBC.Sign(Ska,AID1),定義AIDu=AID1‖AID2,由于AID1是將IDu利用BG概率公鑰加密算法得到,具有良好的隨機性,AID2為AID1經IBC簽名得到,因此AIDu也具有良好的隨機性,能夠有效隱藏用戶的真實身份信息IDu,實現身份的匿名性。

再將AIDu作為公鑰身份,基于IBC算法,監管機構利用主私鑰MSK生成用戶對應的私鑰Sku=IBC.KeyGen(MSK,AIDu),用戶的可自證的真實身份信息為IDu,計算得到的匿名身份信息為AIDu,相應的私鑰為Sku。由于采用BG概率公鑰加密算法,同一個IDu可以加密生成不同的AIDu,IDu和AIDu為一對多的關系,理論上同一個IDu可以生成無限多的AIDu,使用戶能夠持續更新AIDu,從而可以實現用戶身份的良好匿名性。

為了方便后續的描述,定義交易發送者和接收的身份標識分別為IDs和IDr,通過上述過程分別計算得到對應的匿名身份為AIDs和AIDr,私鑰為Sks和Skr。當發送者向接收者進行交易的時候,只需要利用Sks解鎖UTXO輸入腳本,將AIDr作為接收者地址,即可實現身份匿名性。

2.3 交易金額隱私保護

當發送者AIDs需要和接收者AIDr進行交易時,不失一般性,假如交易的結構如圖3所示。

圖3 UTXO交易結構

在該交易中,AIDs有兩個輸入,金額分別為vin1和vin2;有兩個輸出,分別為與AIDr進行的交易,金額為vout1,以及返給自己金額為vout2的找零費用,另外的vfee部分則為手續費,作為礦工打包交易的費用。

本文方案主要采用Pedersen承諾實現交易金額(vin1,vin2,vout1,vout2)的隱私保護,手續費vfee則對外公開。對于交易輸入,需要引入先前輸出,則有:

Pin1=a1G+vin1H

(2)

Pin2=a2G+vin2H

(3)

式中:(a1,vin1)和(a2,vin2)可由AIDs利用私鑰Sks解密得到。

對于輸出,發送者AIDs選擇兩個隨機數b1和b2,然后計算:

Pout1=b1G+vout1H

(4)

Pout2=b2G+vout2H

(5)

Pfee=vfeeG

(6)

Pout1和Pout2主要便于礦工驗證交易的合法性。為了使接收者獲取(b1,vout1)和(b2,vout2),需要分別利用接收者和發送者的公鑰對其加密,得到:

Cout1=IBC.Enc(AIDr,(b1,vout1))

(7)

Cout2=IBC.Enc(AIDs,(b1,vout2))

(8)

為了保證交易的合法性,需要保證:

vin1+vin2=vout1+vout2+vfee

(9)

則可以計算:

(Pin1+Pin2)-(Pout1+Pout2+Pfee)=

(a1+a2-b1-b2)H

(10)

定義交易的公鑰:

PkTx=(a1+a2-b1-b2)H

(11)

交易的私鑰為:

SkTx=(a1+a2-b1-b2)

(12)

定義整個交易為

MTx={Pin1,Pin2,(Pout1,Cout1),(Pout2,Cout2),vfee}

(13)

利用SM9簽名算法對交易簽名得到:

SigTx=IBC.Sign(SKTx,MTx)

(14)

另外,還需要對交易金額的范圍進行證明,避免出現負值情況,可以通過Bulletproofs零知識證明實現,由于涉及內容較為復雜,本文不再詳述,可參考文獻[15]。因此最終的交易可以表示為:

Tx={MTx,SigTx,Prange}

(15)

式中:Prange為交易金額范圍證明的相關內容。將Tx通過網絡對外廣播,礦工對其合法性進行驗證后,打包成塊并通過共識機制記錄在區塊鏈賬本上,接收者根據AIDr即可確認收到交易,然后利用私鑰Skr解密Cout1,獲取交易信息,由此在隱藏交易金額的情況下完成交易的整個過程。

2.4 交易合法性驗證

區塊鏈是去中心化的網絡,需要通過共識機制將交易打包,記錄在區塊鏈上。在共識過程中,礦工需要對交易的合法性進行驗證,主要包括參與者身份合法性和交易金額合法性。

(1) 身份合法性。身份合法性驗證包括發送者和接收者的身份合法性驗證。在UTXO模型中,發送者利用Sks解鎖UTXO輸入腳本,因此礦工只需要利用發送者匿名身份公鑰AIDs驗證解鎖腳本簽名的合法性即可。

為了防止發送者將交易發給某個不存在的非法地址上,造成資產流失,因此需要對接收者地址的合法性進行驗證。本文將接收者的匿名身份公鑰AIDr作為接收者的地址,且由前面內容可知:

AIDr=AID1‖AID2

(16)

其中:

AID1=BG.Enc(PkBG,IDu)

(17)

AID2=IBC.Sign(Ska,AID1)

(18)

AID2為監管機構利用其私鑰Ska對AID1進行的簽名,因此礦工需要利用監管機構身份公鑰IDa驗證AID2簽名的合法性即可,從而保證AIDr的身份的合法性。

(2) 交易金額合法性。交易金額合法性同樣需要驗證兩方面:輸入與輸出金額的相等;輸出金額在有效的范圍。

對于交易MTx和Tx礦工需要計算交易公鑰:

PkTx=(Pin1+Pin2)-(Pout1+Pout2+vfeeG)

(19)

然后利用PkTx驗證交易簽名SigTx的合法性,即可完成輸入與輸出金額相等的條件要求。為了保護輸出金額在有效的范圍內,需要利用現有Bulletproofs零知識證明技術對Prange進行驗證,可參考文獻[15]。

2.5 監管功能實現

區塊鏈交易隱私保護是相對的,主要防止惡意收集用戶信息的第三方,但對于監管機構而言,有時需要追蹤一些非法交易,用以打擊違法犯罪活動,因此需要保證交易的可監管性,監管內容包括參與交易者的身份和交易的金額。

參與交易者的匿名身份AIDu,但真實身份IDu是被隱藏的。根據:

AIDu=AID1‖AID2

(20)

AID1=BG.Enc(PkBG,IDu)

(21)

監管機構先通過AID2驗證身份認證合法性,然后利用其BG概率公鑰加密算法的私鑰SkBG解密AID1,即:

IDu=BG.Dec(SkBG,AID1)

(22)

即可獲取交易參與者的真實身份信息。

為了獲取交易金額信息,需要首先利用IBC算法。監管機構作為IBC密碼體制中KGC的角色,能夠計算接收者AIDr的私鑰Skr,即:

Skr=IBC.KeyGen(MSK,AIDr)

(23)

對于交易MTx和Tx,監管機構利用Skr解密Cout1,得到:

(b1,vout1)=IBC.Dec(Skr,Cout1)

(24)

監管機構獲取由此對AIDr的轉賬金額vout1。同理,對Cout2處理類似,從而實現對區塊鏈交易的查詢和監管功能。

3 方案分析

3.1 隱私保護能力

對于用戶的身份信息,通過AIDu隱私用戶的真實信息IDu,但若頻繁使用AIDu,比如在一個交易中,同時將AIDu當作交易輸入和輸出地址,很容易推斷出這是交易者給自己的找零信息。為了增強隱私性,本文采用BG概率隨機加密,每次加密可以隨機選擇不同的種子so,相同的IDu可以生成無數多的匿名AIDu地址,并且AIDu之間相互不可區分。因此用戶可以在不改變IDu的情況,由監管機構為其批量生成AIDu,在每次交易的時候,都對AIDu進行更換,第三方甚至無法辨別一個交易中的找零輸出,更無法追溯交易的整個流程,第三方無法推測任何有效信息,因此本文方案能實現較強的隱私保護能力。

3.2 性能分析

如前文和2.1節所述,本方案融合多種密碼學技術,為了評估本方案的開銷,我們采用處理時間作為性能度量,tbg_kgen表示BG算法的密鑰生成時間,tbg_enc表示BG算法的加密時間,tbg_dec表示BG算法的解密時間,tsm9_kgen表示SM9算法的密鑰生成時間,tsm9_enc表示SM9算法的加密時間,tsm9_dec表示SM9算法的解密時間,tsm9_sign表示SM9算法的簽名時間。另外,tped表示Pedersen承諾時間。

本文的方案包括匿名身份的實現、交易金額隱私保護、交易合法性驗證和監管功能實現,對應的計算開銷如表1所示。

表1 本文方案的計算開銷

本方案所用到的BG算法和SM9算法比較成熟,已經取得了廣泛的應用,其性能都有保障。通過表1可知,交易金額隱私保護和交易合法性驗證中用到的Pedersen承諾較多,占用一定的開銷,但Pedersen承諾現屬于區塊鏈隱私保護的關鍵技術和常用手段,因此,本方案在性能開銷方面屬于正常的可接受范圍之內。

3.3 比較分析

本節將所提出的可監管的區塊鏈匿名交易方案與現有區塊鏈交易方案進行比較分析,結果如表2所示。

表2 主流區塊鏈隱私保護技術

在現有的密碼貨幣中,比特幣和以太坊對身份的匿名性實現較弱,并且交易金額完全對外公開,不具備隱私保護功能。Dash采用混幣技術,通過主節點將多個交易的輸入輸出混合,但存在中心化的風險,若主節點被控制,可能導致用戶隱私泄露。Monero采用隱藏地址和環簽名技術,不再依賴中心化節點,但需要與其他用戶的公鑰混合,驗證相對復雜。Zcash采用zkSNARKs零知識證明方案,能夠達到非常強的匿名隱私保護,但是zkSNARKs方案實現很復雜,需要初始可信參數設置,生成證明非常耗時,影響了實用效率。Beam和Grin都是采用MimbleWimble協議,利用Pedersen承諾和聚合簽名技術,實現方式簡單,但需要交易雙方的交互過程,使用較為不便。

上述區塊鏈交易隱私保護方案都不具備可監管功能。文獻[16]提出一種適合于監管的多鏈模型,但是鏈節點間的通信較為復雜,并且超級鏈結構也使其失去了去中心化的特性,無法保護交易的隱私性。文獻[17]提出了采用了雙鏈結構的數字貨幣監管模型,結合聯盟鏈和公鏈,通過秘密共享保證交易的隱私,同時提供了可監管特性,但雙鏈結構實現較為復雜。

通過和現有的方案比較可知,本文方案不需要依賴中心化的主節點,不需要引入環簽名其他的公鑰,不需要實現復雜的zkSNARKs證明過程,不需要繁瑣的交互過程,也不需要復雜的多鏈結構,通過借助概率公鑰加密、IBC密碼體制和Pedersen承諾,使區塊鏈交易兼具隱私保護和監管功能,并且監管機構無須存儲用戶的真實身份和密鑰信息,大幅降低存儲和運算壓力,具有簡單實用的特點。

4 結 語

為了解決區塊鏈交易中實現隱私保護和監管要求的平衡問題,本文融合多種密碼學技術,利用概率公鑰密碼算法、IBC密碼體制、Pedersen承諾和Bulletproofs零知識證明技術等,提出一種兼具隱私和監管功能的區塊鏈交易方案。本文方案可作為獨立模塊應用在現有區塊鏈技術中。安全性能分析表明本文區塊鏈交易方案具有簡單和實用的特點,在數字資產、能源交易等領域中具有廣泛的應用價值。

主站蜘蛛池模板: 欧美中日韩在线| 永久免费精品视频| aaa国产一级毛片| 久久视精品| 精品欧美一区二区三区在线| 日韩欧美中文字幕在线精品| 波多野结衣第一页| 日韩一区精品视频一区二区| 激情六月丁香婷婷四房播| 亚洲日本中文字幕乱码中文| 天天色综网| 麻豆国产在线不卡一区二区| 久久无码av三级| 色欲色欲久久综合网| 成人亚洲天堂| 亚洲综合久久一本伊一区| 日韩av无码精品专区| 国产精欧美一区二区三区| 少妇人妻无码首页| 91精品伊人久久大香线蕉| 日本精品视频| 亚洲天堂视频在线播放| www.91在线播放| 91精品视频网站| 亚洲a级在线观看| 日韩激情成人| 99无码中文字幕视频| 亚洲综合精品香蕉久久网| 无码人中文字幕| 亚洲第一区欧美国产综合 | 国产精品私拍99pans大尺度| 91麻豆久久久| 国产凹凸一区在线观看视频| 性网站在线观看| 啪啪永久免费av| 国产成人亚洲综合A∨在线播放| 亚洲精品欧美重口| 亚洲AⅤ综合在线欧美一区| 91无码人妻精品一区| 国产成人成人一区二区| 亚洲一区二区日韩欧美gif| 国产在线观看成人91| 国产欧美日韩视频怡春院| 国产精品男人的天堂| 99久久精品免费看国产免费软件 | 免费在线观看av| 亚洲色无码专线精品观看| 色悠久久久久久久综合网伊人| 国产AV无码专区亚洲A∨毛片| 日韩欧美视频第一区在线观看| 欧美一级视频免费| 国产特级毛片| 国产精品无码久久久久AV| 日本亚洲欧美在线| 一级毛片免费高清视频| 中文国产成人精品久久| 久久久久中文字幕精品视频| 中国毛片网| 青青草国产在线视频| 国产91精品调教在线播放| 国产91九色在线播放| a毛片免费观看| 国产网站一区二区三区| 日本免费一区视频| 最近最新中文字幕免费的一页| 欧美yw精品日本国产精品| 亚洲欧美另类中文字幕| 国产精鲁鲁网在线视频| 妇女自拍偷自拍亚洲精品| 日韩色图在线观看| 美女黄网十八禁免费看| a亚洲天堂| 精品一区二区三区无码视频无码| 99热这里只有精品2| a在线亚洲男人的天堂试看| a毛片基地免费大全| 亚洲无线视频| 毛片一级在线| 男女男精品视频| 中国国产A一级毛片| 成年人免费国产视频| 欲色天天综合网|