一种高效且可监管的隐私交易方案

杨敏 ,  徐长通 ,  夏喆 ,  王丽 ,  孟庆树

武汉大学学报(理学版) ›› 2023, Vol. 69 ›› Issue (1) : 39 -50.

PDF (685KB)
武汉大学学报(理学版) ›› 2023, Vol. 69 ›› Issue (1) : 39 -50. DOI: 10.14188/j.1671-8836.2021.0315
信息安全

一种高效且可监管的隐私交易方案

作者信息 +

An Efficient and Regulatable Confidential Transaction Scheme

Author information +
文章历史 +
PDF (700K)

摘要

隐私保护是区块链研究的热点问题,大量区块链项目的交易信息以明文的形式储存在链上,泄露了相关的交易信息,不能保障用户的隐私,也阻碍了区块链技术在金融等实际应用中的落地。因此如何有效地保护交易的隐私性引起了广泛研究。在分析Paillier算法解密原理的基础上,结合Paillier加密算法与ElGamal加密算法提出了同态加密算法PailGamal,该算法既支持密文直接解密,又支持监管方对所有密文进行监管。结合该PailGamal算法与范围证明方案Bulletproofs设计了一种可监管且高效的隐私交易方案。该交易方案使用PailGamal算法对交易金额进行加密,除了监管方和交易双方外,其他任何人无法知晓交易金额,而且利用范围证明技术在提供隐私保护的同时保证了数据的可用性和合法性;监管方既可以监管每一笔交易的金额,也可以监管一段时间的金额,既达到监管目的,又有效保护用户隐私。由于交易接收方可以直接解密任意交易金额,该方案从博弈论的角度将密文合法性检查放到链下进行,减少了交易的链上数据量。

Abstract

Privacy has been widely studied in the blockchain projects. However,the transactions information is stored in plaintext in the blockchain for public verification, which will leak relevant transaction information and cannot protect the privacy of users. The possibility of privacy leakage may severely hinder the implementation of blockchain in practice. Hence, how to securely and effectively protect the privacy of transactions is worth further research. In this paper, we proposed a homomorphic encryption algorithm PailGamal based on the analysis of decryption of Paillier algorithm and analysis of ElGamal algorithm. PailGamal supports both the direct decryption of ciphertext and the regulation of all transaction information by the regulator.Then we combine the PailGamal with the range proof scheme Bulletproofs to design a regulatable and efficient confidential transaction scheme. In this scheme, PailGamal is used to encrypt the transaction amount, and no one else can know the transaction amount except for the regulator and transaction participants; combined with the range proof, the data availability and legality are guaranteed while protecting user privacy; the regulator can not only supervise the amount of each transaction, but also supervise the sum amount for a period of time, which not only achieves the purpose of regulation, but also effectively protects user privacy; since the receiver can directly decrypt any transaction amount, we put the ciphertext legality check off-chain from the perspective of game theory, which further reduces the amount of on-chain data of the transaction.

关键词

区块链 / 隐私交易 / 可监管 / 零知识证明 / 同态加密

Key words

blockchain / confidential transaction / regulatable / zero-knowledge proof / homomorphic encryption

引用本文

引用格式 ▾
杨敏,徐长通,夏喆,王丽,孟庆树. 一种高效且可监管的隐私交易方案[J]. 武汉大学学报(理学版), 2023, 69(1): 39-50 DOI:10.14188/j.1671-8836.2021.0315

登录浏览全文

4963

注册一个新账户 忘记密码

0  引 言

目前大多数区块链系统的交易是以明文形式广播并存储在区块链账本上的,例如比特币[1]和以太坊[2],每个用户都可以访问。由此导致链上数据隐私泄露的问题[3],如数字货币中,攻击者能够通过储存在区块链上的交易记录分析一个用户的交易习惯;金融领域的应用中,攻击者不仅能够借助链上内容分析出用户的个人交易信息,还能推断出整个金融市场的宏观趋势;在能源行业应用中,交易记录可能会泄露能源交换信息。如果不能解决隐私泄露问题,用户将不愿意将业务上链,这意味着隐私泄露已经严重制约区块链应用的落地。为了保护交易隐私,相关组织提出了许多强制性规范,如中国人民银行[4]提出了明确要求,规定应对交易内容信息以及交易方信息至少其中一项进行加密,仅交易双方及审计方对隐私交易具有解密验证的能力。所以开展交易的隐私保护至关重要。

1  相关研究

交易的隐私可分为两个方面[5]:一是匿名性(anonymity),即交易中的交易方是匿名的,发送方和接收方的身份只有交易双方和监管者可见;二是机密性(confidentiality),即交易的金额是以密文形式上链,只有交易双方和监管者可以得到正确的交易金额。近年来学术界对此进行了大量的研究。

在提升交易机密性的研究上,Maxwell[6]第一个提出了隐私交易(confidential transaction)并将它应用在比特币上,通过Pedersen承诺[7]和OR-proof建立支付机制,隐藏交易金额,并对Pedersen承诺使用OR-proof做范围证明保证交易的正确性。之后Chen等[8]提出PGC,设计了twisted ElGamal,将ElGamal算法一部分输出转化为Pedersen承诺,直接用目前最好的范围证明方案Bulletproofs[5]对承诺进行范围证明。在保证交易匿名性的研究上,有大量的工作通过混币的机制提升匿名性,比如Coinjoin[9]等;也有大量的工作同时关注交易的机密性和匿名性,门罗币(Monero)[10]使用了和Maxwell相似的方法保证机密性,用环签名[11]和隐蔽地址[12]增强了交易的匿名性,不过门罗币使用的环签名大小随着环成员的增加而线性增加,导致交易数据量增加。基于Zerocash[13]协议的Zcash提供了两种交易模式:一种是类似比特币透明的交易,另一种是通过zk-SNARKs[14]零知识证明方法实现隐私交易,目前Zcash生成交易时间较长而且使用zk-SNARKs需要提前生成一个较大的公共参考字符串(common reference strings,CRS)。Fauzi等[15]提出的Quisquis是一种匿名隐私交易系统,该系统使用一次性账户和洗牌(shuffle)方法实现匿名性,使用ElGamal承诺完成保密性,但面临抢先攻击等问题。Bünz等[16]提出了应用于以太坊的智能合约Zether,他们使用加法同态形式的ElGamal加密余额和转账金额,使用环签名确保匿名性,但Zether中的Σ⁃Bullets需要针对特定的问题设计一个比较复杂的Sigma协议[17]

