奇技 · 指南

目前区块链技术的发展存在两个大的方向,即联盟链和公链,两者之间最大的区别在于是否存在”准入机制”,这里的”准入机制”指访问权限的管理机制。联盟链有“准入机制”,并不是任意的个人或组织都能参与其中,数据只在联盟链内部公开、共享。而公链,则是完全公开,没有任何的准入门槛,所有个人或组织都可以参与其中,数据对所有人公开。

下面从技术方面对联盟链和公链的异同点做了一个大致的对比:

种类

联盟链

公链

DLT分布式账本

数据防篡改

采用共识算法

准入机制

×

是否发币

×

节点数量

信任基础

×

整体来说,联盟链在实现了分布式账本、共识算法、防篡改等区块链标志性能力外,也重点实现了准入机制。联盟链既具有区块链的数据透明、防篡改特性,并将数据的互联互通限定在一定范围内,且具有不错的性能来支撑业务。企业或机构在选型过程中,往往选择联盟链技术。

在国家的十四五规划中,也明确指出“以联盟链为重点发展区块链服务平台和金融科技、供应链管理、政务服务等领域应用方案”,足可见联盟链技术是未来区块链技术一个极其重要的发展方向。

联盟链现状

目前,联盟链的现状可以用一句话概括: “超级账本Hyperledger旗下的Fabric一家独大” Hyperledger是 Linux 金会于 2015 年 12 月 发起的开源区块链项目,旨在通过提供支持不同用途组件的模块化框架,集中开展许多独立工作来开发开放协议和标准,推动跨行业区块链技术的发展,帮助企业更容易地建立企业级 区块链解决方案。

图:Hyperledger旗下项目,来源Hyperledger官网

Hyperledger目前8个创始会员、超过122个普通会员以及48个准会员机构。其中不仅包括IBM、Microsoft、J.P.Morgan、Accenture等国外科技、金融巨头,也包含蚂蚁、百度、腾讯、京东、小米、平安银行等国内互联网和金融巨头。

图:Hyperledger社区会员,来源Hyperledger官网

Fabric正是Hyperledger中的联盟链项目,目前在git上已经获得超过11.7k颗星,并拥有超过270名开发者贡献代码,主流的云服务供应商均提供Fabric的BaaS区块链服务平台。后面会详细介绍下Fabric“准入机制”。

Fabirc准入机制

下图是一个典型的Fabric区块链网络,包含3个成员组织(ORG1,ORG2,ORG3)和1个排序组织(ORG4)。

图:Fabric网络拓扑,来源:https://medium.com/coinmonks/designing-a-hyperledger-fabric-network-7adcd78dabc3

这里提到了两种类型的组织,即成员组织和排序组织。

  • 成员组织即MemberOrg可以理解为联盟链网络中的参与方,是有数据上链需求的实体,一般会在网络中维护一个或多个Peer节点。

  • 排序组织即OrdererOrg,负责Fabric中的交易排序以及区块创建,往往由网络的发起者或监管机构运行维护。Orderer是Fabric一个独特的设计,不同的底层区块链网络虽然采用不同的共识算法来生成区块,但出块节点一般都具有随机性.而Fabric为了提升出块效率以及提升联盟内部的数据监管,将网络的出块权完全赋予了单个组织,即Orderer Organization,该组织采用RAFT共识算法,维护了一个由多个orderer节点组成的排序节点集群,负责接收交易、生成区块、发送区块。

这两个组织构成了Fabric网络的主体,而每个组织都会包含一个成员身份(以下简称MSP),MSP可以理解为组织的identity,在网络中完全代表一个组织参与网络共识。Fabric的“准入机制”正是围绕以MSP成员身份为中心的Channel成员管理来实现的。下面,详细介绍下MSP成员身份、Channel通道和Channel成员管理。

MSP成员身份

Fabric中的成员身份采用的是传统的PKI体系,如下图所示:

图:PKI体系,来源:Fabric文档

每个组织在加入到网络之前,会首先维护一个属于自己的CA(Certificate Authority)证书颁发机构,用于用户身份的注册以及用户证书的签发、注销。一个CA证书主要包括

  • Subject:主体身份信息

  • SubjectPublic Key:主体的公钥

  • Issuer:颁发者即CA的信息

  • Signature:颁发者即CA的数字签名

图:PKI证书,来源:Fabric文档

MSP身份的验证流程如下:

1) ORG1的某身份账户向ORG2展示自己的证书(证书由ORG1的CA颁发)

2) ORG2可向ORG1的CA机构获取Root CA证书,并提取Subject Public Key

3) 借助ORG1 CA机构的Subject Public Key来验证该身份账户提供的证书签名

4) 签名验证通过,该身份账户为ORG1合法账户

Fabric中每个组织首先会创建一个Admin用户,并在本地维护一个msp目录,目录主要包含:

  • 组织CA的root证书(./msp/cacerts)

  • 组织Admin账户的公私钥(./msp/keystore)

  • 组织Admin账户的签名证书(./msp/signcerts)

图:MSP身份,来源:Fabric文档

至此,我们知道了Fabric中的MSP身份体系,那么:组织的MSP身份是如何在网络中发挥作用的?Fabric网络是如何通过组织的MSP身份来限制网络成员的呢?

简单来说,Fabric是借助可配置的channel来限制成员身份,只有包含在channel内的成员组织身份才允许加入网络、参与共识、同步数据。下面详细介绍下Channel的概念以及以Channel为基础实现的成员身份管理。

Channel通道

Channel同样是Fabric的一个独特设计,在Fabric中,存在着两种类型的channel,即:

  • system channel:系统级channel,在联盟链网络组建时创建,用于定义联盟链网络的创始成员等信息,由排序组织负责管理。

  • application channel:应用级channel,联盟链网络中更细粒度的划分,可以由网络中的部分组织组建而成,一个application channel代表一个真正意义上的区块链,拥有着一套独立的账本数据,application channel由网络的成员组织管理。

