面向联盟链的隐私保护技术综述
2024-02-26唐华云王延昭
孙 爽,唐华云,丁 旋,王延昭,李 荣
(1.中央国债登记结算有限责任公司 博士后工作站,北京 100033;2.中债金科信息技术有限公司 区块链实验室,北京 100044;3.清华大学 博士后流动站,北京 100084;4.清华大学 软件学院,北京 100084)
0 引 言
近年来,区块链的弱隐私特性导致攻击事件频发,造成巨大的经济损失,增加了用户对个人信息安全的担忧。作为一种节点准入受限的区块链,联盟链通过权限控制实现事务在不同节点间的隔离,从而抵御外部攻击;内部节点有唯一公开的链上身份,一旦发生内部攻击事件,应用系统会很快定位到作恶节点。这使得联盟链适用于金融、军事、医疗等对数据安全性和监管要求高的行业。
为了提升隐私保护服务能力,联盟链平台基于密码技术和可信硬件开发隐私保护模块,实现用户身份匿名和交易内容隐藏。例如,Quorum联盟链[1]在区块链层嵌入事务管理器、飞地和零知识证明模块,实现数据的安全访问、可信加密和用户身份匿名;蚂蚁链通过在可信硬件中集成零知识证明组件[2],构建安全、高效、稳定的隐私合约执行环境,为交易内容和合约代码提供全生命周期的隐私保护服务;R3 Corda[3-4]使用飞地为数据提供硬件层面的安全防护;文献[5]基于可信硬件提出了Coco框架保证合约的安全执行;文献[6]提出基于零知识证明的隐私智能合约框架,保证智能合约中交易内容的隐私;QURAS系统基于环签名技术实现对交易者地址信息的隐藏[7];CryptoNote协议[8]基于可链接的环签名技术实现对交易方身份的匿名保护;文献[9-10]通过改造LSAG和Borromean方案,实现对交易金额和交易者地址的隐藏;FISCO BCOS基于Paillier同态加密方案[11]实现密态交易的转账和合账操作。
本文分析Hyperledger Fabric[12]、FISCO BCOS[13]和ChainMaker[14]中涉及的隐私保护技术,通过技术是否支持用户身份匿名、交易内容隐藏和隐私计算来评估平台的隐私保护能力。
Hyperledger Fabric是当前国内外金融、制造和科技领域内使用最广泛的企业级开源联盟链平台,其社区包括35个组织和200多个开发者,平台支持可插拔的共识算法和身份管理协议,能够满足企业多样的应用需求。
FISCO BCOS是微众银行为金融行业开发的专业联盟链平台。截至2022年末,其社区已支撑300余个产业数字化标杆应用;开源生态圈聚集了超4 000家机构、9 000名个人成员,38家认证合作企业、400余名核心贡献者。
ChainMaker是国内自主研发的通用开源联盟链平台,其社区由27家联盟成员单位组成,在大规模节点组网、高性能交易处理和数据隐私安全方面优势明显,能够为各行业提供高可信、高性能和高安全的联盟链服务。
1 联盟链隐私及泄露风险
联盟链系统中的事务由交易方身份信息和交易内容两部分组成,身份信息用于标识数字资产的所有者,交易内容用来描述数字资产的细节[15]。本文将联盟链隐私分为身份隐私和交易内容隐私两类。
身份信息包括与用户真实身份相关的数据[16],如交易方的账户、身份证号码、姓名、年龄和住址等。
按联盟链系统的用途,交易内容包括银行流水、医疗检查报告、军事情报等信息。
从体系结构层面看,几乎所有的联盟链都存在隐私泄露威胁。例如,文献[17]认为私钥劫持和入侵认证中心是对联盟链隐私威胁最严重的攻击方式。文献[18-19]调研了Hyperledger Sawthooth、Ethereum 和 R3 Corda平台中存在的安全漏洞和隐私威胁攻击方式。文献[20]指出内部和外部攻击者均可针对Hyperledger Fabric平台的共识、链码、网络和隐私机制发起攻击,从而获取系统资源访问权限。文献[21]指出PPROF端的基础配置存在导致系统遭受拒绝服务攻击和信息泄露的漏洞。综上所述,联盟链的隐私分类以及对应的威胁攻击方式如表1所示。
表1 联盟链隐私分类与威胁攻击方式
2 面向联盟链的隐私保护技术
本节着重分析权限控制、密码和可信执行环境3类面向联盟链的隐私保护技术的概念、原理,以及它们在Hyperledger Fabric、FISCO BCOS、ChainMaker中的应用,如图1所示。
图1 面向联盟链的隐私保护技术Fig.1 Privacy protection technology for consortium blockchain
2.1 权限控制
联盟链中的权限控制机制能够实现事务在机构间和机构内不同节点间的隔离。
2.1.1 多账本
文献[22]提出通道机制实现机构间事务的隔离,机制原理如图2所示。排序节点按机构划分私有子网络,将同一通道内的事务打包成区块后进行通道原子广播,事务只对通道内的节点可见。该机制下,机构可以构建并维护独立的区块链账本,实现业务数据的隔离。
图2 Hyperledger Fabric通道Fig.2 Channel of Hyperledger Fabric
FISCO BCOS通过网络准入策略和账本白名单机制实现群组间的账本隔离,同一个节点可以同时存储和维护多个群组账本。FISCO BCOS的账本模块由核心层、接口层和调度层组成,核心层负责把区块写入底层数据库,接口层负责处理交易和区块事务,调度层负责协调群组内节点同步区块信息,如图3所示[13]。
图3 FISCO BCOS群组Fig.3 Group of FISCO BCOS
ChainMaker提出了Liquid网络架构,基于gossip协议控制消息路由表,实现链内消息广播和链间数据隔离。Liquid由网络应用层、网络管理层和安全传输层组成,网络应用层负责应用模块间的消息订阅和发布,网络管理层负责Liquid网络内节点的连接、主动发现和组网,安全传输层则通过TCP/TLS、QUIC加密传输协议完成节点间消息的安全通信和转发,如图4所示[14]。
图4 Liquid网络功能架构Fig.4 Liquid network architecture
2.1.2 私有数据集
在实际应用中,机构通常不会把敏感数据公开给所有组内节点。因此,Hyperledger Fabric提出私有数据集机制,把敏感数据存储到授权记账节点的私有状态库中,并通过gossip协议加密传递敏感数据,保证数据的传输安全。为了保证敏感数据不被篡改,机制要求把敏感数据的哈希值存储到所有记账节点的公共状态库中,两类记账节点的数据视图如图5所示。
图5 不同记账节点的数据视图Fig.5 Data view of different ledger storage nodes
ChainMaker和FISCO BCOS没有引入相应的权限控制机制对群组记账节点进行分类。
2.2 密码技术
联盟链中的密码技术可以实现用户身份匿名、交易内容隐藏,支持密文事务的合法性校验,并且对监管友好。Hyperledger Fabric、FISCO BCOS和ChainMaker联盟链平台实现的密码技术包括零知识证明、同态加密、群/环签名、承诺方案和身份分层加密,如表2所示。
表2 联盟链平台中的密码技术
2.2.1 零知识证明
零知识证明(zero-knowledge proof, ZKP)在区块链用户身份匿名和交易内容隐藏方面发挥了重要作用。联盟链中的ZKP技术,不仅能保护用户的身份和交易内容隐私[23],还支持对用户身份的追踪和交易内容的监管。
针对X.509证书的用户机构和标识等身份信息泄露问题,Hyperledger Fabric提出了匿名证书(identity mixer, IdeMix)解决方案。该方案通过两级安全证书机制[21]派生出匿名证书,实现对证书字段的隐藏和证书所有者身份的匿名。该方案下,同一用户使用不同的匿名证书发起的交易是不可关联的;另外,方案支持监管者追踪匿名证书所有者的身份。图6描述了匿名证书的生成流程和追踪过程。图6中,黑色长方体代表被隐藏的属性。
图6 匿名证书生成和追踪流程Fig.6 Anonymous certificate generation and tracking process
为实现可监管的机密转账,FISCO BCOS基于Snark技术[24]开发了零知识证明库libzkg。libzkg支持验证节点校验转账密文的正确性,并支持监管者获取转账明文。在使用libzkg时,证明者要首先构造R1CS约束把计算问题转换成算术电路,然后基于参数生成算法生成公共参数,最后基于证明算法根据随机抽样的同态隐藏值生成转账金额的零知识证明。验证者可以基于验证算法对零知识证明进行验证。
为实现对密文交易的监管,ChainMaker和FISCO BCOS先基于Bulletproofs算法[25]为一般算数电路的计算结果生成范围零知识证明,然后利用Pedersen承诺(详见2.2.5节)判断计算结果的合法性,避免产生负数金额的交易。具体地,Bulletproofs通过引入盲因子sL和sR来替换变量aL:aL+sL·X和aR:aR+sR·X,其中aL是证明值v的2进制分解,经过混淆重构为l(X)=(aL-z·1n)+sL·X和r(X)=yn×(aR+z·1n+sR·X)+z2·2n,然后计算t(X)=t0+t1·X+t2·X2,验证者通过验证等式t(X)=
文献[26]对Snark和Bulletproofs算法的计算复杂度进行对比,统计结果如表3所示。
表3 联盟链零知识证明算法对比
2.2.2 同态加密
同态加密(homomorphic encryption,HE)是一种特殊的公钥加密算法[27],它允许用户直接计算密文,计算密文的解密结果等价于对明文数据做相同的运算。在联盟链中应用同态加密算法既能保护链上交易内容隐私,也能保证链上密文交易的可计算性。为了支持监管,机构可以使用监管方的公钥加密交易金额。
为了尽量减少计算开销,降低对链上存储资源的消耗,FISCO BCOS和ChainMaker选择只支持加法同态运算的Paillier算法实现对链上交易金额的隐藏,算法细节如下。
3)Decrypt(sk,C)→m:解密算法,输入密文C和私钥sk,输出明文m。计算m=L(cλmod(n2))·μmod(n)。
4)Add(C1,C2)→Cadd:同态加法算法,输入两个用相同公钥加密的密文C1,C2。计算Cadd=C1·C2=(gm1r1n)·(gm2r2n)mod(n2)=gm1+m2(r1r2)n=Enc(m1+m2)。
Paillier算法的密文长度、加密、解密和单次同态加法运算耗时会随密钥长度的增长而增加,如表4所示[13]。FISCO BCOS对比了不同密钥长度的Paillier算法性能,并推荐用户选择2 048位的密钥进行系统开发。
表4 Paillier算法运行性能
FISCO BCOS实现了支持监管的隐私交易求和模型, 如图7所示。用户使用监管方的公钥加密交易金额,并把密文结果存储在联盟链上。监管方调用智能合约完成密文求和,然后解密得到交易金额的求和结果。
图7 FISCO BCOS支持监管的隐私交易求和模型Fig.7 FISCO BCOS supports regulated sum model of privacy transactions
Hyperledger Fabric暂时没有通过同态加密算法实现对交易金额的隐藏和密文计算。
2.2.3 群/环签名
对联盟链而言,群/环签名能够隐藏组织内交易发起方的身份。在有监管方参与的应用中,群签名技术允许联盟以组织的名义对交易进行签名,监管方可以作为群组内的管理员追踪签名者的身份。环签名允许签名者随机选择成员集合,利用成员公钥和自己的私钥将多个哈希值首尾相连构建环状的交易签名,验证者通过计算输出签名与初始输入是否相等,来判断交易签名的正确性, 如图8所示。由于没有管理员节点,一般的环签名算法不支持监管方追踪签名者的身份[14]。
图8 环签名Fig.8 Ring signature
FISCO BCOS选择了支持群成员撤销的BBS04方案[28]和具备可链接、方便追责和监管友好的LSAG方案进行集成,如表5所示[13]。FISCO BCOS通过实验证明BBS04方案的链上验签耗时不受所选线性对的影响。
表5 BBS04方案效率
LSAG方案的签名长度、签名时间和链上验签耗时都随着环成员数量的增加而增长,如表6所示[13]。因此,FISCO BCOS建议用户选择环成员的数量最好不要超过32个。
Hyperledger Fabric没有使用群/环签名技术实现对用户身份的隐藏,ChainMaker暂不支持对用户身份的隐藏。
2.2.4 身份分层加密
身份分层加密(hierarchical identity-based encryption,HIBE)是一种具有层级结构的属性加密体制。HIBE按访问权限将用户分为多个层级,上层用户能够解密下层用户的密文,但下层用户无法解密上层用户的密文,同一层的用户不能解密彼此的密文。HIBE技术能够简化联盟链用户的权限分派流程。
ChainMaker选择密文长度固定的HIBE方案[29]进行集成,该方案通过双重加密实现对数据的分层共享,如图9所示。用户得到上层派发的私钥后,通过对称加密算法和派发私钥对明文进行加密,然后根据层级情况对派发私钥进行非对称加密,最后调用智能合约完成密文上链存储。当用户想获取下层的数据时,需要先根据自己的身份信息解密出对称加密密钥(即派发私钥),然后再解密得到数据明文。
图9 ChainMaker数据分层共享模型Fig.9 Data hierarchical sharing model of ChainMaker
Hyperledger Fabric和FISCO BCOS虽然没有基于HIBE为用户分配数据访问权限,但是分别通过私有数据集技术和FISCO BCOS群组技术实现了对数据的分组共享。
2.2.5 Pedersen承诺
承诺是一种两方二阶段交互协议。在承诺阶段,承诺方计算消息m的承诺值并发送给接收方;在打开阶段,承诺方将消息m发送给接收方。Pedersen承诺的计算公式为C(m)=mG+rH,其中G是椭圆曲线上的生成点,H是椭圆曲线上的随机点,m是消息值,r是随机盲因子。联盟链通常使用Pedersen承诺隐藏交易内容。
ChainMaker和FISCO BCOS通过Pedersen承诺[30]隐藏账户余额,并将余额的承诺值存储在联盟链账本上。在转账时,智能合约计算转账金额的Pedersen承诺值,利用Pedersen承诺的同态性质,实现对应账户余额的增减。图10描述了基于Pedersen承诺的账户余额隐藏和转账流程。
图10 基于Pedersen的账户余额隐藏和转账流程Fig.10 Proccess of account balance hiding and transfer based on Pedersen
2.3 可信执行环境
针对密文事务限制智能合约应用的问题,联盟链提出了基于可信执行环境(trusted execution environment,TEE)的隐私合约解决方案,通过在平台中增加TEE硬件构造联盟链的Layer-2扩展,将部分复杂计算迁移到飞地中完成。
2018年,Hyperledger Fabric发布隐私链码(fabric private chaincode,FPC)项目,将链码迁移到可信执行环境中运行,如图11所示[31]。FPC在记账节点的Intel SGX中集成链码飞地模块、账本飞地模块、飞地登记模块和飞地交易验证模块[32],支持输入为密文的链码执行、账本数据校验和执行结果验证。
图11 FPC架构Fig.11 FPC architecture
ChainMaker提出隐私合约解决方案。隐私合约的执行环境由隐私计算网关和飞地两部分组成,隐私计算网关负责打包并转发交易;飞地负责解密和验证密文,编译并执行合约。另外,在部署隐私合约前需要完成远程证明,与FPC不同的是,ChainMaker支持任意认证中心的Intel信任根切换。
FISCO BCOS虽然没有引入可信硬件实现Layer2扩展,但是支持硬件安全模块的接入,用户可将符合GMT0018-2021接口规范的密码机/密码卡绑定到FISCO BCOS的SDK上,为节点提供硬件加密服务,保障私钥安全、提高密码运算速度。
3 技术对比分析
如上节所述,面向联盟链的隐私保护技术不仅能保护用户身份和交易内容的隐私,而且能支持隐私计算,实现事务在密文状态下的转账、拆借和合账操作,不同技术提供的隐私保护能力如表7所示。由表7可见,权限控制和身份分层加密技术主要实现对机构间交易内容的隐藏;群/环签名技术主要实现对用户身份的隐藏;可信执行环境和全同态加密技术既能隐藏交易内容,又支持隐私计算;零知识证明技术能够隐藏用户身份和交易内容,并支持隐私计算。
表7 不同技术提供的隐私保护能力
TEE和零知识证明技术均能通过Layer2扩展的方式实现隐私计算,两种技术各有优劣。零知识证明技术无需依赖硬件,但限制了智能合约的性能和通用性;TEE效率更高,但是对节点的硬件有一定的要求。
全同态加密技术可以支持智能合约处理密文,但存在效率瓶颈。因此,Paiilier基于DJN和中国剩余定理提升算法效率。
环签名算法的效率优于零知识证明,但真实用户的身份依然要在环签名中公开,并且存在恶意用户伪造签名的问题。
表8展示了联盟链平台的隐私保护能力,旨在为系统开发者提供平台的选型参考。Hyperledger Fabric、FISCO BCOS和ChainMaker都具有交易内容隐藏和隐私计算的能力,ChainMaker没有实现用户身份匿名,用户可以根据自身业务需求,开发相应的身份匿名模块,保护身份信息隐私。
表8 联盟链平台隐私保护能力对比
具体地,Hyperledger Fabric基于零知识证明技术设计匿名证书,实现对交易双方的身份隐藏;提出通道机制和账本隔离机制保护交易内容隐私;利用TEE实现隐私链码,支持复杂隐私计算。FISCO BISCO基于群/环签名技术实现对交易者身份信息的隐藏,保护用户的身份隐私;提出群组机制保护交易内容的隐私;利用paillier半同态加密技术支持密文转账、合账,并进一步基于零知识证明技术实现对密文事务的验证。ChainMaker提出HIBE方案保护用户交易内容的隐私;基于Bulletproof证明并配合Pedersen承诺实现简单的隐私计算;基于TEE实现复杂的隐私计算,另外实现了基于paillier同态加密算法的密文加法计算。
4 面向联盟链的隐私保护技术发展展望
现有联盟链平台已经具备了较为全面的隐私保护能力,但也存在以下不足:①尚未建立形式化的隐私能力评估和度量标准,无法提供各种应用场景下普适、按需的隐私保护框架;②缺乏针对跨链事务的隐私保护解决方案,无法满足不同联盟链上高维度、多模态隐私信息的共享需求;③缺少全维度的内容监管和灵活的身份追踪机制;④不具备主动防御的能力;⑤难以抵抗量子攻击;⑥无法在智能合约中实现复杂的隐私计算方案。针对上述问题,本文结合未来联盟链的技术发展趋势,提出如下研究方向。
1)形式化的隐私能力评估和度量标准。不同应用场景的隐私保护需求各异,需要多种密码算法的组合应用。但是密码算法通常存在较多的问题,例如,密文膨胀、计算复杂、单一算法覆盖面有限、协调性差、存在安全漏洞等。为解决上述问题,需要研究联盟链平台的隐私能力度量标准,形式化地评估平台的隐私保护能力,并提供各种应用场景下不同技术间协同、普适和按需的隐私保护框架,从而方便开发者更快速地设计系统化的整体解决方案。
2)跨链事务隐私保护解决方案。目前联盟链项目繁多,多链异构系统并存,跨链技术作为打通这些系统的关键技术,是当前的研究热点,相应地,跨链事务隐私保护问题也将逐渐受到重视。然而,面向联盟链的隐私保护技术暂未考虑与跨链数据交换和资产转移相关的应用场景,缺乏跨链事务隐私保护解决方案,无法满足联盟链间隐私事务的共享和交换需求。因此,提出跨链事务隐私保护方案,解决跨链验证和锁定机制与隐私保护之间的矛盾,支持异构联盟链间的隐私事务交换和转移,是未来的研究重点。
3)全维度自动化的监管体系架构。联盟链主要依赖准入机制和事后分析、追责实现对事务的监管,难以对用户身份、共识机制和交易内容等信息进行全维度自动化的监管。因此,要做到在联盟链架构中添加监管层,并把监管规则嵌入到智能合约中,实现监管的全维度自动化执行是关键。
4)平衡身份隐藏和追踪的隐私保护机制。追踪是指对匿名用户发起的事务进行实名化审查。追踪通常会泄露用户的身份隐私,但在金融等领域不可或缺。因此,需要研究平衡身份隐藏和追踪的隐私保护机制,在公开最少用户身份信息的前提下实现对匿名事务的审查。
5)主动防御能力建设。现有隐私保护技术不具备发现隐私风险的能力,无法主动抵御恶意节点攻击。因此,通过构建基于节点行为的信誉度评价模型,鉴别节点是否异常,并对恶意节点进行定期清除,从而赋予联盟链主动防御的能力,具有重要意义。具体地,可以考虑把节点访问账本的时间、频率和内容等行为作为对节点信誉评价的标准。
6)抗量子攻击的隐私保护技术。主流的公钥密码算法,如RSA、ECDSA、ECDH和DSA,在未来存在被量子计算破解的可能性。因此,研究基于格、同源等量子计算条件下安全的密码技术,实现抗量子攻击的联盟链隐私保护方案,将成为面向联盟链隐私保护技术的研究热点。
7)支持隐私计算的智能合约框架。扩展联盟链的应用场景,研究支持复杂隐私计算方案的智能合约框架,实现可信的安全多方计算、联邦学习和秘密共享,完成多源异构、高维度、多模态隐私事务的融合,也是未来的研究重点。
5 结束语
本文基于联盟链面临的隐私泄露风险,深入对比分析了Hyperledger Fabric、FISCO BCOS和ChainMaker 3个主流联盟链平台的隐私保护技术和隐私保护能力。在理论层面上,提出要制定形式化的联盟链隐私能力评估和度量标准;在技术层面上,设计跨链事务隐私保护解决方案,构建全维度自动化的监管体系架构,通过基于节点信誉的异常行为检测方式来增强联盟链的主动防御能力,提出支持隐私计算的智能合约框架,是未来的重点研究方向。