交易系统提供隐私保护的同时,也应符合监管的要求[1819]。一个简单的监管方案是让交易方提供私钥给监管方,不过这存在极大的安全隐患,并且不符合隐私保护的政策。Zcash中的隐私交易[20]需要为监管者额外生成密钥,并用监管者密钥加密交易金额,而监管者必须用私钥解密每个交易密文来达到监管的目的。PGC[8]中提到可以用范围证明和零知识证明的方法确定满足监管的需求。不过监管方无法获取交易的具体金额,监管的内容受限,导致部分审计、统计等功能无法完成。Narula等[21]提出的zkLedger在保证交易隐私的同时可完成审计的需求,不过他们的设计需要更改用户交易账本的结构,这样就不能直接用于比特币等公链,同时交易和审计的复杂度较高。也有一些隐私保护的方案,存在匿名性或者隐私性太强而导致被滥用的状况。如Pedersen承诺,如果不法分子利用它过强的隐私性进行洗钱等交易频率高、数额大的交易,监管方得不到相关信息,这些违法行为就难以察觉、控制。因此如何实现可控隐私,在保障用户交易隐私的情况下给予监管方更高的权限是一个重要挑战。

根据文献[22]的调查,美国证监会(SEC)、美国联邦调查局(FBI)、美国金融消费者保护局(CFPB)等执法机构,对在区块链上进行的金融行为采取过监管行动,涉及反洗钱、偷税等多个问题。在近年来发展迅速的去中心化金融(decentralized finance,Defi)行业,加强监管的需求更为迫切[23]

为了在保护交易隐私的情况下方便监管,比如监管方能通过链上地址联系到具体个人,而太强的匿名性会给监管带来额外的负担,所以我们主要研究提升交易的机密性。目前实现交易机密性的方案主要可分为两种,一种是基于承诺的方案,另一种基于公钥加密。在基于承诺的方案中,承诺的打开值(openings)必须通过额外信道传输给接收者,如果接收方在某一笔交易中未能打开承诺,可能导致整个账户后续无法使用。基于公钥加密的方案中,最近研究较多的是基于ElGamal加密的方案。使用了加法同态形式的ElGamal加密方案的好处是密文部分既能保密交易金额、进行同态计算,又能解密出交易金额。不同于基于Pedersen承诺的方案可以直接使用Bulletproofs,基于公钥加密的方案需要解决密文与Bulletproofs结合的问题。基于ElGamal加密的三个方案,即文献[81516]中的方案,都需要在解密后计算一个离散对数难题才能从中得到交易金额,这只有在交易金额较小(小于232)时才容易实现。除了交易金额的限制外,还需要生产新的随机数来重新加密发送方的余额,这存在三个缺点:1) 需要对金额重新加密,并用私钥对两个密文进行相等性证明,会带来一些安全隐患;2) 重新加密增加了额外的计算量;3) 新的密文增加了上链内容。

在基于ElGamal加密的方案[81516]中,需要计算一个离散对数难题来得到交易金额,在交易金额很大时计算的难度会大大增加。为此我们提出了一种交易金额m可直接计算、监管的新方法PailGamal(结合了Paillier加密[24]和ElGamal加密)。其中密文形式为C1=pkr0 mod n2,C2=kmhr0 mod n2C3=pkr1 mod n2,C4=kr0hr1 mod n2。密文C2C4通过全局参数h, k确保了所有用户的密文均可进行同态加法,同时我们设计了Sigma协议将Bulletproofs与FO承诺格式[25]的密文C2C4结合。此外,我们提出了一种基于博弈论的思路来进一步减少上链密文,即发送方无需对密文做正确性证明。如果接收方发现密文不正确,可以向区块链提交ZK-proof来证明这是一笔无效的交易,发送方将损失代币并且不会对交易系统造成损害。根据博弈论的思路,发送方不会构造无效的密文,因此不需要为密文的正确性生成证明,而是由接收方来检验密文的正确性。新的解决方案在保证交易安全性和正确性的同时,大大减少了上链数据。

Paillier等[26]提出了Paillier加密和ElGamal加密相结合的加密方案,其中私钥也可以通过管理员私钥计算得到,该方案主要基于ElGamal算法,其中密文形式为(m·pkr,gr)pk=gsk mod n2,解密过程也与ElGamal算法相同,更像是把ElGamal算法扩展到n2*。我们的可监管PailGamal方案中的加解密算法依赖两个算法的原理,更偏重于Paillier算法[24],该算法本身具有独立的意义。为了赋予监管者比普通用户更大的权力,在PailGamal中,拥有系统私钥的监管者可以像文献[26]一样计算用户私钥。得到用户私钥的监管者可以解密该用户在一段时间内的总交易额或者选择性地解密单独几笔交易来进行监管,正常情况下只需要对一段时间内的交易进行监管,就可以保护用户的隐私。一旦发现了异常情况,才对用户的每一笔交易进行监管。

