2008年提出的区块链是一种分布式的链式数据结构,它具有去中心化、不可篡改、不可伪造等众多优点[1],被认为是金融服务基础设施的未来[2],在金融[3]、医疗数据共享[4]、物流监管[5]等领域得到了极为广泛的应用.区块链的应用模式目前主要分为3类:公有链、联盟链和私有链.其中,公有链允许节点自由进出,而联盟链和私有链需要授权与验证后方可让节点加入[1].联盟链由多个机构组成的联盟构成,联盟指定的成员进行账本的生成、共识、维护[6].联盟链具有处理事务速度快等优点,因此,广泛应用在商品溯源、供应链管理等方向.商品溯源中利用区块链实现多方共同记录溯源信息,让消费者可对商品实现溯源查询和验真;而供应链可以使企业之间共享交易数据,传递企业信用,解决企业间信任问题,为企业相互合作提供保障[7].
然而,在区块链的实际应用中,由于账本的公开透明,使得区块链中的矿工及验证节点可以迅速对交易合法性进行验证,但同时用户的身份及交易细节皆向所有成员公开,因此,隐私保护问题逐渐成为新的挑战.在区块链中,隐私保护问题主要分为2类:身份隐私和交易金额隐私问题.用户希望仅通过链上存有的公开数据内容无法获取与其身份相关的任何有用信息;交易双方为保护自身利益并不想交易的具体金额公开,这就使得交易金额的隐私保护极为重要[8].
针对上述隐私问题,学术界已展开研究.例如,2013年Maxwell提出了Coinjoin[9]方案,该方案中被认为是第1个去中心的混币方案,并且在隐藏输入输出地址映射方面取得了很好的效果;但是混币方案在本质上仅保护了用户的身份匿名,其交易的金额仍然透明;达世币(Dash)[10]也利用了混币的思想,隐藏交易输入输出之间的联系,但混币过程中需要额外的收费.除混币外,零知识证明也被广泛应用于区块链隐私保护中.如Zerocash[11]引入非交互式零知识证明来保护交易双方的地址和交易金额,并被普遍认为是当前匿名性和隐私保护程度最高的电子货币;但其完全依赖非交互式零知识证明,该方案效率较低.利用环签名进行隐私保护的门罗币[12]实现了对用户身份隐私的保护,然而其并未强制保护交易金额的隐私.机密交易由Maxwell[13]在2015年首次提出,该方案基于Pedersen承诺,利用其同态性向矿工证明交易输入输出的合法性,但其仍仅实现交易金额的保护,用户对身份匿名的需求无法满足.Dumb Account[14]方案利用同态加密和零知识证明来实现交易金额的匿名,但该方案仍无法满足交易双方身份隐私的需要;王子钰等人[15]结合混币和加密交易的思想,提出了基于聚合签名和机密交易的全匿名区块链方案,该方案可以实现交易双方、交易金额3者的隐私保护,但该方案仍然面向比特币,无法适用于联盟链;杨亚涛等人[16]面向联盟链提出了基于SM9算法可证明安全的区块链隐私保护方案,利用群签名对交易双方的身份隐私进行保护,但该方案无法实现交易金额的隐私保护.
同态加密是一种可以对密文进行计算的加密技术,其中部分同态加密由于构造简单、执行效率较高,所以使用较广.当前较为常用的半同态加密有RSA同态加密、ElGamal同态加密以及Paillier同态加密.但RSA与ElGamal同态加密为乘同态,无法满足验证交易金额、账户金额和交易后账户余额的合法性,因此选用具有加同态特点的Paillier算法.
群签名允许每一位群成员签署,验证者只可验证该签名合法性以及其是否属于群成员所签,但无法得知签名具体成员身份,且在发生纠纷时,群管理员可以实现签名成员身份的追溯.群签名独特的特点,使其可以在可监管的条件下实现身份的匿名.且群签名中群的概念可与联盟链相契合,可在用户进入联盟链时进行身份的认证与管理.
基于上述分析,本文面向联盟链和基于账户的区块链模型,提出了基于群签名和同态加密的区块链双重隐私保护方法,本文贡献有4个方面:
1) 提出部分身份匿名的概念,为基于账户模型的区块链提供了用户身份的匿名保护.其中,“部分身份匿名”指用户身份对其他次要节点匿名,但对于主要节点不匿名(可验证).例如在竞拍等应用场景中,次要节点之间为竞争关系,因此,引入部分身份匿名机制,实现身份及交易金额等交易信息既满足可验证又不暴露给竞争者.
2) 基于群签名和Paillier同态加密算法实现身份与交易金额的双重隐私保护.本方案在满足交易合法性可验证的前提下,实现双重隐私保护,且利用群签名的特点,实现交易可追溯,保证联盟链中用户的合法权益.
3) 提出主要节点的4步验证方法,通过对群签名、账户所属权和交易金额合法性的验证,实现主要节点对交易合法性的监管.4步紧凑的验证使得本方案可以抵抗公钥替换攻击以及篡改攻击,方案的安全性较高.
4) 提出新的区块交易信息写入结构,使得单个交易事务占区块长度降低,提高区块的利用率.
区块链是从比特币底层技术衍生出来的新型技术体系,随着区块链技术的发展,区块链的应用场景从公有链衍生到联盟链和私有链[17].公有链完全公开,用户可自由加入或退出,具有完全去中心化的特点;私有链则是完全私有的一种区块链,只有内部人员可以使用;联盟链介于公有链与私有链之间,多由线下的企业等联盟组成,节点的进入与退出需要满足一定条件并得到许可,同时,联盟链可以完全公开也可以仅由联盟内部人员访问[1,6].
本方案以联盟链为背景,将联盟链中的节点分为主要节点和次要节点,主要节点负责维护区块链参数以及历史数据和验证交易合法性;次要节点持有各自的签名密钥对,次要节点为群签名中的用户,且相互之间可进行交易,完成区块链中点对点交易信息传递的流程.交易商定结束,需对交易信息进行广播,将交易信息写入新区块并由各个主要节点确认后即为生效.
比特币区块链采用基于交易的数据模型,在此模型中,交易通过Hash指针与上笔交易构成多条以交易为节点的链条,实现通过链上数据对每笔交易进行向前追溯,矿工通过查询UTXO(未花费交易)池实现对交易合法性的验证[1].基于账户的信息模型以键值对的形式存储数据,维护账户当前的有效余额,通过执行交易来不断更新账户数据[6].
UTXO虽可快速验证,但无法快速查询账户余额;并且一个用户可能拥有多个地址,每个地址上又拥有多笔交易产生的UTXO,要验证一个账户余额,需要验证其所有地址上所有UTXO的来源[18],这使得联盟链的多种应用场景无法契合该模型.相比于UTXO,基于账户模型与银行的储蓄账户类似,更直观和高效[6].因此,为了支持更多的应用,以太坊、超级账本等区块链平台采用了基于账户的模型.
图1为以太坊所使用的账户模型,其中Address为账户地址,Balance为账户余额,Nonce为该账户交易的计数防止双花,CodeHash为合约代码中的Hash值,StorageRoot为合约状态数据的树根.
Fig.1 Ethereum account model
图1 以太坊账户模型
Paillier同态加密算法,由Paillier[19]于1999年提出,该算法基于复合剩余类困难问题,具有加同态性质.
定义lcm(*,*)为2个参数的最小公倍数;L(u)=(u-1)/n;
为不大于n2的自然数构成的乘法群.
1) 密钥生成
任意选取大素数p,q,计算n=p×q和λ=lcm(p-1,q-1);任意选取整数且满足gcd(L(gλmod n2),n)=1,则公钥为pkP=(n,g),私钥为skP=(p,q).
2) 加密
任意选取r<n,对于明文m<n,加密密文c=gmrnmod n2.
3) 解密
密文c,则解密的密文![]()
4) 加同态
对于2个明文m1,m2,其Paillier同态加密后的密文分别为
mod n2,可得cm1×cm2=gm1+m2(r1r2)nmod n2=cm1+m2.
零知识证明主要用于证明加密数据的范围,本文所提方案仅利用区间证明[20]来确保交易金额大于0.
证明. 设t,l,s为3个安全参数,n为因子分解未知的大合数,g为
中的大阶元素,h为g生成的循环群中的一个元素.
设E=E(x,r)=gxhrmod n是一个FO承诺,该承诺来保证x∈(a,b),其中r是从{-2sn+1,…,2sn-1}中选取的随机数;
证明者Prover通过下列步骤的FO承诺,欲使验证者Verifier在不知道x值的情况下确信x∈(a,b).
定义协议PK{x,r:E=gxhrmod n∧x∈(a,b)}如下:
步骤1. 令y=x-a.
步骤2. Prover设u=α2y+ω>2t+l+s+T其中α≠0,ω∈(0,2s+T),随机选取r1,r2,r3∈{-2sn+1,…,2sn-1},使r3-rα2+r1α+r2∈[-2sn+1,2sn-1],计算E1=gx-ahr=gyhrmod
mod n,F=gωhr3 mod n,U=gu/E3=gωh-rα2-r1α-r2 mod n;
Prover将(u,E2,E3,F)发送给Verifier.
步骤3. Verifier计算
E1=E(x,r)/ga=gyhrmod n,U=gu/E3=gωh-rα2-r1α-r2 mod n.
步骤4. Prover和Verifier分别计算
![]()
PK2{ω,r-rα2-r1α-r2:F=gωhr3 mod n∧U=gωhr-rα2-r1α-r2 mod n};
PK3{ω,r3:F=gωhr3 mod n∧ω∈[-2t+l+s+T,2t+l+s+T]}.
步骤5. Verifier检查PKi(i=1,2,3)和u>2t+l+s+T的正确性,来相信x>a.
同理,令y=b-x,重复步骤2~步骤5可以证明x<b.
证毕.
群签名的概念最初来自于Chaum等人[21],它允许群中任一成员代表群进行签名,而除群管理员外的验证人员只能验证此签名来自于该群,但不能精确到该签名由哪一位群成员进行签署.
本文参照仲红等人[22]提出的高效群签名方案,该方案分为6个算法:初始化、成员加入、成员撤销、签名、验证、追踪.该方案在文献[22]中有详细描述,在此不再赘述.需要提到的是,本文将群签名中群管理员的权力分离,分为颁发者和打开者Opener,这对文献[22]群签名方案的算法的效率无影响,颁发者用以生成群签名密钥对,打开者保存用户组表且用以追踪用户身份.
本文面向基于账户模型的联盟区块链.不同于UTXO模型,基于账户模型中,主要节点对交易合法性验证时需找到双方账户进行金额增减,因此实现节点身份的完全匿名较为困难.且在联盟链的实际应用中,我们将主要节点作为验证节点且其身份为联盟中的监管部门,属于可信任节点,因此我们提出了本文的部分身份匿名和交易金额的区块链隐私保护方案.
联盟链常用于拍卖、竞标等场景,参与拍卖竞标的用户相互竞争,在这些场景中我们可以看出,对于共同参与竞争的节点,各节点有匿名并对交易进行隐私保护的需求,但对于不允许参与任何交易的主要节点来说,可以在可验证的情况下,允许其知道自己的身份.
基于联盟链自身特点和应用背景,本方案对区块链交易的隐私保护体现在2方面:
1) 对交易双方身份的匿名.本文提出部分身份匿名的概念.所谓部分身份匿名,即用户身份对其他次要节点匿名但允许验证交易合法性的主要节点了解其账户并实现对交易的验证.
2) 对交易金额的加密.实现交易金额的隐私保护的同时,满足交易可验证.
因本方案利用群签名和同态加密对联盟链中的交易进行隐私保护,因此,将群签名的特性与联盟链的特点结合.一个联盟链作为群签名中的一个群的概念,各节点分为群管理员、主要节点和次要节点.节点构成如图2所示.
1) 联盟链中设立群管理员,为防止群管理员共谋泄露次要节点身份,将管理员按功能分为颁发者和打开者2种,群管理员独立于主要节点和次要节点之外,负责联盟链中群密钥、同态密钥的生成,以及在交易发生纠纷时的追踪;
2) 主要节点,作为联盟链中的监管人员的角色,不参与交易,但负责对交易的合法性进行验证、维护全网账本;
3) 次要节点为联盟中的用户,次要节点利用自己的签名证明自己的账户所有权,次要节点之间进行交易.
Fig. 2 Composition of nodes
图2 节点构成
本方案面向交易金额隐私和部分身份隐私,因此,主要节点间存在共有的1个公私钥对,公钥面向次要节点公开,次要节点进行交易信息广播时,利用该公钥将交易信息进行加密,以使得对竞争节点进行匿名,实现部分身份隐私.
群管理员利用群创建算法,建立群,群与联盟链结合,一个链为一个群.
加入联盟链的用户拥有以下密钥:
1) 用户n申请加入联盟链,群管理员验证通过后,为该成员生成其群签名密钥Gskn,并将该用户记录在存储列表中;
2) 群管理员利用Paillier算法生成全网同态密钥,私钥skP由群管理员保存,节点加入联盟链时群管理员将同态公钥pkP发送给该节点用户,用户用同态公钥加密交易金额.
3) 用户n加入后成为次要节点,自身生成非对称密钥对pkn,skn,利用公钥生成账户地址Address,利用签名证明账户所属权.
4) 主要节点间存在1个非对称密钥对pkmain,skmain,公钥pkmain向次要节点公开,用于广播交易信息时对交易信息进行加密,私钥skmain主要节点保存、收到交易信息时进行解密.
新加入节点的初始账户余额为0,当发生每笔交易时,由主要节点验证交易合法性后更新余额,次要节点在本地账本记录交易金额,但其无法解密全网账本中的余额,当需要获取该余额时,需向群管理员提出申请,且利用签名证明自己账户所有权后,方可解密.
1) 符号说明
符号说明如表1所示:
Table 1 Explanation of Symbols
表1 符号说明
符号含义Sig各节点利用自身公私钥对对交易信息进行的签名Gsig节点利用群密钥对进行的群签名Enc各节点利用自身公私钥对进行的加密EncP利用全网同态公钥进行的同态加密Address账户地址EncP(SUMpresent*)该账户当前余额EncP(SUM*)该交易完成后的账户余额
其中Address为其账户地址,该地址为联盟链中的用户利用自身公钥变化生成的字符串,用Sig签名来证明账户所有权.
2) 双方交互
Alice向Bob提出交易申请,对交易信息m进行签名和加密后得到EncB(SigA(m)),将其发给Bob,Bob收到交易信息EncB(SigA(m))后,使用自己的私钥进行解密,并验证Alice的签名,核对成功后,将自身账户地址、交易信息进行加密、签名以及群签名后,得到信息:
EncA(SigB(AddressB)‖GsigB(EncP(m))‖EncP(SUMB)).
(1)
Bob将加密后的密文发送给Alice,Alice接收到式(1)后,用私钥解密,并对Bob的签名进行验证,验证通过后,将自身账户地址、交易信息、交易后账户余额写入并进行加密、签名、群签名,得到信息:
SigA(AddressA)‖GsigA(GsigB(EncP(m)))‖EncP(SUMA)‖SigB(AddressB)‖EncP(SUMB).
(2)
3) 主要节点验证
交易发起方收到交易接收方的信息后,生成如式(2)所述的交易信息,为实现部分身份匿名,将式(2)利用主要节点的公钥进行加密,得到
Encmain(SigA(AddressA)‖GsigA(GsigB(EncP(m)))‖EncP(SUMA)‖SigB(AddressB)‖EncP(SUMB)).
(3)
将式(3)进行广播,主要节点接收到广播信息后进行解密并对交易信息合法性进行验证,验证流程为:
验证1. 验证群签名.主要节点利用群公钥对群签名进行验签,验证该群签名是否为群成员所签,验证通过后,进入验证2.
验证2. 验证账户所属权.利用AddressA和AddressB找到Alice和Bob的账户地址,并通过SigA,SigB来验证交易双方的账户所属是否为Alice和Bob,验证通过则进入验证3.
验证3. 验证交易金额合法性.验证交易金额是否大于0以及交易发起方账户余额是否大于交易金额.
Alice利用零知识证明中的区间证明来向主要节点证明该交易金额m> 0,即设y=x-a为y=m-0.
① Alice设u=α2y+ω>2t+l+s+T(α≠0,取ω∈(0,2s+T)),随机选取r1,r2,r3∈{-2sn+1,…,2sn-1},使r3-rα2+r1α+r2∈[-2sn+1,2sn-1],计算E1=gm-ahr=gyhrmod
mod n,F=gωhr3 mod n,U=gu/E3=gωh-rα2-r1α-r2 mod n,然后Alice将(u,E2,E3,F)发送给主要节点.
② 主要节点计算
E1=E(m,r)/ga=gyhrmod n,U=gu/E3=gωh-rα2-r1α-r2 mod n.
③ Alice和主要节点分别计算
![]()
PK2{ω,r-rα2-r1α-r2:F=gωhr3 mod n∧U=gωhr-rα2-r1α-r2 mod n},PK3{ω,r3:F=gωhr3 mod n∧ω∈[-2t+l+s+T,2t+l+s+T]}.
④ 主要节点检查PKi(i=1,2,3)和u>2t+l+s+T的正确性,来相信x>a,即m>0.
若验证成功,则证明交易金额大于0.
验证交易发起方账户余额是否大于交易金额,可转化为交易后其账户余额是否大于0,因此同理按①~④证明交易后Alice账户余额大于0.
若2个区间证明皆通过,进入下一步交易金额合法性验证.
验证4. 通过Paillier的加同态性质,验证交易金额正确性.即验证付款方交易金额加上交易完成后的账户余额是否等于当前账户余额;以及交易中收款方的当前账户余额加上交易金额是否等于交易完成后的账户余额.即式(4)是否成立.
EncP(SUMpresentA)=EncP(SUMA)+EncP(m),EncP(SUMB)=EncP(SUMpresentB)+EncP(m).
(4)
4步验证的流程如图3所示:
Fig. 3 Four-step verification flow chart
图3 4步验证流程图
若以上4步验证皆通过,则本次验证通过,主要节点认证交易的合法性,将交易写入新生区块中并将Alice和Bob的账户余额分别更新为EncP(SUMA)和EncP(SUMB).相反,若以上4步验证有一步验证出错,则主要节点向Alice返回错误信息,并终止验证.
为保护交易双方的身份隐私,区块中仅写入交易金额以及交易双方的群签名,写入区块的交易信息为
GsigA(GsigB(EncP(m))).
(5)
该信息中包含交易双方的群签名,且包含交易金额,当交易发生纠纷时,可通过群管理员中的打开者Opener打开群签名,实现交易双方是溯源问题,为联盟链中用户的权益提供了保障.
本方案面向基于账户的区块链模型,次要节点之间进行交易,主要节点充当矿工的角色,对交易合法性进行验证,具体的交易流程如图4所示.
1) 交易发起方Alice向Bob发出交易申请,并将交易金额进行签名加密后发送给Bob;
2) Bob接收到Alice的消息后,对消息进行解密验签,确认无误后,将自身账户地址、交易信息,以及Bob的签名、群签名附上,用Alice的公钥进行加密,形成式(1)所示的信息,并将该信息发送给Alice.
3) Alice接收到来自Bob的消息,解密验签成功后,将自己的账户地址、所有权签名、群签名等写入,形成如式(2)所示的信息;为将交易信息发送给主要节点验证并实现自身身份的隐私,因此用主要节点间的公钥将该信息进行加密,广播给主要节点.
4) 主要节点接收到该交易信息,对该信息进行解密,验证群签名、账户所有权签名以及交易金额合法性和交易后账户余额合法性;在所有主要节点验证通过后,将如式(5)所示的交易信息写入区块链中.交易完成.
Fig. 4 Specific transaction process
图4 交易具体流程
本方案通过4个步骤验证交易的合法性,任何一步无法验证通过则主要节点认为该交易不合法并立即停止验证.验证1通过对群签名的验证,确定交易双方为联盟链中的合法用户;验证2验证用户账户所属权,该签名采用ECDSA基于椭圆曲线的数字签名算法,账户地址由用户的公钥通过若干杂凑算法变换而成,通过用户的签名验证其账户所属权;验证3验证交易金额是否大于0,通过非交互式零知识证明进行;验证4则为验证用户提供的交易后账户余额是否合法.
本节对论文的方案进行了安全性、匿名性以及方案效率的分析,论证了方案的安全性和匿名.
本方案基于Paillier同态加密和群签名进行设计,用户利用基于椭圆曲线的数字签名算法证明账户所有权.其中Paillier同态加密基于复合剩余类困难问题、群签名基于传统困难问题,在同态解密密钥和群签名打开算法未知的情况下,无法对交易金额及账户余额进行解密,更无法得知群签名属于哪位群成员.
1) 公钥替换攻击
方案中交易发起方向主要节点广播的交易信息为
Encmain(SigA(AddressA)‖GsigA(GsigB(EncP(m)))‖EncP(SUMA)‖SigB(AddressB)‖EncP(SUMB)).
可以看出对于签名算法,当攻击者为群成员且伪造公钥与其他次要节点进行交易时,在交易验证的第1步,因其为群成员,因此初步验证可以通过,但因该公钥为伪造,因此无法通过第2步的账户所属权验证,因此,无法对用户账户安全造成威胁;若攻击者非群成员但伪造公钥与其他用户进行交易,则在第1步验证便无法通过,因此,本方案可以抵抗公钥替换攻击.
2) 篡改攻击
由式(3)可知,本方案中的交易金额为经过同态加密后的金额,且Alice广播给主要节点验证的交易信息中包含交易双方Alice和Bob的群签名,因此若交易双方中的某一方试图篡改交易金额是不可行的.
其次,若交易金额篡改成功,主要节点的第3,4步验证都是为了核验交易金额的合法性,若交易金额改为负数则无法通过第3步验证,若随意更改交易金额,则无法通过第4步验证.
本方案提出部分身份匿名的概念,因在基于账户模型的区块链中,无法做到在对验证节点进行身份匿名的前提下使其可以验证交易的合法性,因此,利用主要节点之间的公私钥对使得交易账户地址只对主要节点公开,且验证通过后,写入区块链的信息如式(5)所示.
联盟链中其他次要节点在获取到区块链上的交易信息时,仅可验证该交易中群签名是否为群中成员所签,且为防止群管理员共谋泄露次要节点身份,将群管理员权力分开,分为颁发者和打开者,除管理员打开者opener外,联盟链中其他节点皆无法验证签名者身份.群签名满足无关联性,对于2个不同的群签名Gsign和Gsign′,在打开者进行打开之前,任何人无法得知该签名是否为同一人所签,因此保证了方案的匿名性.
本方案主要节点通过4步验证来确定交易的合法性,4步验证利用群签名、椭圆曲线签名、同态加密和零知识证明的特点进行.
1) 身份验证
验证1中,主要节点通过验证群签名的合法性,确定交易双方是否属于该联盟中未被撤销身份的合法用户.
验证2中,通过交易双方账户地址AddressA和AddressB找到双方账户,并通过验证交易双方的签名SigA和SigB确定其提供地址的账户是否归其所有.
2) 金额合法性验证
验证3中,用户通过非交互式零知识证明使主要节点检查PKi(i=1,2,3)和u>2t+l+s+T后相信m>0且交易金额小于等于付款方账户余额.
验证4利用Paillier同态加密中的加同态性质
cm1×cm2=gm1+m2(r1r2)nmod n2=cm1+m2
来验证用户交易金额是否满足
EncP(SUMpresentA)=EncP(SUMA)+EncP(m),EncP(SUMB)=EncP(SUMpresentB)+EncP(m).
可以看出,4步验证逐步进行用户身份合法性验证和交易金额合法性验证,一步无法通过则停止验证并返回错误信息.因此,4个紧凑的步骤可以有效实现交易合法性验证.
本文方案利用群签名算法实现用户的匿名,利用Paillier同态加密实现对交易金额和账户余额的隐私保护,同时利用基于椭圆曲线的签名算法来证明账户的所属权和零知识证明来证明交易金额的合法性,因此本方案的计算代价来自于群签名、同态加密、零知识证明3种算法.现定义符号TE表示模幂运算时间开销,TM表示模乘运算的时间开销,H为Hash运算开销,TB为双线性对运算,Tm为乘运算,TA为指数运算.
运算过程中,双线性对运算开销较高,表2为本文方案的计算开销,在表2中可以看出,本文所使用的算法中多为模幂运算和模乘运算的时间开销,这2种运算的开销相较于双线性对的计算时间开销较低,计算开销合理.
Table 2 Computational Efficiency of the Scheme
表2 方案运算效率
操作运算开销签名TE+H加密2TA+TM验证19TE+8TM+H
表3为本方案与其他相关方案的效率与安全性对比.由表3可以看出,杨亚涛等人[16]的方案签名与验证的效率较高,但该方案仅利用签名算法实现了用户双方身份的匿名,无法实现交易金额的隐私保护,因此无法满足用户对身份和交易金额隐私保护的需求;Wang等人[14]的方案同样利用同态加密实现了交易金额的隐私保护,但由于其设置了一个额外账户,且加密需要i次循环,因此交易加密以及验证时的效率较低,并且无法满足用户对于身份隐私的需求;王子钰等人[15]方案利用聚合签名和承诺及零知识证明来实现用户身份和交易金额的全匿名,然而面向基于交易的区块链模型,且验证效率较低.
Table 3 Comparison of Efficiency and Security
表3 效率与安全性对比
方案签名效率加密效率验证效率是否实现身份匿名是否实现金额隐私杨亚涛等人[16]方案2Tm+TA无Tm+3TB是否Wang等人[14] 方案无2iTM+4iTE(2i+3)Tm+(7i+8)TM+(12i+14)TE+2H否是王子钰等人[15] 方案H2TA+Tm12TA+4TE+2TB+2H是是本方案TE+H2TE+TM19TE+8TM+H是是
综上所述,本方案相比若干只实现单一方向隐私保护的方案提升了对用户以及交易整体的隐私保护程度,通过高效的非交互式零知识证明,在保证验证有效的前提下提高了效率.利用群签名和同态加密,使得方案安全性更高,满足了区块链交易时用户对身份隐私和交易金额隐私的需要,且本方案可以提供一定的交易溯源性,更加满足联盟区块链实际应用中的需求.
本文利用群签名和Paillier同态加密,将群签名特性和Paillier算法的加同态特性与账户模型的联盟链进行结合,提出了一种可以实现身份匿名和交易金额隐私保护的方案.结合签名加密算法的特性,提出主要节点4步验证方法,通过对群签名、账户所属权和交易金额合法性的验证,实现主要节点对交易合法性的监管.4步紧凑的验证使得本方案可以抵抗公钥替换攻击以及篡改攻击,方案的安全性大大提高.本方案可在保证主要节点验证交易合法性的同时保证身份的部分匿名和交易金额隐私,符合联盟区块链部分去中心化的特点和基于账户模型区块链的特点,满足交易中交易双方对竞争者的身份隐私和交易金额隐私保护.本方案可应用于用户存在竞争者的场合,如原材料交易等.如何根据应用场景进行节点身份及权限的优化,可作为进一步研究的重点.
作者贡献声明:刁一晴负责方案的整体设计、性能分析以及论文撰写;叶阿勇指导方案的拟定,把握论文创新性,并审阅修订论文;张娇美参与论文方案可行性讨论与分析;邓慧娜参与论文图表设计与规划;张强参与论文公式校对;程保容参与论文文字校对.
[1]Shao Qifeng, Jin Cheqing, Zhang Zhao, et al. Blockchain:Architecture and research progress[J]. Chinese Journal of Computers, 2018, 41(5): 969-988 (in Chinese)(邵奇峰, 金澈清, 张召, 等. 区块链技术: 架构及进展[J]. 计算机学报, 2018, 41(5): 969-988)
[2]Huang Zheng, Li Xiangxue, Lai Xuejia, et al. Blockchain technology and its application[J]. Journal of Information Security Research, 2017, 3(3): 237-245 (in Chinese)(黄征, 李祥学, 来学嘉, 等. 区块链技术及其应用[J]. 信息安全研究, 2017, 3(3): 237-245)
[3]Treleaven P, Brown R G, Yang D. Blockchain technology in finance[J]. Computer, 2017, 50(9): 14-17
[4]Shahnaz A, Qamar U, Khalid A. Using blockchain for electronic health records[J]. IEEE Access, 2019, 7: 147782-147795
[5]Pal A, Kant K. Using blockchain for provenance and traceability in Internet of things-integrated food logistics[J]. Computer, 2019, 52(12): 94-98
[6]Zeng Shiqin, Huo Ru, Huang Tao, et al. Survey of blockchain: Principle, progress and application[J]. Journal on Communications, 2020, 41(1): 134-151 (in Chinese)(曾诗钦, 霍如, 黄韬, 等. 区块链技术研究综述: 原理、进展与应用[J]. 通信学报, 2020, 41(1): 134-151)
[7]Tanmer Technology. Six typical application scenarios of alliance chain in blockchain technology[OL]. [2021-02-22]. http://www.tanmer.com/blog/582
[8]Wang Hao, Song Xiangfu, Ke Junming, et al. Blockchain and privacy preserving mechanisms in cryptocurrency[J]. Netinfo Security, 2017 (7): 32-39 (in Chinese)(王皓, 宋祥福, 柯俊明, 等. 数字货币中的区块链及其隐私保护机制[J]. 信息网络安全, 2017 (7): 32-39)
[9]Maxwell G. Coinjoin: Bitcoin privacy for the real world[ EB/OL]. (2013-08-22) [ 2019-11-12]. https://bitcointalk.org/?topic=279249
[10]Dash Core Group. Dash is digital cash[EB/OL]. [2020-07-10]. https://www.dash.org/
[11]Sasson E B, Chiesa A, Garman C, et al. Zerocash: Decentralized anonymous payments from bitcoin[C] //Proc of 2014 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2014: 459-474
[12]Saberhagen N V. CryptoNote v 2.0[ EB/OL]. [2019-11-19]. https://cryptonote.org/whitepaper.pdf
[13]Maxwell G. Confidential transactions[ EB/OL]. (2017-04-28) [ 2019-11-12]. http://diyhpl.us/wiki/transcripts/gmaxwell-confidential-transactions
[14]Wang Qin, Qin Bo, Hu Jiankun, et al. Preserving transaction privacy in bitcoin [J]. Future Generation Computer Systems, 2020, 107: 793-804
[15]Wang Ziyu, Liu Jianwei, Zhang Zongyang, et al. Full anonymous blockchain based on aggregate signature and confidential transaction[J]. Journal of Computer Research and Development, 2018, 55(10): 2185-2198 (in Chinese)(王子钰, 刘建伟, 张宗洋, 等. 基于聚合签名与加密交易的全匿名区块链[J]. 计算机研究与发展, 2018, 55(10): 2185-2198)
[16]Yang Yatao, Cai Juliang, Zhang Xiaowei, et al. Privacy preserving scheme in block chain with provably secure based on SM9 algorithm[J]. Journal of Software, 2019, 30(6): 1692-1704 (in Chinese)(杨亚涛, 蔡居良, 张筱薇, 等. 基于SM9算法可证明安全的区块链隐私保护方案[J]. 软件学报, 2019, 30(6): 1692-1704)
[17]Zhu Liehuang, Gao Feng, Shen Meng, et al. Survey on privacy preserving techniques for blockchain technology[J]. Journal of Computer Research and Development, 2017, 54(10): 2170-2186 (in Chinese)(祝烈煌, 高峰, 沈蒙, 等. 区块链隐私保护研究综述[J]. 计算机研究与发展, 2017, 54(10): 2170-2186)
[18]Chen Weili, Zheng Zibin. Blockchain data analysis: A review of status, trends and challenges[J]. Journal of Computer Research and Development, 2018, 55(9): 1853-1870 (in Chinese)(陈伟利, 郑子彬. 区块链数据分析: 现状、趋势与挑战[J]. 计算机研究与发展, 2018, 55(9): 1853-1870)
[19]Paillier P. Public-key cryptosystems based on composite degree residuosity classes[G] //LNCS 1592: Proc of EUROCRYPT 1999. Berlin: Springer, 1999: 223-238
[20]Wu Qianhong, Zhang Jianhong, Wang Yumin. Simple proof that a committed number is in a specific interval[J]. Acta Electronica Sinica, 2004, 32(7): 1071-1073 (in Chinese)(伍前红, 张键红, 王育民. 简单证明一个承诺值在特定区间内[J]. 电子学报, 2004, 32(7): 1071-1073)
[21]Chaum D, Heyst V E. Group signatures[G] //LNCS 547: Proc of the 10th Annual Int Conf on Theory and Application of Cryptographic Techniques (EUROCRYPT’91). Berlin: Springer, 1991: 257-265
[22]Zhong Hong, Huang Conglin, Xu Yan, et al. Efficient group signature scheme with revocation[J]. Journal on Communications, 2016, 37(10): 18-24 (in Chinese)(仲红, 黄丛林, 许艳, 等. 高效的可撤销群签名方案[J]. 通信学报, 2016, 37(10): 18-24)
Diao Yiqing, born in 1997. Master candidate. Student member of CCF. Her main research interests include blockchain and cryptography.
刁一晴,1997年生.硕士研究生.CCF学生会员.主要研究方向为区块链和密码学.
Ye Ayong, born in 1977. PhD, professor, PhD supervisor. Senior member of CCF. His main research interests include blockchain, network security and location privacy.
叶阿勇,1977年生.博士,教授,博士生导师.CCF高级会员.主要研究方向为区块链、网络安全和位置隐私.
Zhang Jiaomei, born in 1995. Master candidate. Her main research interests include federated learning and transfer learning.
张娇美,1995年生.硕士研究生.主要研究方向为联邦学习和迁移学习.
Deng Huina, born in 1997. Master candidate. Her main research interest is differential privacy.
邓慧娜,1997年生.硕士研究生.主要研究方向为差分隐私.
Zhang Qiang, born in 1994. Master. His main research interests include data privacy and security.
张 强,1994年生.硕士.主要研究方向为数据隐私安全.
Cheng Baorong, born in 1995. Master. Her main research interests include location privacy and blockchain.
程保容,1995年生.硕士.主要研究方向为位置隐私和区块链.