Hyperledger Fabric介绍
hyperledger fabric 是一个企业级的分布式账本,也是支持模块化架构的应用程序的 底层基础平台,Hyperledger fabric支持即插即用的组间,例如共识和成员服务。这种模块化、多样式的设计理念可以满足广泛行业的行业应用场景。
Hyperledger Fabric 是一个开源的企业级许可分布式 账本技术 (DLT) 平台,专为在企业环境中使用而设计, 与其他流行的产品相比,它提供了一些关键的差异化功能 分布式账本或区块链平台。
差异化的一个关键点是 Hyperledger 是在 Linux 基金会,它本身在 在开放治理下培育发展壮大的开源项目 维持社区和繁荣的生态系统。Hyperledger 由 多样化的技术指导委员会,以及 来自多个组织的各种维护者。它有一个发展 社区已发展到超过 35 个组织和近 200 名开发人员 自最早提交以来。
Fabric是第一个支持智能合约的分布式账本平台 使用通用编程语言(如 Java、Go 和 Node.js,而不是受约束的域特定语言 (DSL)。这意味着 大多数企业已经具备了开发智能所需的技能 合同,并且不需要额外的培训来学习新语言或DSL。
fabric官方文档地址如下:https://hyperledger-fabric.readthedocs.io/en/release-1.4/whatis.html#hyperledger-fabric
Fabric网络的主要组件
- MSP 成员服务提供者
MSP是定义身份验证方式和访问网路权限规则的组件,它可以管理希望加入网络的用户和客户端,为发起交易的客户端提高证书,MSP是通过CA(证书颁发机构)来颁发证书、验证和撤销证书。
由于Fabric是一个许可网络,区块链参与者需要一种方法来向网络的其他成员证明他们的身份,以便在网络上进行交易
Fabric网络中的节点:
联盟链能保证数据上链之后不会被更改,但是不能保证上联之前数据不会被更改。现如今也存在线下的防伪标签技术对数据进行保证。
Fabric中的账户密码和证书体系
Fabric证书体系是根据PKI规范生成的一组证书和私钥文件。PKI的主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息桥发数字证书)
为什么Fabric采用证书体系,而不是常用的账号密码队的形式进行身份验证?
Fabric上发起一笔交易,那么会对每一笔交易上加上发起者的签名证书,同时会要用发起者的私钥进行加密,如果这笔交易还需要其他组织提供背书功能的话,那么背书节点也需要在交易中加入自己的签名。面对很复杂的这种授权一套场景下,传统的账号密码不能实现这种授权。
Fabric中的证书主要包括以下:
TLS:节点之间进行通讯授权认证。
对称加密:
非对称加密:
该种非对称加密也存在一个中间人作恶情况,不安全性:以下:
基于非对称加密也还有可能存在公钥来源不安全性,所以引入了数字证书和数字签名。
数字证书:实际上就是对公钥进行数字签名,他是对公钥合法性提供证明的技术,证书体系通过引入可信的第三方机构,称为证书签发机构,为公钥做认证,来确保公钥的真实可靠。
数字签名:使用数字证书与信息加密技术、用于鉴别电子数据信息的技术,可通俗的理解为加盖在电子文件上的“数字指纹”。
CA证书颁发机构
一个参与者或者一个节点能够参与区块链网络,通过由此受信任的机构为其颁发的数字身份系统,
首先服务器生成一堆密钥,然后拿着这些公钥以及其他信息交给CA,让CA制作一个数字证书,最后颁发数字证书给服务器,服务器将数字证书传递给客户端,客户端就要用CA的公钥去解密数字证书并且验证数字证书的合法性,如果验证通过的话,就说明客户端有这样的权力以及权限,那么就可以用服务器的公钥对数据进行加密,服务器再用自己的私钥进行解密实现通讯。
Fabric中的核心模块与配置文件