我们的贡献如下:1) 提出PailGamal同态加密算法,可直接解密获得明文;2) 根据PailGamal算法设计了一种交易金额可直接解密、支持对交易进行各种合法性证明、监管方可进行各种时间尺度上监管的隐私交易方案;3) 提出一种将Bulletproofs范围证明协议应用在FO承诺上的方案,并且可以推广到其他密文格式;4) 提出一种基于博弈论的方法减少链上交易数据量。

2  预备知识

2.1 所用符号

本文使用λ表示安全参数,一个可忽略的概率写作neglλ。令GroupGen为一个多项式时间的算法,输入为1λ,输出为(k,n,Zn2*)n为两个大素数的积,是公开模数,Zn2*表示与n2互素且小于n2的自然数构成的乘法群。令xRZp表示从Zp随机选取一个数x

2.2 判定性Diffie-Hellman假设

𝔾是阶为大素数p的群,g𝔾的生成元,选取x,y,zRZp,则随机四元组RL=g,gx,gy,gz𝔾4和四元组D=g,gx,gy,gxy𝔾 4(DH(Diffie-Hellman)四元组)是计算上不可区分的,称为DDH(Decisional Diffie-Hellman)假设。

2.3 承诺方案介绍

非交互式承诺方案由发送方和接收方组成,主要分为三个阶段:

Setup1λ:输入安全参数λ,输出模型中所需要的公开参数pp,其中定义了可选消息m的范围,随机数r的范围,承诺c的范围由mr来决定。

Comm,r:发送方对消息m和随机数r进行承诺,计算c=Comm,r,发送c给接收方。

Openc,m,r:发送方将m,r发送给接收方,接收方验证承诺是否正确,如果相等则接受,否则拒绝。

承诺的同态性:指的是承诺方案满足同态性。如果对于消息m1,m2p,随机数r1,r2Zp,满足下式

Comm1,r1Comm2,r2=Comm1+m2,r1+r2

则表示承诺方案满足加法同态,其中表示一种运算方法,如乘法。

2.3.1 Pedersen承诺

在阶为p的循环群𝔾中,选取g,hR𝔾,Pedersen承诺可以计算Zp中元素的承诺值。

承诺:对于输入的消息mZp,选取rRZp,计算c=gmhr

验证:为了验证承诺c的正确性,需要提供m,r。如果c=gmhr,接收方接受对消息m的承诺,否则拒绝。

在离散对数假设下,Pedersen承诺具有完美隐藏性和计算绑定性。同时Pedersen承诺满足加法同态性。

2.3.2 Fujisaki⁃Okamoto承诺(简称FO承诺)

设Alice和Bob不知n的分解,gZn*,h(g)g,h的阶是足够大的素数,这使得在他们生成循环群中计算离散对数是计算不可行的。Alice不知logghloghg,选取rR{-2sn+1,2sn-1},计算Ex,r=gxhr mod n,发送E(x,r)给Bob作为对x的承诺。Alice在不知道n的分解和logg h的情况下,不可能找到x1x2满足Ex1,r1=Ex2,r2;Bob也不可能从E(x,r)中获得关于x的任何信息,该协议是统计安全的,称该承诺方案为FO承诺。

2.4 零知识证明介绍

零知识证明系统由两方参与,分别称为证明者(Prover,简称P)和验证者(Verifier,简称V)。其中P知道某一秘密,PV经过若干轮的交互后,可以使V相信P的确掌握这一秘密,而不泄露除了该陈述为真之外的任何信息。比如P可以说服V一笔隐私交易是有效的,而不泄露具体的交易金额。零知识证明可以由以下三个概率多项式时间(probabilistic polynomial time,PPT)算法Setup,P,V组成。

Setup算法输入是1λ,输出证明中所用到的公开参数pp,如公共参考串CRS。令RX×W是可在多项式时间内判别的NP(non-deterministic polynomial)关系,wW是陈述x的证据,可以将依赖公共参数pp的关系的NP语言L定义为

Lpp=x|w:x,wRpp

使用tr<Ps,Vt>表示在证明人和验证者之间执行的交互,其中P的输入是sV的输入是t。用<Ps,Vt>=b表示验证者接受或拒绝,b=1时接受,b=0时拒绝。

任何零知识应用都要满足以下三个要求:

1) 完备性:如果陈述正确且输入为真,诚实的验证者将通过验证。即对于任意x,wRpp,有以下关系成立:

Pr <Px,w,Vx>=1=1

2) 可靠性:如果陈述输入为假,则不能通过任何作弊证明使得验证者通过验证。即对于任意xL,所有不诚实的证明人P*,有以下关系成立

Pr <P*x,Vx>=1neglλ

3) 零知识性:除了相应的陈述外,其他人不能获取关于输入的任何信息。

公开掷币(public coin):如果每个来自诚实验证者的消息都是通过随机抛硬币产生的真随机数,称这个协议是公开掷币的。

范围证明:对处于消息空间(message space)M、随机数空间(randomness space)S的承诺方案Setup,Com来说,一个零知识范围证明符合以下定义

L={c|mM,rR s.t.c=Comm,rma,b}

Bulletproofs:Bulletproofs是一个基于内积论证构造的范围证明协议,具有高效且不需要可信设置等特点。对于Pedersen承诺格式的密文,Bulletproofs可以快速证明承诺中的消息m在特定的范围内。

Sigma协议:Sigma协议用于PV证明P知道某些秘密,协议的主要流程为以下几步:

1) 承诺:P计算一个承诺a

2) 挑战:V选择随机挑战e发送给P

3) 回应:收到挑战e后,P计算回应z发送给V

4) 验证:V检查回应,输出接受或者拒绝。

一个Sigma协议满足标准的完备性(standard completeness)、特殊可靠性(special soundness)和零知识性。

