联盟链走向何方

联盟链技术哪家强?开源架构Fabric、FISCO BCOS(以下简称“BCOS”)、CITA 技术对比。

出品:碳链价值研究院

 01 

摘要

第 46 届世界经济论坛达沃斯年会将区块链与人工智能、自动驾驶等一并列入“第四次工业革命”。《经济学人》曾在 2015 年 10 月的封面文章《信任的机器》中介绍区块链——“比特币背后的技术有可能改变经济运行的方式”。

区块链之所以被称为信任的机器源于其分布式和不可篡改的两个核心特性,这也是区块链有别于传统数据库的核心特性。这里的分布式包含两层含义:一是传统的分布式存储,二是区块链的底层协议带来的协作性,这里更多的是指代其分布式协作的能力。

在区块链中主要通过共识算法、智能合约、治理、跨链、隐私等来实现其“可信协作”,所以本文将从这几个方面并结合企业应用场景来分析底层技术的差异,来帮助企业用户更好地做出选择。同时也会从传统企业软件的可维护性、性能、开发工具、扩展性、软件协议等方面来进行分析和对比。

就联盟链的历史、以及和公链的区别来说,早期来看差异不大,但是现在随着细分市场持续深化,公链和联盟链之间的差别越来越明显。

首先,公链面对的是一个不可控场景,需要在安全,性能和去中心化上找到一个平衡点。而在联盟链企业服务场景中,参与方数量相对来说更加的可控,联盟链在性能和安全性上更容易有突破。但也正是由于参与方(节点)的可控,去中心化这个方面有自己更加独特的设计。除此以外,在公链中,所有的信息都是公开透明可以被查验的,每一个参与方相对来说比较平等。但是在工业界中,这是不可被接受的,有大量的公对公数据隐私需要处理,在企业中也存在多种组织模式需要设定权限。

基于这些特征,联盟链在发展上包括节点管理、共识选择、权限控制和合约设计范式差异化多很大,同时不同的框架对于合约的设计范式理解也不尽相同。此外,区块链有开源和闭源之分,但是区块链创造的信任是基于开源代码产生的,没有开源就不是真正意义上的区块链系统。因此为了研究的客观,本文主要集中讨论开源框架。目前在国内市场使用较广泛的开源架构分别是 Fabric,FISCO BCOS 和 CITA。

Hyperledger Fabric 是分布式账本解决方案的平台,该平台以模块化架构为基础,提供高度的机密性,灵活性和可扩展性。它旨在支持不同组件的可插拔实现,并适应整个经济生态系统中存在的复杂性。Fabric 最早由 IBM 设计和开发,2015 年将其源代码奉献给了 Linux 基金会的Hyperledger 项目。

FISCO BCOS 诞生于 2017 年,由金链盟推出,是标准的国产底层。金链盟是由深圳市金融科技协会、深圳前海微众银行、深证通等二十余家金融机构和科技企业于 2016 年 5 月 31 日共同发起成立的非营利性组织。

CITA 是一个开源的区块链操作系统内核,以高稳定性,高性能,高可扩展性为设计目标。CITA 开源项目由秘猿科技 Cryptape 于 2016 年发起。目前由溪塔科技等 CITAHub 社区企业共同维护。CITA 采用微服务架构设计,提供丰富的开发工具集,灵活的区块链治理工具,开发者可为不同类型的区块链网络进行二次开发或配置。

为了区分区块链不同的实现和设计思路,可以首先来明确一下区块链本身的定义。通常区块链本身的定义是一个去中心化和分布式账本,同时也是一个记录事件和交易的不可篡改账本。在这个账本中,不可篡改的特性是由共识算法保证的。由此看来,现有的联盟链可以分为两大类:以 Fabric 为代表,在传统数据库主导的分布式数据库技术;以及更符合“区块链精神”的 FISCO BCOS 和 CITA。

