购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 区块链3.0:数据主权与可编程信任社会

随着区块链技术的进一步发展,其去中心化、数据防伪等功能在其他领域也逐步受到重视。人们开始认识到,区块链的应用不仅仅局限在金融领域,而且能够扩展到任何有需求的领域,比如仲裁、公证、域名、审计、医疗、邮件、投票、签证、物流等,其应用范围将扩大到整个社会,在为现实社会的治理提供新理念和新模式的同时,也把治理领域向网络空间延伸,这就是区块链3.0。

1.3.1 数据主权与可编程信任社会

在互联网中,一切都可以被数据化,数据的主权、可信共享与社会的信任体系将是数字文明的最本质目标。基于数据主权和社会信任促进了社会积累知识技术所需的区块链网络的形成,并将以不可思议的方式发挥作用。基于区块链技术实现的信任机制减少了整个社会联系和交易的成本,这使得社会的管理阶层不着眼于某一特定阶层或群体的利益,而是注重各个阶层、各个群体的利益最大化,实现全体社会成员利益的整体提升与共享。

1.3.2 超级账本开源子项目Fabric

Fabric是Linux基金会发起创建的开源区块链分布式账本Hyperledger的一个开源子项目,可以把它想象成一个由自定义组织的全体成员共同维护的一个超级账本,没有中心机构拥揽权力,每次数据交换都是全网公开且安全的,其信用逻辑由全体成员共同见证。

Hyperledger Fabric(以下简称Fabric)的项目执行总监Brian Behlendorf表示,Fabric着重于性能和可靠性,以及推动区块链和分布式账本技术的跨行业协作,可用于全球供应链管理、金融交易、资产账和去中心化的社交网络等场景,但无意以此来构建一种加密货币,目前已经迎来了1.0版本(上一个稳定版是0.6版)。Fabric是一款基于Linux架构开发的具有企业应用价值的软件,能够帮助开发者在云端创建及运行区块链网络、实现分布式自治组织(decentralized autonomous organization,DAO),并面向可编程信用社会进行有意义的实验。图1-9所示为比特币系统、以太坊、Fabric三者在技术体系上的详细对比。

图1-9 比特币系统、以太坊、Fabric在技术体系上的对比

1.3.3 Fabric的数据一致性共识算法

如前所述,区块链中最重要的便是共识算法:比特币使用的是PoS算法;以太币使用的是PoS算法,算力不再重要;PoS的变体DPoS进一步削减算力的浪费,同时也加强了区块链的安全性。

但是,对于不需要货币体系的联盟链或私有链而言,上述共识算法并不能够提供绝对信任的节点以及高效的需求。因此对于这样的区块链,传统的一致性算法成为首选,如PBFT(拜占庭容错算法)、PAXOS(基于消息传递的一致性算法)、RAFT(zookeeper核心算法)。这里主要介绍PBFT算法。

PBFT算法基于拜占庭将军问题,一致性的确保主要分为三个阶段:预准备(pre-prepare)、准备(prepare)和确认(commit)。其流程如图1-10所示。

图1-10 PBFT算法的流程

其中C为发送请求端,0、1、2、3为服务端,3为宕机的服务端,具体步骤如下。

● 请求:请求端C发送请求到任意节点,这里是0。

● 预准备:服务端0收到C的请求后进行广播,扩散至1、2、3。

● 准备:1、2、3收到记录后并再次广播,1→0、2、3,2→0、1、3,3因为宕机无法广播。

● 确认:0、1、2、3节点在准备阶段,若收到超过一定数量的相同请求,则进入确认阶段,广播确认请求。

● 反馈:0、1、2、3节点在确认阶段,若收到超过一定数量的相同请求,则对C进行反馈

根据上述流程,在 N ≥3 F +1的情况下一致性是可能解决, N 为总计算机数, F 为有问题的计算机总数。

N =4, F =0时,数据如表1-2所示。

表1-2 N =4, F =0时各节点数据

N =4, F =1时,数据如表1-3所示。

表1-3 N =4, F =1时各节点数据

N =4, F =2时,数据如表1-4所示。

表1-4 N =4, F =2时各节点数据

由此可以看出,PBFT算法能够很好地容纳将近1/3的节点误差,Hyperledger Fabric V0.6就选用了该算法作为共识算法。

事实上,Fabric从V1.0以后的版本开始,支持的共识算法有三种:solo模式、PBFT算法和Kafka模式。

● solo模式:用于开发测试的单点共识,尚未应用于生产环境。

● PBFT算法:Fabric V0.6等旧版本中的主流共识算法,该算法支持3 F +1的节点集群, F 代表恶意节点的数量。这种算法性能太低(每秒处理的交易量较少,通常<100)。

● Kafka模式(本项目采用的模式):Fabric从V1.0版本开始基于Kafka,其基于zookeeper进行Paxos算法选举,是一种支持多通道分区的集群时序服务。Kafka支持2 F +1节点集群, F 代表失效节点个数,虽然可以容忍部分节点失效,但不能容忍恶意节点。由于其事实上存在orderer排序(基于一个中心化的Kafka集群),因此运行效率非常高(每秒处理的交易量至少≥300)。HyperLedger超级账本白皮书表明,未来新版本的Fabric将会同时支持PBFT和Kafka,以便用户根据实际需求进行选择。 SI7Vs+KD6dl1i0EdwvP0J0FCt5iPOrpmhmDIa1xpCRGP+hRa7QBqBpPl+swcJePC

点击中间区域
呼出菜单
上一章
目录
下一章
×