特殊可靠性:对于任意x、正确的a,e,za,e',z',其中ee',可以快速计算出其中的证据w

完美的特殊诚实验证者零知识(perfect special honest-verifier zero-knowledge,SHVZK):如果存在一个概率多项式时间的模拟器S对于交互的敌手𝒜1,𝒜2满足以下条件

Pr[x,wRpp;𝒜2tr=1ppSetup(λ)

x,w𝒜1pp;tr<P*x,w,Vx>]=

Pr[x,wRpp;𝒜2tr=1ppSetup(λ)

x,w𝒜1pp;trSx]

则称这个公开掷币知识论证(Setup,P,V)是SHVZK知识论证。

在这个定义中,对于有效的证据和陈述来说,敌手无法区分其是真实的还是模拟的,即可说明证明系统是零知识的。

3  安全模型

本节主要描述了隐私交易系统满足的安全性要求以及交互过程中敌手拥有的能力。

为了简洁明了地描述出我们所强调的部分,参考Fauzi等[15]工作,本文中只分析交易层的安全性,而不关注网络层和共识层的安全性问题。正如PGC[8]和Zether[16]中提到的,隐私交易系统需要满足正确性、保密性和合理性。正确性要求敌手无法伪造出一笔交易,交易只能通过诚实的发送方产生,即攻击者无法提交一笔交易使得诚实账户的金额减少,攻击成功意味着攻击者可以计算出诚实账户的私钥。保密性要求敌手无法获取交易的金额,同时不能以不可忽略的概率区分出加密金额是m0还是m1。合理性要求发送方不可以产生一个不合法但是通过验证的交易,无法自己作恶。

同时我们定义了敌手可以访问的谕言机来描述交互过程中敌手所拥有的能力。比如敌手可以控制一个诚实的用户完成一笔交易或者敌手自己发起一笔交易。敌手可以通过诚实的用户请求Otransact谕言机,发起一笔特定的交易,或者注入恶意交易到系统中,也可以通过Odisclose谕言机获取系统中任意账户的私钥,不过不能获取挑战阶段所用到的账户的私钥。敌手可以访问谕言机的能力定义如下。

Oregister:敌手𝒜 向谕言机发起请求来获取一个诚实的账户,挑战者𝒞将请求的结果放在一个初始为空的诚实用户列表Thonest中。接收到请求后,𝒞的响应如下:𝒞生成序列号i和一对公私钥pki,ski,其中:pkii的公钥,skii的私钥,把(i,pki,ski,balance,C)返回给𝒜,并在Thonest中记录下来,其中C表示加密后的余额balance

Odisclosepk𝒜 使用一个诚实账户的公钥向谕言机查询,如果pkiThonest中,将其从Thonest移除并将其加入到恶意用户列表Tcorrupt中,同时将i,pki,ski,balancei,C返回给𝒜,这表示敌手可以控制一个诚实账户。

Otransactpks,pkr,v𝒜 使用参数pks,pkr,v向这个谕言机请求执行一笔隐私交易,pksThonest。收到请求后𝒞的响应如下:若v<0v>balances𝒞返回0。否则𝒞执行txTransactsks,pks,pkr,v,并更新相关的账户状态,并将tx返回给𝒜。这表示敌手可以指导诚实账户发起一笔特定交易。

Overifytx:𝒜 输入一笔交易,如果这是一笔有效交易,𝒞返回1,否则𝒞返回0。

Oinjectpks,pkr,v𝒜使用参数pks,pkr,v向这个谕言机请求执行一笔隐私交易,其中pksTcorrupt。如果VerifyTXtx=1𝒞更新相关账户的状态。这表示𝒜可以自己生成一笔交易(可能是恶意交易)。

4  构建PailGamal隐私交易系统

本文使用PailGamal同态加密算法加密交易金额和用户余额,通过零知识证明的方法来保证交易金额和用户余额的正确性,然后通过对交易签名认证这笔交易,同时接收方也可以公开相关信息举报恶意交易;在需要实施监管时,监管方可以用系统私钥计算出用户私钥,进而解密出用户对应交易信息进行监管。我们使用的范围证明方案Bulletproofs无法直接应用在非Pedersen承诺格式的密文上,采用零知识证明的方法证明了Pedersen承诺与PailGamal密文包含相同的秘密,并详细介绍了整个设计中用到的零知识证明方案。

4.1 PailGamal算法

Setup1λ

首先生成两个安全素数p,q。令n=pqu=lcmp-1,q-1u为系统私钥,由可信机构保管(监管者)。αZn2*表示nα阶元素的集合,表示α=1,,u的不相交联合。然后随机选择一个生成元g1g1满足gcdLg1u mod n2,n=1。计算k=g1u mod n2,选择随机数rZn2*,计算h=g1r mod n2,使h满足gcdLhu mod n2,n=1。其中,lcm(a,b)表示求ab的最小公倍数,gcd(a,b)表示求ab的最大公约数。

KeyGen

可信的监管者选择skZun*作为用户私钥。出于监管目的,监管者可以用系统私钥u计算用户的私钥,sk<n。之后监管者计算pk=hsk-1  mod n2并通过安全通道将pk,sk发送给用户。

Encm,r

对于明文m,选取随机数r0,r1<n,并计算C1=pkr0 mod n2,C2=kmhr0 mod n2,C3=pkr1 mod n2,C4=kr0hr1 mod n2。所得到的密文为C1,C2,C3,C4,其中密文C2,C4部分为FO承诺的形式。

DecC1,C2,C3,C4,sk

解密得到m的方式为:Cm=C2/C1sk=km mod n,m=LCm mod n2/Lk mod n2,对随机数r0的解密为Cr0=C4/C3sk=kr0 mod n2,r0=LCr0 mod n2/Lk mod n2

