《区块链平台调研与分析报告》

《区块链平台调研与分析报告》 – FISCO-BCOS/Wiki

〇、概要

本文从8个维度,包括架构、核心技术组件、应用功能、技术能力、安全机制、适用性、开发及工具、维护支持能力,围绕Ethereum、Fabric、Corda、BCOS 4个区块链技术平台展开分析。

四个区块链平台介绍

  • Ethereum:以太坊,最早提出,可建立去中心化应用
  • Fabric:超级账本
  • Corda:是一个分布式账本;第二,Corda是一个去中心化数据库;第三,Corda是一个“受区块链启发的”技术平台
  • BCOS:名字取至BlockChainOpenSource,是深圳前海微众银行股份有限公司、上海万向区块链股份公司、矩阵元技术(深圳)有限公司三方共同研发并且完全开源的区块链底层技术平台。

一、架构

  • 数据层:数据链式结构、数字签名、哈希函数、非对称加密等算法和技术。主要实现了网络数据存储、账户和交易的实现与安全两个功能。
  • 网络层:P2P网络机制、数据传输机制和数据验证机制,实现网络节点的连接和通讯。
  • 共识层:封装网络节点的各类共识机制算法。常见:Pow、PoS、BFT等。
  • 激励层:实现代币的发行和分配。激励遵守规则的节点、惩罚不规则节点。
  • 合约层:封装脚本、算法、智能合约,赋予账本可编程的特性。
  • 应用层:各类应用场景和案例,如DAPP。

架构灵活性

  • Ethereum:分片机制,未实现。
  • Fabric:松耦合设计,将共识机制、身份验证等组件模块化;支持不同主体间交易的多通道结构,提升业务隔离、安全性方面。
  • Corda:共识机制设计为可插拔的独立性服务。通过独立服务(验证使用,不必证明合法)提高了扩展性、分账系统的兼容性和算法敏捷性。
  • BCOS:共识算法采用插件化设计,实现在多个联盟链里使用不同的共识机制,参与到同一个联盟链的所有节点必须采用同一种共识配置。

节点分类

  • Ethereum:从Pow到PoS共识,依据资产的多寡分配记账权重,更好的利用计算资源
  • Fabric:验证节点、非验证节点。通过授权和证书管理节点。
  • Corda:普通节点、公证节点(有效性共识、金融凭证流运行和签发)、管理节点。
  • BCOS:共识节点和观察节点。共识节点参与运算,成为记账者,观察节点只同步数据。

二、核心技术组件

共识机制

  • Ethereum:PoW+PoS混合机制
  • Fabric:主要为PBFT。
  • Corda:一般选择BTF为公证算法,也可以使用Raft。
  • BCOS:PBFT、Raft作为联盟链的共识算法,参与到联盟链的所有节点必须选用同一种共识配置。

通讯/P2P技术

  • Ethereum:标准加密货币协议,“幽灵”协议的最基础部门
  • Fabric:Google PRC,功能包括双向流,流控制,多路复用要求。能与网络基础设施结合,包括防火墙,代理服务器以及安全保护,提供点对点的多路传送的定义
  • Corda:AMPQ/1.0消息中间件,适合嵌入式应用。TLS加密协议。
  • BCOS:AMOP系统,联盟链内区块链节点,无论是共识节点还是观察节点,均可使用AMOP进行通讯。

存储

  • Ethereum:使用Merkle树存放交易散列。区块头记录状态快照。但回收剔除的历史区块的方法,特别是其存储方式,存在争议,主要争议点为历史数据会导致数据中心点。
  • Fabric:同Ethereum
  • Corda:数据仅存储在合约执行者的节点。
  • BCOS:支持分组多副本方式存储,支持分布式数据存储,企业可使用现有分布式存储方法,如数据仓库、数据库集群等。

计算效率

Ethereum、Corda的交易可被并行验证以提高计算效率

  • Ethereum:通过分区解决合约持久化问题和分区间并行, 但尚未实现。
  • Fabric:低效率
  • Corda:因为存储仅在合约执行节点,因此计算可并行。
  • BCOS:利用集群化、分片机制,使交易按一定的规则互相隔离,可被并行处理,且数据量可以通过垂直切分的方式,分布存储在不同的存储设备上,以满足性能和容量平行扩容的需求。

三、应用功能

身份认证

  • Ethereum:匿名身份认证。
  • Fabric:数字证书,基于PKI。
  • Corda:数字证书。存在全网身份服务节点。
  • BCOS:数字证书。使用CA证书准入机制。

账户设计

  • Ethereum:余额账户机制。
  • Fabric:无代币,可以通过ChainCode实现本币发行和账户功能。
  • Corda:无余额,所有余额通过UTXO计算得出。
  • BCOS:无代币。

私钥保护

  • Ethereum:用户本地存储
  • Fabric:用户本地存储
  • Corda:证书与私钥绑定
  • BCOS:采用加密机,与节点分离存储

智能合约

  • Ethereum:图灵完备,采取合约和共识相连
  • Fabric:Docker计算
  • Corda:JVM运行。交易、智能合约、流架构。
  • BCOS:运用Solodity合约开发语言。同Ethereum。