Fabric 特性:IBM Fabric 保证了区块链中的分布式和不可篡改性两点,省略了去中心化的共识机制,IBM Fabric 在框架中并没有真正的去中心化共识机制。在 Fabric 架构中,将参与方(节点)分成了三种角色即:排序节点、背书节点和提交节点。对于每一笔交易:共识状态的过程是由客户端、背书节点、提交节点共同参与完成的;排序节点只负责交易顺序的共识,而不负责状态共识,在交易状态共识和排序可以分别采用不同的策略。排序节点中的共识方式是 Kafka 或者 Raft,这实际上和已有的分布式数据库共识方式是一致的,不具备容错性。

IBM Fabric 如果作为一个一体化的套件来满足带有角色的分布式数据库业务,是功能非常全面的,但也正是节点的复杂性使得应用部署较重,对于环境要求较高。除此之外,由于共识算法采用的是 Kafka 和 Raft,导致节点数量扩展上难以突破,在项目后期扩展上会比较吃力。

CITA 和 FISCO BCOS 的特性:对于 FISCO BCOS 和 CITA 来说,保证以上所述区块链的所有特点,但是在使用的时候设计范式会和传统项目差异较大。作为一个分布式账本,可以保证数据的不可篡改同时也可以使用了去中心化的共识机制拜占庭容错,保证了 1/3 的容错率。在这两种框架中,将链的参与方分成了共识节点和只读节点两种,共识节点即是拥有记账权利的参与方,而只读节点是拥有查阅所有数据的参与方。

如果说以太坊代表着区块链的精神,CITA 和 FISCO BCOS 继承自公链。CITA  和 FISCO BCOS 身上对于以太坊虽然在场景和使用上已经和公链完全不同,但是在一些底层逻辑上还是可以看到对于公有链的继承。从技术上来讲,继承了以太坊的虚拟机,也就是继承了以太坊庞大的生态。接下来,本文将从技术实现角度对比三者的不同。

 02 

共识和交易流程

共识机制作为区块链的灵魂,无论是公链还是联盟链,共识机制都从根本上限制了区块链的交易处理能力和扩展性,同时也是其分布式协作能力的基础。共识是分布式系统中节点对数据或网络最终状态达成的协议。由于网络环境和节点状态的不可控,共识机制需要同时考虑性能、可靠性、安全性等多方面问题。共识机制从大的方面,可分为 Nakamoto Consensus 等无需准入的共识机制,和 PBFT 等需要准入的共识机制两大类。

Nakamoto 共识在公链上应用广泛,但是它的概率模型在提供较高可靠性的同时,牺牲了效率。在具体商业应用环境中,许可机制已经保证了一定程度上的节点可信度,这样的前提下,用户更关心执行效率和最终确定性。这是 BFT 类共识在联盟链中流行的原因。

接下来本文将先分别介绍 FISCO BCOS、CITA 和 Fabirc 共识技术实现,本文再从性能,应用场景,扩展性和安全性等几个方面来进行对比分析。

技术实现

BCOS共识机制效率相对较为传统

FISCO BCOS 的共识机制采用了传统的 PBFT 共识,其共识流程主要包括 Pre-prepare, Prepare 和 Commit 三个阶段:

1. Pre-prepare:Leader 节点执行区块,产生签名,并将 Proposal 广播给其他共识节点;

2. Prepare:共识节点验证 Proposal 并广播签名,同时收集其他节点签名,节点收集到 2f + 1 的签名后,开始广播 Commit 包;

3. Commit:Leader 节点收集 Commit 包,节点收集满 2*f + 1 的 Commit 包后,更新本地数据库并广播给其他节点,其他节点收到之后更新本地数据库。

下图为标准的一次PBFT的过程:

在区块链中因为共识节点之间需要统一 Commit 阶段的投票,所以最后的 Commit 阶段略为不同:Leader 节点收到 2*f+1 的 Commit 包之后会将最终的 Commit 包广播给其他共识节点来统一投票。

在整个共识流程中,交易在 Pre-prepare 阶段执行一次,在 Prepare 阶段验证一次,FISCO BCOS 中使用的传统 PBFT 流程为先执行再验证的模式,包含了两个执行交易的时间长度。

CITA 采用自主研发的共识协议

CITA 实现了根据区块链连续共识特点而优化的 CITA-BFT。区块链是一个连续共识的过程,CITA 将交易的执行和共识进行拆分,避免了两次执行的问题。根据复制状态

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值