该算法满足正确性和加法同态性,而且无需计算一个离散对数难题[27],交易金额较大时也可快速解密。对于C2中的r0,其模数或h的阶数为un,而对于C4中的r0,其模数或k的阶数为n。为了在应用中保持算法的加法同态性,我们建议r0,r1的长度是n长度的一半,同时该算法满足在DDH假设下的IND-CPA安全,具体证明见附录A.1。出于安全考虑,选择secp256k1曲线上的ECDSA作为签名方案。

4.2 交易系统的构建

Setup1λ

输入一个安全参数λ,生成加密和零知识证明所用到的相关参数。

Account Initialization(1λ)

用户从可信方获得pk,sk。然后根据本文的设计生成账户,计算E0=Encpk,m0,r0作为账户的初始余额,其中m0=0r0为对应的随机数。

Transactsks,pks,pkr,m

输入发送方的公私钥对pks,sks和接收方的公钥pkr,交易金额m。发送方当前余额密文为Es*=pksr*,km*hr*,其中m*,r*表示了发送方当前的余额和对应的随机数。具体的交易过程如下。

发送方端:发送方首先检查是否m1,2n-1m*1,2n-1,验证通过后分别用pkspkr加密m得到Es=C1=pksr0,C2=kmhr0,Er=C1=pkrr0,C2=kmhr0,C3=pkrr1,C4=kr0hr1,交易金额的密文共有5个。发送方交易后的余额密文Es'=pksr',km*-mhr*-r0=km'hr'由两个部分组成,其中r0可以直接计算得出。因为每笔交易的r0都可解,可以认为发送方余额中的随机数已知,r'可计算。同时需要发送方用零知识证明的方法证明两个部分:(1) 对交易金额m进行范围证明,交易金额在规定的范围内,证明完成后得到证据π1;(2) 对发送方现在的余额进行范围证明,现有余额要大于零,证明完成后得到证据π2。即证明以下陈述成立(详细过程见4.5.1节)。

Srange1={pks,Es: r0,r1,m s.t. Es=Encpks,m,r0,r1m1,2n-1}
Srange2={pks,Es': r',m' s.t.Es'=Encpks,m',r'm'1,2n-1}

之后用发送方私钥对这笔交易tx=pks,pkr,Es,Es',Er,π1,π2签名,得到sig,输出sig和交易信息tx。在这里发送方不需要做出交易密文的正确性证明,即不需要证明EsEr是用双方公钥加密了相同的m,r0,而是交给接收方验证密文的正确性,即下文ConfirmTXtx过程。所以发送方只需要将交易的密文(C1=pkr0,C2=kmhr0,C3=pkr1,C4=kr0hr1)和聚合范围证明的证据上链即可,大大减少了上链的数据量。

VeirfyTXtx,sig

用发送方的公钥验证sig的合法性,验证Es'=Es*/Es,验证π1,π2是否有效,通过验证后将pks,pkr,Es,Es',Er,π1,π2,sig上链。

ConfirmTXtx

接收方在链上看到交易信息后验证Es'=Es*/Es,验证π1,π2是否有效。对Er解密得到kr¯0=Er4/Er3sk,km¯=Er2/Er1sk。之后接收方验证km¯hr¯0是否与接收到Er2中的kmhr0相同,如果相同,视为一笔正确交易,接收方更新账户的余额和随机数;如果不同,则判定这是一笔恶意交易,说明发送方改变了Er1中的随机数r0,或者改变了Er4中的随机数r0使得接收方无法计算出正确的随机数或者交易金额。诚实的接收方会执行ReportTXtx函数,否则接收方无法正常进行后续的交易。这里Er1表示接收方密文的第一个数据。

当发送方和接收方均为恶意用户,即接收方在收到恶意交易后并不举报(正常情况下接收方程序计算出恶意交易后会自动调用ReportTXtx函数),但接收方更新的余额为链上承诺对应的真实金额,不是错误的金额m¯(可能大于m),所以接收方也无法获得大于m的金额。

ReportTXtx

当接收方收到一笔恶意交易时,首先将km¯=Er2/Er1skkr¯0=Er4/Er3sk上链,并证明(m¯,r¯0)确实由链上的密文解出,即接收方证明以下陈述成立

Senc=skr,km¯,kr¯0:km¯,kr¯0s.t. Er2=Er1skrkm¯Er4=Er3skrkr¯0

并得到零知识证明的证据π3。智能合约端验证证据π3,验证有效后,合约计算

m¯=Lkm¯ mod n2/Lk mod n2 mod n

r¯0=Lkr¯0 mod n2/Lk mod n2 mod n

并检查km¯hr¯0=kmhr0是否成立。如果等式不成立,智能合约确认这是一笔恶意交易,对接收方账户做一次同态计算Er*=Er'·Er,回到恶意交易完成前的状态,同时销毁这笔交易对应的代币。因为正常用户在执行交易时只需要输入交易金额m,出现上述恶意交易的原因是攻击者更改了Er1Er4中对应的随机数,可以认为这种交易一定是发送方恶意构造出来的,所以合约判断出发送方作恶后销毁交易输入的代币来惩罚恶意的发送方。

ReadBalanceEs,sk

以发送方用户为例,输入发送方的私钥sks和对应的密文Es,可以得到发送方用户的余额m=DecEs,sks

综上所述攻击方在这个流程中无法攻击成功,从博弈论的角度看攻击者不会执行无法获利甚至亏本且对诚实接收方无影响的攻击,所以可以默认不会出现恶意交易,系统可以安全运行。

4.3 监管系统的构造

从监管的角度看,监管者应该在需要时有权力知道每一笔交易的金额、交易方等具体的交易信息,而且监管者应当可以获取在一段时间内某个账户中的交易总额,以监管洗钱等犯罪行为。但是基于零知识证明的方案无法得到具体的交易金额,Zcash选择了一个可以提供给第三方的新密钥来加密交易金额,这种方法虽然有效但是增加了交易系统的复杂性和上链的信息,给交易的监管和审计带来了额外的困难。

为了设计出一种实用且高效的监管方案,我们赋予了监管方更大的权力,期望以最小的成本实现可监管的隐私交易系统。我们提出的方案满足以下要求:1) 系统中每个用户都处于监管之中,即监管这一特性对用户来说不是一个可选项;2) 监管方的活动与用户之间的交易相互独立,即实施监管、审计时不需要用户在线,用户进行交易时也不需要通过监管方;3) 对现有的用户账本结构做尽可能小的改变,就用户使用来说,新的监管增强的方案和现有方案没有区别。

