论文部分内容阅读
区块链是一种分布式架构,具有多中心化、透明公开、不可否认等特点,能够在不依赖第三方可信机构的条件下,在陌生节点之间建立点对点的可信价值传递,降低交易成本,提高交互效率,有非常广阔的应用前景。但是,随着区块链技术的推广和普及,隐私泄露的问题日渐突出,如果不能很好地解决区块链中的隐私保护问题势必会影响到区块链未来的发展。身份隐私和交易隐私是用户在使用区块链技术时需要重点保护的内容,一旦泄露会对用户造成严重的危害。由于存储在区块链全局账本中的数据无法删除和篡改,即使用户发现部分地址或者交易数据已经曝光,也无法对其采取挽救措施。因此,如何有效地避免区块链中隐私问题的泄露已经成为区块链发展的重中之重。本论文为解决区块链中隐私保护的问题,分别从身份识别和访问控制两个方面,基于联盟链开源项目Hyperledger Fabric v1.0设计并实现了一套隐私保护方案:第一,设计并实现了一种针对匿名证书的改进方案,该方案解决了联盟链Fabric中二级证书机制存在的效率低、密钥存储空间大等问题。改进方案对复杂的密钥派生算法进行了优化,该方案提高了密钥派生算法的效率,优化了匿名证书的结构,解决了密钥存储空间大的问题。最后通过Hyperledger Fabric vl.0作为平台,用go语言实现了该方案;第二,分别在智能合约和账本层面设计并实现了通道内的访问控制机制。在智能合约层面,通过链码逻辑来实现基于属性的访问控制机制,本论文对属性相关的接口进行了封装和实现,可以更加方便的利用编写链码逻辑来实现访问控制;在账本层面,将账本中交易的输入数据进行了加密,原数据只对背书节点可见。这种设计避免了通过对账本数据的分析得知交易内容,使数据更加安全;第三,对上述方案中密码算法部分进行了国产密码算法的替换。将原算法中的公钥签名算法ECDSA替换为国密算法SM2,对称加密算法AES替换为国密算法SM4,哈希算法HMAC替换为国密算法SM3。基于Hyperledger Fabric v1.0平台采用国产密码算法实现了原型系统,实现两级证书(身份证书和匿名证书)的生成、存储和验证,实现了同一通道内数据的细粒度访问控制,满足了高安全应用场景的需求。测试结果表明,改进方案提高了匿名证书的生成效率,访问控制机制满足行业应用的性能要求,可为区块链应用提供更为安全、可用的隐私保护方案。