一个Fabric联盟链网络只有一个system channel,但可以包含多个application channel。可以理解为一个联盟中,由于组织之间有着不同的利益关系往来,不同的组织之间会建立不同的链(即不同的application channel)。

也就是说,Fabric联盟链的“准入机制”是以一个application channel为基础进行的,成员管理也就是一个channel的管理。

Channel成员管理

Channel的成员组织会在创建channel的时候指定,并将各个成员组织的MSP包含在创始区块(genesis block)中,主要是包含成员组织的CA证书和Admin账户证书,并以此管理成员。具体过程如下:

1. 配置并生成genesis block

1) 配置成员组织,重要内容:

  • ID:成员组织在网络中的标识

  • MSPDir:成员组织的MSP本地目录,用于加载msp的相关证书

  • Policies:用于定义成员组织内部的读、写、审计权限

图:成员组织定义

2) 配置application channel,重要内容:

  • Organizations: 定义applicationchannel中包含的成员组织,如下图,包含Org1和Org2

图: applicationchannel的定义

3)以上述两个配置为基础创建genesis block

2. 发起者用genesis block在网络中启动这个application channel

3. 成员组织申请将节点peer加入到application channel中,申请信息中将包含成员组织的身份证书

4. 通过genesis block中的各个成员组织CA证书来验证申请者的身份是否为application channel中的成员组织颁发。如果是,则成员组织节点加入成功并开始同步账本数据;如果不是,则会被拒绝。

由此,Fabric实现了对授权组织节点的准入以及对非授权节点的拒绝。

联盟链技术借助准入机制实现了对区块链网络成员的可控,使得企业中的利益相关方能够在相对可控的范围内实现数据的共享、防篡改以及可追溯,促进了企业在区块链落地场景的探索。鉴于联盟链技术在企业级区块链领域的优势以及国家十四五规划中的背书,笔者认为,联盟链技术在未来几年会持续发展,在各个领域也会出现一些区块链技术的优秀落地场景,非常值得研究与探索。

查看 历史文章

Kubevirt在360的探索之路(K8S接管虚拟化)
如何提高大规模正则匹配的效能
360Stack裸金属服务器部署实践

360技术公众号

技术干货|一手资讯|精彩活动

扫码关注我们

原文链接: https://mp.weixin.qq.com/s/KKak7u55VpbfLszs86CH7Q#rd 针对区块链 技术 原理做详细介绍. 按照比特币,以太坊, 联盟 链+Fabric的演进历程,依次详细介绍每一代区块链所使用的核心 技术 ,对应的主要部分的结构原理分析,以及相应共识的工作原理.并针对常听到的一些区块链基本问题做了详细的原理解释.(另外由于本人第一次录制视频课程,对于视频内容讲解可能不够到位,大家在学习课程中有任何问题或者觉得讲的不够细致的都可以在评论中提出来,我会追加成新的章节呈现给大家,谢谢!) 公链系统:无准入限制的去中心化分布式区块链系统,对地域无限制, 节点可以随进随出,属于单链区块链系统。 联盟 链系统:具有严格准入限制 的弱中心化分布式区块链系统,地域相对固定,节点需要审核进入,属于多链系统,一个通道表示一条链,联 盟链系统一般支持多通道。 私有链:纯中心化区块链系统,除了具备链式数据结构以外,本质上与 现在传统的互联网业务系统没什么区别。 演进过程: 联盟 链是目前区块链落地实践的热点,也是大家对“杀手级应用”期望最大的区块链部署形态。 联盟 链的诞生源于对区块链 技术 的“反思”,是对比特币、以太坊所体现的 技术 特点与企业客户实际需要的融合与折衷,蕴含了大量区块链工作者的智慧与辛劳。 由于对未来价值的“共识”,很多厂商推出了自己的 联盟 链框架或平台,本文选择了 Hyperledger Fabric、FISCO BCOS、微软的 Coco、企业以太坊 联盟 (EEA)及 R3 的 Corda 这五个具有一定影响力的 联盟 链,拟从设计理念、生态、效率、扩展性、节点管理与权限 本文选自《交易 技术 前沿》第二十九期 (2017年12月)   区块链被誉为第二代互联网 技术 ,使我们能够从信息互联网时代进入到价值互联网时代,价值能像信息一样在网络节点之间自由流动,不需要信任机构背书。证券行业为了保证价值转移的正常运行,催生了登记机构、托管机构、交易机构、中央对手方等信用机构,从而导致交易中间环节多、交易周期长、风险高等特点,如日中天的区块链 技术 ,正好可以解决这些问题。 源于数字加密货币在公众中的广泛流行,其背后的区块链 技术 也逐渐得到了公众广泛关注与主流机构的研究。当下区块链行业发展方兴未艾,各种 技术 发展迅速。目前对区块链 技术 的主流划分主要有公有链、 联盟 链、私有链。以比特币、ZCash、以太坊等为代表的公链,有去中心化、去信任化、抗审查、加密数字货币经济、开放的智能合约生态等主要特点。以R3、Hyperledger、金链盟为代表的 联盟 链,强调同业或跨行业间的机构或... 一直以来全球布局的 Binance Chain 认为「国内的产业区块链以 联盟 链为主,对于公链 技术 和应⽤落地能⼒还需进⼀步论证和尝试,应⽤模式和商业模式还未定性。既然国家已经抛出橄榄枝,身在中国的区块链从业者.. 如果说共识机制是区块链的灵魂核心,那么对于区块链特别是 联盟 链及私链来看,跨链 技术 就是实现价值网络的关键,它是把 联盟 链从分散单独的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。