在需要监管和审计时,监管方可通过系统私钥u计算出用户私钥sk,从而进一步解密该用户对应的交易信息进行监管。这种方法的好处有两点:1) 不需要保存用户私钥,只是在需要对某个用户进行监管或审计操作时,计算出对应的用户私钥即可;2) 不需要监管方和用户交互,监管、审计的操作可以独立完成。与用监管方公钥加密用户私钥的方案相比,这个方案不需要将相关的用户私钥保存在数据库中,不需要传输私钥的步骤,省去了保管用户私钥的麻烦,同时不需要构造额外的一对密钥,系统私钥由受可信机构保管。监管相关的算法如下。

Setup1λ

输入一个安全参数λ,生成的相关参数与PailGamal交易系统一致,包括系统私钥u、系统公开参数k,h,n等。

GetUserSkpk,u

首先确定需要监管或审计的地址,根据公钥计算出对应的私钥,具体方法为sk-1=Lpku mod n2/Lhu mod n2 mod n。只有拥有系统私钥u的监管者才能计算出sk-1 mod n,并进而求出sk,之后可以用私钥进一步验证每条交易的合法性。

GetAmount(Tid,pk,tx,sk)

计算出该地址对应的私钥后,监管者可以解密出该地址在一段时间内的每一笔交易金额mi,或者对该地址一段时间内的每笔隐私交易进行同态加法计算,并解密得到该地址在一段时间内交易总额sum,之后将监管方进行监管这一行为和监管所需信息记录下来。

AuditTxpk,m,sum

对获取的信息和这个用户这段时间的交易总额进行审计,使用范围证明等相关的审计工具,如果审计结果为TRUE表示这个用户诚实,FALSE表示这个用户进行了一些违法行为。

4.4 结合FO承诺和Bulletproofs

由于Bulletproofs只能直接对Pedersen承诺格式的密文进行范围证明,而PailGamal的密文为FO承诺,对PailGamal使用Bulletproofs需要额外证明其与Pedersen承诺包含了同一个(m,r),之后再对Pedersen承诺使用Bulletproofs范围证明。这需要构造一个额外的Sigma协议,和Zether中使用的思路类似。所需要证明的关系有以下三个(4.5.1节展示具体Sigma协议的构造):

1) PailGamal密文与Pedersen承诺包含了相同的(m,r)

2) 交易金额m大于零且处于正确的范围内(小于264);

3) 发送方的余额大于零。

4.5 零知识证明

4.5.1 聚合范围证明

根据PailGamal加密的加法同态性质,计算交易后发送方的余额为C2'=C2*/C2=km*-mhr*-r=km'hr'。因为km'hr'为FO承诺的形式,需要构造一个额外的Pedersen承诺,并证明km'hr'与该Pedersen承诺包含了相同的(m',r'),然后再对Pedersen承诺使用Bulletproofs。此外m',r'是可计算的,(m,r)是交易的金额和随机数,可以直接使用m',r'(m,r)作为证据进行Bulletproofs聚合范围证明。其中要证明的关系由两部分组成:(1) 证明密文中的m',m在正确的范围内,即大于零且小于每笔交易金额上限;(2) 证明密文中的余额m'm与Pedersen承诺中的余额m',m相等。这里我们可以将证明简化为证明t^=ivizi+δy,z+t1x+t2x2成立(详细原理见Bulletproofs原文[5],下文中所有参数均可以计算),(2)中的证明关系可以写作

Sequal1={(C2,C2'):m,r0,m',r0' s.t.  C2=kmhr0C2'=km'hr0'T1,2=g1t^-δy,z-mz2-m'z3h1τ-r0z2-r0'z3},
T1,2=T1xT2x2,Ti=g1tih1τi

根据Fiat-Shamir启发式[28]证明Sequal1的一个非交互式的Sigma协议Σequal1=Setup,P,V如下:

1) P选取随机数a,b,计算A1=kahb mod n2A2=g1-ah1-b mod p

2) P计算e=HC2',C2,A1,A2,作为随机挑战;

3) P计算s1=a+e(mz2+m'z3),s2=b+e(r0z2+r0'z3),将A1,A2,s1,s2发送给V

4) V计算

ks1hs2=A1C2ez2C2'ez3
g1t'- δy,ze-s1h1τe-s2=A2T1,2e

如果这两个等式成立,验证者接受以上论证。

4.5.2 Sigma协议安全性证明

正确性(completeness)由上面计算可知,如果P,V按照协议的规定执行,正确性是很显然的。

