HyperledgerFabric是一个开源区块链实现。区块链的安全和隐私主要体现在下面几方面的需求:交易数据安全保密、不可更改,交易匿名,符合监管和审计的要求。为了满足这些需求,Fabric采用了密码学相关的技术,包括对称加解密、非对称加解密、数字摘要等。
(图:Fabric安全服务模块)
如图所示,为了实现更加灵活的安全隐私服务,Fabric将安全服务模块化划分为通道管理、通信管理、身份管理、区块链密码服务管理模块
BCCSP服务:区块链密码服务管理。它提供了一组密码学的工具,基于这个工具集来实现应用层的数据安全和隐私保护。它提供了包括非对称加密(RSA)、分组加密算法(AES)、椭圆曲线签名(ECDSA)、哈希算法(HASH)、哈希消息认证码(HMAC)、X.509证书、标准的安全接口(PKCS11)。如果要支持国密算法,则需要扩展BCCSP服务。
通道管理服务:通道(channel)是HyperLedgerFabric的一种保护机制,用于交易参与方安全地和Peer进行通信而对其他参与方不可见。另外对于一个通道而言具备自己独立的服务空间,也就是说背书、链码、链码执行环境都是独立的。部署和升级链码也只是影响当前的通道管理员通过通道配置文件(configtxyaml)创建创世块,创世块里面保存了一些配置和安全标识,创世块会被客户端从背书节点获取回来,作为加入通道的依据。
身份管理服务:身份管理服务(MembershipServiceProviderMSP)习惯直译为成员关系服务提供者,作用类似于在一个运行Fabric系统的网络中有众多的参与者MSP就是为了管理这些参与者,辨识验证哪些人有资格,哪些人没资格。既维护某一个参与者的权限,也维护参与者之间的关系MSP中也使用了BCCSP提供的密码学服务。因为MSP维护了参与者的权限,一旦泄露,对系统可能产生不可估量的损失。
通信服务:不同节点之间通信是通过grpc通信的。主要是通过TLS来保证信道的安全。总的来说,相对于其他区块链平台,Fabric具有如下的几点拓展和优化:
1、高效的可拓展性
相比于其他区块链系统中所有节点对等的设计方式Fabric中交易的背书节点与区块
链打包的orderer节点解耦,这将保证系统有更好的伸缩性,特别是当不同链码指定了相互独立的背书节点时ꎬ不同链码的执行将相互独立开来,即允许不同链码的背书并行执行。
2、更强的隐私保护
为了保护用户、交易的隐私及安全。Fabric实现了一套完整的数据加密传输、处理机制同时其特有的智能合约执行流程也对用户隐私进行了一定程度的保护。
3、可插拔的共识算法
Fabric系统将共识交由orderer节点完成,并且允许各类共识算法以插件的形式应用于orderer节点,从而使用户能够根据具体的应用场景和错误模型选择不同类型和特性的共识算法。(文:张小军)