论文部分内容阅读
区块链技术的不断发展受到了人们的广泛关注,在分布式环境下人们越来越多的采用区块链来解决账本一致性问题。但同时区块链交易层公开的特性导致用户隐私信息的泄露,如何保护区块链交易层的隐私是亟需解决的关键技术问题。当前区块链中受到隐私泄露威胁的主要是两类区块链,即由若干组织或机构共同参与管理的联盟链和所有地位相等的节点组成的完全去中心化公有链。区块链特有的数据结构和共识算法给上述两类区块链的隐私保护提出了严峻挑战:一是考虑到联盟链中成员的竞争关系和联盟链交易吞吐量高的特点,这就要求提出快速隐私保护技术,并且防止链上除交易者外的其他区块链参与者获得交易隐私信息;二是不同于联盟链中部分中心化的管理者可以实施隐私保护,公有链中所有参与节点地位平等,这就要求公有链上的隐私保护技术需要完全去中心化;三是无论是联盟链还是公有链上引入隐私保护技术,往往会带来比较大的时间和存储开销,这就要求设计的隐私保护技术需要在这两方面更加高效。目前面向联盟链的隐私保护技术难以阻止联盟管理者对用户隐私信息的获取,无法实现面向所有参与者的隐私保护,而面向公有链的隐私保护技术相关研究大多需要一定的可信第三方来实现隐私保护,难以保证隐私保护过程的完全去中心化。除此之外,区块链本身就面临吞吐量低和存储压力大等问题,现有隐私保护技术在时间和存储方面开销比较大,加剧了区块链上的现有的交易速度低和存储空间大等问题的影响。为此,本文围绕实现区块链交易层的隐私保护这一目标,对面向联盟链的快速隐私保护技术、面向公有链的去中心化隐私保护技术和面向公有链的基于环签名的固定存储的隐私保护技术展开深入研究。虽然联盟链上的隐私保护是建立在可信基础上的隐私保护,但是并不能阻止管理者获得用户的隐私信息,为此本文提出了一种面向联盟链的快速隐私保护技术FPPB。FPPB基于零知识证明对交易内容进行承诺加密,保护交易具体内容,使得验证者在不知道交易内容的情况下,仍然可以对提供商与顾客的交易内容一致性进行验证。FPPB利用管理者部分去中心化的优势,提出由管理者维护的“未消费请求列表”和“未消费资金库”,以及基于隐藏地址对接收方的地址进行加密,提高交易验证速度的同时,保护交易关系的隐私,去除交易双方链下交互的过程。在区块链平台EthereumJ上实验表明,相同区块链参数设置下,相比未引入隐私保护技术的基本交易,基于FPPB技术的联盟链交易的交易延迟时间最大增长仅为6.3%。公有链的隐私需求不同于联盟链,公有链是完全去中心化,没有可信基础。这就要求面向公有链的隐私保护技术中不应该引入任何可信第三方。这就给公有链上的隐私保护提出了挑战。为此,本文提出一种面向公有链的去中心化的隐私保护技术DPB。DPB基于零知识证明对交易内容隐藏,同时不破坏验证节点对提供商和顾客交易内容一致性的验证。另外,DPB借鉴环签名思想,交易发出者在无需第三方的情况下,把自己的身份与其他链上用户组合在一起构成“环”,以环的名义发出自己的交易,使得验证者在不知道交易的实际关系的情况下,可以对交易内容的一致性进行验证。最后,由于加密参数的分布式生成,交易双方不影响加密过程的同时,各自生成加密参数的一部分,实现了完全去中心化的隐私保护。实验表明,当环大小固定为20左右时,DPB技术的预备和验证时间相比传统基于环签名的隐私保护技术最少下降大约80%。由于基于环签名的隐私保护技术中交易的签名大小随环的大小线性增加,严重增加了区块链的存储负担。为此,我们提出一种面向公有链的基于环签名的固定存储的隐私保护技术PCRB。PCRB基于零知识证明对交易内容承诺加密,保护交易内容的隐私。除此之外,利用基于累加器和双线性映射的环签名方案,产生交易中环签名,使得签名大小固定为一个常数,进而在保护交易内容和交易关系前提下,实现对提供商和顾客交易内容一致性的验证。实验表明,在128位安全级和环大小为20左右的设置下,与传统隐私保护技术相比,PCRB技术存储开销至少降低38.6%。