特殊可靠性(special soundness):对于确定的(A1,A2),假定存在不同的e,s=s1,s2e',s'=s1',s2'ee',则可以通过以下的方法提取m,r。其中,s1=a+e(mz2+m'z3),s1'=a+e'(mz2+m'z3),可以解得M=(s1-s1')/(e-e')。为了从M中解出mm',需要使用不同的s1,s2重新运行两次这个Sigma协议,得到M1=mz12+m'z13,M2=mz22+m'z23,进而求出mm',同理可求出r0r0'。这表示通过上述Sigma协议可以提取其中的证据(m,m',r0,r0')

特殊诚实验证者零知识性(special honest⁃verifier zero⁃knowledge):假设存在一个模拟器(simulator),它选取随机挑战e和随机数s1,s2,计算A1=ks1hs2·C2-ez2C2'-ez3,A2=g1t'-δy,ze-s1h1τe-s2·T1,2-e,显然使用A1,A2,e,s1,s2可以通过验证,对于具有概率多项式时间能力的验证者来说,这些参数和真实协议中的参数是计算不可区分的。

4.5.3 证明(km¯,kr¯0)由链上密文解出

当接收方发现一笔恶意交易时,需要用私钥作为证据,向智能合约证明错误的交易金额和随机数确实由链上的密文解出,要证明的关系为

Senc=skr,m¯,r¯0:Er2=Er1skrkm¯Er4=Er3skrkr¯0

一个非交互式Sigma协议的过程如下:

1) P选取随机数a,计算A1=Er1a,A2=Er3aA3=pkra

2) P计算随机挑战e=Hash(Er1,Er2,Er3,Er4,A1,A2,A3)

3) P计算s=a+e·skr,并将A1,A2,A3,s发送给V

4) V计算

Er1s=A1Er2/km¯e
Er3s=A2Er4/kr¯0e
pkrs=A3·he

如果两个等式验证均成立,那么验证者相信(km¯,kr¯0)确实由链上密文计算得出。

4.6 交易系统安全性分析

如上文中提到,我们隐私交易系统需要满足正确性、保密性和合理性,从可证明安全的角度对交易系统的安全性进行分析,具体的安全性证明在附录(A.3,A.4,A.5)中给出。而且链上的内容都通过了范围证明、合法性验证,所以可以认为监管方从链上获取的交易数据都是正确的。如果有错误的密文存在链上,即链上存在了一个错误但是通过验证的交易,由交易系统的正确性和合理性可知,这种交易出现的概率是可以忽略的。链上密文为FO承诺的格式,具有全局同态性,可以首先分析一个地址在一段时间内的总交易金额,如果有问题,再对具体的每笔交易金额进行分析。根据交易系统的正确性和同态加密的正确性推断出该方案是可审计的,满足审计可靠性。

5  性能分析

本文使用C++实现上述方案以进一步评估我们项目在通信和计算成本上的性能。出于测试的目的,仅验证了方案的可用性,并没有对代码做过多的优化。本文设计的隐私交易方案主要包括以下几个方面:(1) 一笔交易的具体信息tx,(2) 交易的发送方签名sig,(3) 聚合Bulletproofs的证据。基于OpenSSL实现了相应方案,选取4 096位的模数,中的每个元素需要512 字节,Zn中的每个元素需要256字节。交易的大小为2log22l+8𝔾+8+6Zp+2Zn表示元素个数,l表示交易金额最大位数,这里选择l=64。其中包括7+2𝔾个元素为交易信息,𝔾+Zp个元素为数字签名,聚合范围证明需要2log22l+5𝔾++5Zp+2Zn个元素。

这些测试方案运行在AMDRyzen 3700X 3.59 GHz CPU 上,具体结果如表1所示。与目前几种热门的注重隐私保护的区块链项目[101315]相比,可以看出本文方案在交易的大小和生成一笔交易的时间上均有不错的表现,并且聚合范围证明的应用也使得证明大小不会随着交易数目的增加而增加。在发现恶意交易时生成欺诈证明大小为2 KB,举报恶意操作也可以在很短的时间内(约200 ms)完成。此外在不引入额外密钥、不增加新密文的情况下,提供给监管方系统私钥来对每一笔交易进行监管,更适用于一些对监管性有要求的场景。

6  结 语

目前的隐私交易方案中存在效率低下或监管复杂等问题,针对这种情况,本文提出了一种高效的可监管的隐私交易方案和相应的同态加密算法PailGamal,并给出了交易系统和相应加密算法的安全性证明,使得用户在选择隐私交易方案时,根据应用场景和需求的不同,可以有更多的选择。我们隐私交易方案的主要思路为:通过同态加密使得数据可用,通过零知识证明保证数据合法。同时我们设计的简单的零知识证明协议和基于博弈论的“接收方挑战”的思路也可以应用于更多的场景。此外,我们了解到结合zkrollup的方案能进一步优化每笔交易的平均速度,将在以后的工作中进一步研究此问题。

参考文献

[1]

SATOSHI N. Bitcoin: A Peer-To-Peer Electronic Cash System [EB/OL]. [2008-10-31]. DOI: 10.2139/ssrn.3977007 .

[2]

WOOD G. Ethereum: A Secure Decentralized Transaction Ledger [EB/OL]. [2021-10-15].

[3]

韩璇, 袁勇, 王飞跃. 区块链安全问题: 研究现状与展望[J]. 自动化学报201945(1): 206-225. DOI:10.16383/j.aas.c180710 .

[4]

HAN XYUAN YWANG F Y. Security problems on blockchain: The state of the art and future trends [J]. Acta Automatica Sinica201945(1): 206-225. DOI:10.16383/j.aas.c180710(Ch ).

[5]

中国人民银行. 金融分布式账本技术安全规范: JR/T 0184—2020 [S]. 2020. DOI: 10.3969/j.issn.1005-9016.2018.07.036 .

[6]

The People's Bank of China. Financial Distributed Ledger Technology Security Specification: JR/T 0184—2020 [S]. 2020(Ch). DOI: 10.3969/j.issn.1005-9016.2018.07.036 .