监管相关功能

  • Ethereum:公有链特性,监管可接入,但身份匿名,监管接入意义不大
  • Fabric:监管机构可按照规定规则来审计全部或部分总账分录,利用密钥的层级赋予权限,审计员通过“基于时间的证书”来获得总账查看权限
  • Corda:许可、运营
  • BCOS:支持监管部门和审计部门作为特殊节点接入,同步数据。提供可监管、可审计的数据接口

特权机制的实现

特权机制主要包括两类:暂停、回滚或者取消交易;改正数据。

  • Ethereum:无。理论上可“隐性地”实现暂停、回滚或取消交易以及改正数据的特权,采用硬分叉、反向交易方式。
  • Fabric:同上
  • Corda:同上
  • BCOS:BCOS可以针对特定的业务场景,制定特定的权限集合,如监管方可以是联盟链的规则制定者和实施者,通过参与准入审核,智能合约编写、部署和升级,以及事前中后的检测和干预对业务实施监管。

四、技术能力

吞吐量

  • Ethereum:当前交易限制在10TPS或者更低。
  • Fabric:1000TPS或更高
  • Corda:与交易复杂程度正相关。总吞吐量与Fabric相当
  • BCOS:数千TPS,并支持平行扩展

确认时间

  • Ethereum:确认时间12秒左右。
  • Fabric:3-6秒确认交易
  • Corda:实时
  • BCOS:1秒出块,出块即达成共识

可用性

  • Ethereum:PoW提供较高的灵活性和可用性。
  • Fabric:记账节点必须在线提供服务而不能推出网络,三分之一的节点停机将变得不可用
  • Corda:节点必须自身保证
  • BCOS:PBFT共识与Fabric一直;Raft超过1/2数量时网络不可用

五、安全机制

从总体上看,理想的隐私保护策略,如零知识证明、同态加密等大都基于较为复杂的密码学技术,目前在各平台实际应用中有待进一步完善并丰富应用场景。

六、平台适用性

  • Ethereum:Ethereum可利用图灵完备的智能合约,适应金融应用、物联网、供应链管理、社交网络、去中心化自治组织(DAO)、预测市场等场景。
  • Fabric:Fabric具备了多通道的架构设计以及共识节点的独立性,可以在保证平台上交易多方隐私性的同时,提高共识节点的效率,从而在技术上推动区块链和分布式账本技术在跨行业应用场景中的应用,使其可满足金融服务、供应链管理、智能制造、文化娱乐、医疗健康、社会公益、教育就业等领域的应用。
  • Corda:Corda定位为面向非公有链的场景,其架构设计如可插拔的共识算法、灵活可配的节点权限、凭据流概念的引入,使得Corda更接近于受监管的金融机构的应用。
  • BCOS:PBFT共识与Fabric一直;Raft超过1/2数量时网络不可用。
  • 与外部数据对接的角度上看,Ethereum、Fabric、Corda和BCOS在架构上均预留了身份、策略、数据、过程等应用模块,

七、开发及工具

编程语言

  • Ethereum:Go、C++、Python,通过编译器转成EVM语言。Solidity为首选。
  • Fabric:容器技术,支持Go、Java。
  • Corda:Java,Koltin,也支持SQL。原则上DApp支持JVM任何语言。
  • BCOS:支持C++,Java,Python,Javascript,Go。

配套开发工具

  • Ethereum:技术文档。Solidity语言。
  • Fabric:Fabric项目源码。
  • Corda:DorDapp-template,Samples。
  • BCOS:源码、SDK工具包。

接口完备程度

  • Ethereum:8545端口,JSON RPC API接口,可执行WEB3库的各种指令。
  • Fabric:灵活可扩展的模块,提供API接口,即插即用。
  • Corda:流程实时监控和展示接口,预留SQL,支持通用API接口。
  • BCOS:对业务层提供接口服务,HTTPS服务端口,JSON编码。SDK面向区块链底层功能接口的调用;SDK也面向业务,提供业务级别的接口。

智能合约的可编辑性

  • Ethereum:用户可创建自己的包含任意逻辑的合约。
  • Fabric:理论上Docker支持任何语言,但Docker架构存在资源消耗难以测定、通用性方面的问题。
  • Corda:可使用任何与JVM兼容的语言。
  • BCOS:支持Solidity,计划支持JVM。

八、维护支持能力

版本升级维护

  • Ethereum:主要由 Ethereum 基金会来负责运行,且有明确规划:Frontier(前沿)、Homestead(家园)、Metropolis(大都会)和Serenity(宁静)。
  • Fabric:由 Linux 基金会发起创建的,联盟主要成员来自大型金融机构、大型 IT 企业、大型咨询机构等不同的利益体,具备强大的资金和技术能力。源于IBM。
  • Corda:由 R3 CEV 联盟组织开发,其成员主要来自于全球知名的金融机构。
  • BCOS:BCOS由微众银行、万向区块链、矩阵元共同开发,有专业开发团队进行研发和维护。BCOS升级原则上保证向下兼容。BCOS平台借鉴COBIT模型,形成了一个三维治理体系结构,包括治理准则(Business Requirements)、治理对象(Resources)、及治理过程(Processes)。

九、总结表

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据