[7]

BÜNZ BBOOTLE JBONEH Det al. Bulletproofs: Short proofs for confidential transactions and more[C]//2018 IEEE Symposium on Security and Privacy. New York: IEEE Press, 315-334. DOI:10.1109/SP.2018.00020 .

[8]

MAXWELL G. Confidential Transactions [EB/OL]. [2015-06-16].

[9]

PEDERSEN T P. Non-interactive and information-theoretic secure verifiable secret sharing [C]//Advances in Cryptology—CRYPTO'91. Berlin: Springer, 2007: 129-140. DOI:10.1007/3-540-46766-1_9 .

[10]

CHEN YMA X CTANG Cet al. PGC: Decentralized confidential payment system with auditability [C]//Computer Security — ESORICS 2020. Cham: Springer International Publishing, 2020: 591-610. DOI:10.1007/978-3-030-58951-6_29 .

[11]

MAXWELL G. COINJOIN [EB/OL]. [2019-07-09]. DOI: 10.1515/9781501504488-014 .

[12]

NOETHER SMACKENZIE ARESEARCH LAB T M. Ring confidential transactions [J]. Ledger20161: 1-18. DOI:10.5195/ledger.2016.34 .

[13]

LIU J KWEI V KWONG D S. Linkable spontaneous anonymous group signature for ad hoc groups [C]// Information Security and Privacy. Berlin: Springer, 2004: 325-335. DOI:10.1007/978-3-540-27800-9_28 .

[14]

BYTECOIN. Untraceable Transactions Which Can Contain a Secure Message Are Inevitable [EB/OL]. [2011-04-17]. DOI: 10.1109/tdsc.2019.2957960 .

[15]

SASSON E BENCHIESA AGARMAN Cet al. Zerocash: Decentralized anonymous payments from bitcoin[C]//2014 IEEE Symposium on Security and Privacy. New York: IEEE Press, 2014: 459-474. DOI:10.1109/SP.2014.36 .

[16]

Zksnarks [EB/OL]. [2019-7-21]. DOI: 10.2172/1583147 .

[17]

FAUZI PMEIKLEJOHN SMERCER Ret al. Quisquis: A new design for anonymous cryptocurrencies[C]// Advances in Cryptology — ASIACRYPT 2019. Cham: Springer International Publishing, 2019: 649-678. DOI:10.1007/978-3-030-34578-5_23

[18]

BÜNZ BAGRAWAL SZAMANI Met al. Zether: Towards privacy in a smart contract world [C]// Financial Cryptography and Data Security. Cham: Springer International Publishing, 2020: 423-443. DOI:10.1007/978-3-030-51280-4_23 .

[19]

DAMGÅRD I. On δ -protocols [EB/OL]. [2021-04-18].

[20]

DANEZIS GMEIKLEJOHN S. Centrally Banked Cryptocurrencies [EB/OL]. [2021-04-17]. DOI: 10.14722/ndss.2016.23187 .

[21]

PETERS G WPANAYI ECHAPELLE A. Trends in Crypto-Currencies and Blockchain Technologies: A Monetary Theory and Regulation Perspective[EB/OL]. [2017-12-08]. DOI: 10.2139/ssrn.2646618 .

[22]

Zcash Regulatory Brief [EB/OL]. [2019-09-06]. DOI: 10.17148/ijarcce.2019.8903 .

[23]

NARULA NVASQEZ WVIRZA M. zkLedger: Privacy-preserving auditing for distributed ledgers[C]// Proceedings of the 15th USENIX Conference on Networked Systems Design and Implementation (NSDI 18), New York:ACM, 2018: 65-80.

[24]

GREEBEL E LMORIARTY KCALLAWAY Cet al. Recent key Bitcoin and virtual currency regulatory and law enforcement developments [J]. Journal of Investment Compliance201516(1): 13-18. DOI:10.1108/joic-01-2015-0009 .

[25]

KAKAVAND HKOST DE SEVRES NCHILTON B. The Blockchain Revolution: An Analysis of Regulation and Technology Related to Distributed Ledger Technologies [EB/OL]. [2016-10-12]. DOI: 10.2139/ssrn.2849251 .

[26]

PAILLIER P. Public-key cryptosystems based on composite degree residuosity classes[C]// Proceedings of the 17th International Conference on Theory and Application of Cryptographic Techniques. Berlin: Springer-Verlag, 2007: 223-238. DOI:10.1007/3-540-48910-x_16 .

[27]

FUJISAKI EOKAMOTO T. Statistical zero knowledge protocols to prove modular polynomial relations [C]// Advances in Cryptology — CRYPTO'97. Berlin: Springer, 1997: 16-30. DOI:10.1007/BFb0052225 .

[28]

PAILLIER PYUNG M. Self-Escrowed Public-Key Infrastructures [EB/OL]. [2021-12-13]. DOI: 10.1007/10719994_20 .

[29]

SHANKS D. Class number, a theory of factorization, and genera [C]// Proceedings of Symposia in Pure Mathematics. Providence: American Mathematical Society,1971: 415-440. DOI: 10.1090/pspum/020/0316385 .

[30]

FIAT ASHAMIR A. How to prove yourself: Practical solutions to identification and signature problems [C]//Advances in Cryptology — CRYPTO ’86. Berlin:Springer, 2007: 186-194. DOI:10.1007/3-540-47721-7_12 .

[31]

PFAGIN B. Idempotent Factorizations of Square-Free Integers [EB/OL]. [2019-06-20]. DOI: 10.3390/info10070232 .

基金资助

国家自然科学基金面上项目(62172308)

AI Summary AI Mindmap
PDF (685KB)

0

访问

0

被引

详细

导航
相关文章

AI思维导图

/