火星链 火星链
Ctrl+D收藏火星链

BCO:联盟链走向何方

作者:

时间:1900/1/1 0:00:00

编者按:本文来自碳链价值,作者:碳链价值研究院,Odaily星球日报经授权转载。摘要

第46届世界经济论坛达沃斯年会将区块链与人工智能、自动驾驶等一并列入“第四次工业革命”。《经济学人》曾在2015年10月的封面文章《信任的机器》中介绍区块链——“比特币背后的技术有可能改变经济运行的方式”。区块链之所以被称为信任的机器源于其分布式和不可篡改的两个核心特性,这也是区块链有别于传统数据库的核心特性。这里的分布式包含两层含义:一是传统的分布式存储,二是区块链的底层协议带来的协作性,这里更多的是指代其分布式协作的能力。在区块链中主要通过共识算法、智能合约、治理、跨链、隐私等来实现其“可信协作”,所以本文将从这几个方面并结合企业应用场景来分析底层技术的差异,来帮助企业用户更好地做出选择。同时也会从传统企业软件的可维护性、性能、开发工具、扩展性、软件协议等方面来进行分析和对比。就联盟链的历史、以及和公链的区别来说,早期来看差异不大,但是现在随着细分市场持续深化,公链和联盟链之间的差别越来越明显。首先,公链面对的是一个不可控场景,需要在安全,性能和去中心化上找到一个平衡点。而在联盟链企业服务场景中,参与方数量相对来说更加的可控,联盟链在性能和安全性上更容易有突破。但也正是由于参与方的可控,去中心化这个方面有自己更加独特的设计。除此以外,在公链中,所有的信息都是公开透明可以被查验的,每一个参与方相对来说比较平等。但是在工业界中,这是不可被接受的,有大量的公对公数据隐私需要处理,在企业中也存在多种组织模式需要设定权限。基于这些特征,联盟链在发展上包括节点管理、共识选择、权限控制和合约设计范式差异化多很大,同时不同的框架对于合约的设计范式理解也不尽相同。此外,区块链有开源和闭源之分,但是区块链创造的信任是基于开源代码产生的,没有开源就不是真正意义上的区块链系统。因此为了研究的客观,本文主要集中讨论开源框架。目前在国内市场使用较广泛的开源架构分别是Fabric,FISCOBCOS和CITA。HyperledgerFabric是分布式账本解决方案的平台,该平台以模块化架构为基础,提供高度的机密性,灵活性和可扩展性。它旨在支持不同组件的可插拔实现,并适应整个经济生态系统中存在的复杂性。Fabric最早由IBM设计和开发,2015年将其源代码奉献给了Linux基金会的Hyperledger项目。FISCOBCOS诞生于2017年,由金链盟推出,是标准的国产底层。金链盟是由深圳市金融科技协会、深圳前海微众银行、深证通等二十余家金融机构和科技企业于2016年5月31日共同发起成立的非营利性组织。CITA是一个开源的区块链操作系统内核,以高稳定性,高性能,高可扩展性为设计目标。CITA开源项目由秘猿科技Cryptape于2016年发起。目前由溪塔科技等CITAHub社区企业共同维护。CITA采用微服务架构设计,提供丰富的开发工具集,灵活的区块链治理工具,开发者可为不同类型的区块链网络进行二次开发或配置。为了区分区块链不同的实现和设计思路,可以首先来明确一下区块链本身的定义。通常区块链本身的定义是一个去中心化和分布式账本,同时也是一个记录事件和交易的不可篡改账本。在这个账本中,不可篡改的特性是由共识算法保证的。由此看来,现有的联盟链可以分为两大类:以Fabric为代表,在传统数据库主导的分布式数据库技术;以及更符合“区块链精神”的FISCOBCOS和CITA。Fabric特性:IBMFabric保证了区块链中的分布式和不可篡改性两点,省略了去中心化的共识机制,IBMFabric在框架中并没有真正的去中心化共识机制。在Fabric架构中,将参与方分成了三种角色即:排序节点、背书节点和提交节点。对于每一笔交易:共识状态的过程是由客户端、背书节点、提交节点共同参与完成的;排序节点只负责交易顺序的共识,而不负责状态共识,在交易状态共识和排序可以分别采用不同的策略。排序节点中的共识方式是Kafka或者Raft,这实际上和已有的分布式数据库共识方式是一致的,不具备容错性。IBMFabric如果作为一个一体化的套件来满足带有角色的分布式数据库业务,是功能非常全面的,但也正是节点的复杂性使得应用部署较重,对于环境要求较高。除此之外,由于共识算法采用的是Kafka和Raft,导致节点数量扩展上难以突破,在项目后期扩展上会比较吃力。CITA和FISCOBCOS的特性:对于FISCOBCOS和CITA来说,保证以上所述区块链的所有特点,但是在使用的时候设计范式会和传统项目差异较大。作为一个分布式账本,可以保证数据的不可篡改同时也可以使用了去中心化的共识机制拜占庭容错,保证了1/3的容错率。在这两种框架中,将链的参与方分成了共识节点和只读节点两种,共识节点即是拥有记账权利的参与方,而只读节点是拥有查阅所有数据的参与方。如果说以太坊代表着区块链的精神,CITA和FISCOBCOS继承自公链。CITA和FISCOBCOS身上对于以太坊虽然在场景和使用上已经和公链完全不同,但是在一些底层逻辑上还是可以看到对于公有链的继承。从技术上来讲,继承了以太坊的虚拟机,也就是继承了以太坊庞大的生态。接下来,本文将从技术实现角度对比三者的不同。共识和交易流程

声音 | 微众银行区块链负责人:希望针对联盟链技术推出监管沙盒机制:微众银行区块链负责人范瑞彬对《国际金融报》记者表示,从2015年左右国内开始兴起对联盟链的研究,2019年中央对于区块链的论述和意见,是对区块链技术的肯定,也给区块链的发展指明了方向,是具有里程碑意义的。范瑞彬建议推动监管沙盒尽快落地。他表示,目前部分场景中存在一些监管合规及法律适用性尚未明确的问题。希望针对联盟链技术推出监管沙盒机制,在做好风险管控的前提下,鼓励大家去应用区块链技术,扶持创业项目,在金融稳定和金融创新之间找到平衡。(国际金融报)[2020/1/13]

共识机制作为区块链的灵魂,无论是公链还是联盟链,共识机制都从根本上限制了区块链的交易处理能力和扩展性,同时也是其分布式协作能力的基础。共识是分布式系统中节点对数据或网络最终状态达成的协议。由于网络环境和节点状态的不可控,共识机制需要同时考虑性能、可靠性、安全性等多方面问题。共识机制从大的方面,可分为NakamotoConsensus等无需准入的共识机制,和PBFT等需要准入的共识机制两大类。Nakamoto共识在公链上应用广泛,但是它的概率模型在提供较高可靠性的同时,牺牲了效率。在具体商业应用环境中,许可机制已经保证了一定程度上的节点可信度,这样的前提下,用户更关心执行效率和最终确定性。这是BFT类共识在联盟链中流行的原因。接下来本文将先分别介绍FISCOBCOS、CITA和Fabirc共识技术实现,本文再从性能,应用场景,扩展性和安全性等几个方面来进行对比分析。技术实现BCOS共识机制效率相对较为传统FISCOBCOS的共识机制采用了传统的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阶段验证一次,FISCOBCOS中使用的传统PBFT流程为先执行再验证的模式,包含了两个执行交易的时间长度。CITA采用自主研发的共识协议CITA实现了根据区块链连续共识特点而优化的CITA-BFT。区块链是一个连续共识的过程,CITA将交易的执行和共识进行拆分,避免了两次执行的问题。根据复制状态机的原理:起始状态一致,执行交易顺序一致,执行过程是确定的,三个条件都满足的情况下就可以保证最终结果一定会一致。在区块链中起始状态由创世块来保证一致,虚拟机是完全确定的,所以只要保证交易顺序一致就可以保证其最终结果一定一致。在区块链中Block的preHash已经包含了上个块交易处理之后的世界状态信息。CITA-BFT对当前区块的交易顺序和上个区块的执行结果进行共识。这样在共识过程中不需要去执行交易,而只需要在共识完之后进行一次交易处理,大大提高了整个链的吞吐量。CITA-BFT是针对区块链连续共识的特点进行了优化,采用了先共识后处理的方式,使得共识的过程不必执行交易,只需要共识完成之后执行一次交易即可。经过验证,在最简单的存证交易时,共识性能有35%左右提升。CITA-BFT避免了共识协议最后一轮Leader广播的过程。在传统的PBFT中在最后的Commit阶段,需要Leader收到足够的Commit包并广播给其他节点。区块链是一个连续共识的过程,在CITA-BFT中,Block中共识投票是上一个区块的投票,所以合并了Commit阶段的Leader广播最终区块过程和下一个高度的Proposal阶段,这样节省了一轮广播过程,通过下一个高度Proposal的过程统一了Commit投票信息。CITA-BFT采用Proposal预处理技术使共识和执行能够并行进行,提高了系统性能。由于联盟链在多数情况下,网络状况良好能在一轮共识流程中完成共识,CITA中引入了Proposal预处理的技术:在Pre-prepare阶段,节点在收到Proposal之后可以直接处理交易,而不必等到共识流程完成,等到共识流程完成之后再将共识结果通知交易处理器。在传统的PBFT的过程中,交易处理和共识是串行的,引入Proposal预处理之后,可以使得共识的Prepare阶段Commit阶段和交易处理并行进行,大大提高了整个系统的吞吐量。经测试,对于简单的交易处理,有10%到20%左右的性能提升。在CITA中采用了CompactBlock的技术来压缩共识区块的大小,提高网络带宽利用率。Block中的交易已经单独广播过一次,所以共识Block中只需要包含交易ID即可,这样可以大大降低区块消息的大小。经测试在网络条件较好的情况下,对于简单的交易处理,有5%到10%的性能提升。Fabric共识机制限制业务效率提升Fabric将其节点角色分为:排序节点,背书节点,提交节点。客户端首先将交易请求发送给背书节点,背书节点执行后将read/writeset及其签名返回给客户端,客户端收集到足够相同的结果后,将read/writeset、多组签名和交易请求组成签名后的交易,发送给排序节点,排序节点组成区块之后,广播给提交节点,提交节点验证read/writeset和签名数是否满足,标记结果并保存合法的结果到各自的账本。在Fabric中由于交易的执行是非确定性的,这点不同于FISCOBCOS和CITA的设计理念。所以需要背书节点先执行交易,并由客户端根据背书策略进行对比结果,再发给排序节点,最终由提交节点验证并更新各自的数据库。可以理解为:共识状态的过程是由客户端、背书节点、提交节点共同参与完成的;排序节点只负责交易顺序的共识,而不负责状态共识。在交易状态共识和排序可以分别采用不同的策略。比如交易状态可以采用超过3/4的状态一致,而排序节点的共识使用传统的Raft或者Solo共识,采用传统CFT共识即可满足多数场景。这里的问题是交易中需要包含用户的签名,以及多个背书节点的签名,以及read/writeset,这样导致交易非常大。Fabric在交易状态有冲突时,例如A和B之间频繁转帐这种场景,因为每笔交易都会修改AB账户的余额,所以会造成交易冲突。冲突交易每个块最多只能有一个交易被处理,这将大大限制业务合约的场景。性能对比CITA共识性能好FISCOBCOS:传统的PBFT共识过程中会重复执行交易,共识效率一般CITA:先共识再执行,只执行一次交易,整体效率较高优化Commit阶段的Leader广播过程,减少共识时间Proposal预执行技术使得共识和执行并行,提高整体性能CompactBlock技术提高带宽利用率Fabric:执行和排序可以采用不同的共识策略,比较灵活交易需要多个背书节点签名和read/write集合会导致交易非常大对比可以看出FISCOBCOS采用传统PBFT,共识效率一般;CITA采用了自主研发的CITA-BFT,共识和交易处理有50%以上的性能提升;Fabric将整个流程拆分为执行、排序、验证,增加了灵活性,但是验证和执行的分离导致交易非常大。应用场景Fabirc共识机制限制了业务场景FISCOBCOS/CITA:都是BFT类共识,适合多数的联盟链场景,由参与方、监管方和可信第三方组成共识节点。Fabric:将共识的流程拆分为执行,排序和验证,具有更好的灵活性,但是由此带来交易结构非常大,而且冲突交易每个块只能上链一个交易,大大限制了业务合约的场景。比如对于一个统计投票的合约,有N个投票者,每个投票人员通过发送交易进行投票,因为总的投票结果是共享状态,这种情况下每个区块只能处理一笔交易。比如对于Randao项目,需要收集参与者的所有提交信息,这个时候就需要一个集合变量来存储这些信息,由于每个参与者的交易都会修改这个集合变量,导致每个块只能处理一笔提交交易,并且集合变量会导致read/writeset会非常大。扩展性

实力派 | 范瑞彬:联盟链可以兼顾金融创新和金融稳定:在今日“金色实力派”线上访谈中,针对海创链CEO张弢提出的“联盟链和公链是否存在竞争,这两者能不能结合?”的问题,微众银行分布式商业科技发展部副总经理、区块链负责人范瑞彬认为两者是两个不同的发展方向。他表示,微众银行从15年组建团队来做区块链时就一直选择的是联盟链,因为联盟链可以兼顾金融创新和金融稳定。而且他也认为,联盟链作为支持分布式商业的基础设施,更能满足分布式商业中的多方对等合作、价值共享与合规有序发展要求。[2019/12/18]

安全性

可以看到,BCOS和CITA都使用类BFT的共识,所以在安全性方面分析现有的BFT协议即可,有用比较高的安全边界。对于Fabric,由于执行、排序、提交节点职能的分离,且执行和排序可以分别采用不同的共识策略,安全策略可以由用户自由把握,客户端参与状态和执行的共识。智能合约

智能合约一词有一定的误导性,智能往往给人带来一定的神秘色彩,就其合约功能本身来讲并无”智能性”。在区块链出现之前,所有的系统都是采用中心化的架构,监管机构和用户无法验证和保证系统功能的正确性,无法确保数据未被恶意修改,无法保证数据的安全性。由于区块链的出现,使得在不依赖于第三方的情况下,能够可信地进行交易,而且交易可追踪无法逆转。智能合约的核心含义在于:在区块链基础上实现可信计算,并由区块链协议保证的可追踪和无法逆转。在比特币中交易主要用于点对点的现金支付,以太坊由于引入图灵完备的智能合约被称为区块链2.0。虽然理论上以太坊上的智能合约是图灵完备的,但是受限于交易手续费、合约指令、区块Gas上限、节点可信度等,公链智能合约并不适用于现有的企业开发。联盟链由于节点数量有限,且节点运营方可以采用高性能的硬件设备,以及底层协议支持等,更适合企业开发。首先本文介绍三者智能合约的技术实现,再分别从安全性、易用性、可用性三方面进行对比分析。技术实现BCOS和CITA均支持EVM和预编译合约。借助于Ethereum智能合约的完善的生态系统,两者都在其基础之上做了定制化,有丰富的合约编写和测试工具。对于预编译合约需要开发者对区块链系统有一定的了解,需要较高的门槛。当前支持EVM的语言主要是Solidity,Solidity合约可以通过交易进行部署,在调用时将合约代码加载到虚拟机中。Fabric的合约通过ChainCode的方式以Docker的方式进行线下安装,然后通过交易进行激活。ChainCode合约的部署相对较重,但支持多种语言,合约的部署和更新以线下方式进行更新,合约代码并没有进行共识,可以将合约看成黑盒,只需要保证其输入和输出正确即可,并不关心其内部逻辑的具体实现。由于Fabric采用了传统的语言进行合约编写,虽然开发者不需要学习新的语言,但是由于虚拟机的不确定性,ChainCode的方式只适合Fabric的先执行再共识再验证的共识方式,并不具备通用性。安全性安全性是智能合约有别于其他程序的主要特征,这里的安全性,包含确定性、可验证、可审计、可追踪等特性。由于BCOS和CITA在智能合约设计理念上接近,本文将两者放入同一栏中。

金色相对论 | 黄连金 :联盟链和公链需要代币作为激励提高交易后的清算和结算的效率:本期金色相对论中,对于无币区块链和有币区块链各自的优势及各自应用场景,核聚链创始人、NULS 技术顾问黄连金表示,一般纯粹进行区块链底层技术的研究,没有涉及具体应用场景,可能不需要币。一个公司内部的私有链可能也不需要币来做区块链。但是很多无币区块链的应用场景应该可以用传统的分布式数据库技术就能够解决。大部分联盟链和公链的应用场景都是需要一个激励机制把利益的不同方或者社区凝聚在一起,需要一种原生的代币或者通证来提高交易后的清算和结算的效率,并且需要通证经济模型来支撑区块链应用场景的生态系统。

有人说联盟链不需要币,其实大部分联盟链的项目没有激励机制,没有通证就是一盘散沙。在联盟链里引进代币或者通证,其好处是在联盟链的去中心化或者多中心化的生态系统引进代币或者通证等于引进了一个基本的清算和结算和流通的机制。 这个可以很大程度减少流通和结算成本。比如开发者可以获得代币为联盟链的底层做开发,联盟链系统上的服务提供商可以接送代币作为报酬,服务消费者可以用代币来消费。一个没有代币的联盟链就缺乏原生的清算结算和流通的单位,整个生态系统的构成会比较困难。[2018/9/29]

对比可以看出由于BCOS/CITA交易是链上执行的,所以BCOS/CITA的智能合约更具有确定性、可验证、可审计、不可逆、可追踪的特点。Fabric在合约代码由背书节点各自部署和升级,验证性、审计性、可追踪性无法保证。但是由于在Fabric的设计理念中,合约执行后再由客户端进行验证,本文可以认为合约最终的结果是由客户端和背书节点共同决定的,只要交易结果符合背书策略并且符合用户预期,对于合约代码的验证性要求相对就没有那么重要了。易用性BCOS/CITA在合约易用性上略胜于Fabric

BCOS/CITA支持以太坊EVM并且对其工具链进行深度优化,对开发者更友好,合约的部署、调用、升级都通过交易进行,更轻量和方便。可用性

BCOS/CITA/Fabric都可以应对企业复杂的业务逻辑,支持比较复杂的合约计算和处理,同时CITA支持链上定时任务。性能

经过区块链底层技术最近几年的发展,联盟链的性能已经不再是其最主要的瓶颈。BCOS官方文档并未提供性能数据,本文只能根据第三方提供的数据来判断,我们找到了两个相对可靠的信息来源。中国信通院可信区块链最新评测,BCOS单链TPS超2万。(undefined)当测试团队说区块链性能达到10000TPS的那一刻,张开翔在微信群里给团队发出了人生中最大的红包。“。因为两次测试数据均未提供测试用的环境、节点数、使用的共识协议等,推测这里可能是分别使用了不同的共识方法和节点数进行的测试。CITA在官方文档中最新版本的交易性能已经可以达到15,000+TPS,数据来自CITA0.16版本,在四台32核,64G的云服务器上部署4个节点,每台服务器配置百兆带宽。Fabric官方并未提供其性能数据。根据第三方提供的数据,在32核CPU,10节点的情况下,性能可以到3400左右。根据这份报告背书节点数对性能影响并不大,因为背书节点并不实际参与共识。现阶段联盟的性能已经有了长足的进步,相对落地场景而言,性能已经不再是最主要的瓶颈。同时国产联盟链在性能方面已经不输于国外的大品牌,甚至已经领先于国外。存储

声音 | 信通院何宝宏:公有链和联盟链的架构模式开始走向融合:中国信息通信研究院云计算与大数据研究所所长何宝宏今日在微博表示,随着应用场景趋于复杂,公有链和联盟链的架构模式开始走向融合:以面向大众的公有链做基础设施,通过隔离和加密等手段,面向企业构建基于公有链的联盟链。这种模式与业界之前的虚拟专用服务器(VPS)、虚拟专用网(VPN)、虚拟专用数据库(VPD)和虚拟专用云(VPC)等非常相像,因此可以称为“虚拟专用链(VPB)”。业界宣称“没人能够控制一个区块链”,而更准确的表达应该是,“在区块链系统的规则下,没有人能控制你什么时候、与什么人做交易”。只有在区块链的手掌心里,你才可以放飞自由。 ????[2018/9/24]

区块链的存储从内容方面讲主要包括两个方面:区块和交易存储、世界状态存储。本文先分别介绍各自的实现方式,再从支持数据库类型、存储效率、可扩展性、数据维护等方面进行对比分析。实现方式BCOS的状态存储支持两种存储模式对于区块的保存,BCOS交易列表,交易回执等都采用了传统的MPT方式保存。对于世界状态,BCOS采用了两种存储模式:storagestate和MPTstate。MPTstate支持RocksDB和External存储,MPT存储在保存历史状态的同时,最大化减少存储数据。StorageState支持RocksDB、MySQL、External,使用storagestate存储时,牺牲了部分的可追溯性,但带来了性能上的提升,同时能支持SQL语句的查询和统计。因为世界状态始终是可以通过交易进行还原,所以对于牺牲部分可追溯性而换取性能的提升和状态查询是可以接受的。CITA支持RocksDB、External存储。使用MPT保存状态,使用SimpleMerkleTree保存交易和交易回执。对于状态存储CITA选择了经典的MPT存储,保存历史状态的同时,最大化减少存储数据。而对于交易和交易回执使用SimpleMerkleTree存储,可以优化存储数据量和减少Hash计算。Fabric的区块存储,同样采用了MPT的方式进行保存。对于世界状态的存储支持KV和CouchDB存储,在世界状态存储时,Fabric不支持历史状态的保存,同时有性能上的提升,并支持丰富的条件查询和统计。对比分析

对比来看:CITA在交易的存储结构上做了优化和改进,提供了快照功能对世界状态的历史进行裁剪。BCOS世界状态的存储模式上,支持两种不同的模式,允许在牺牲一部分状态可追溯性上,提升性能和支持丰富的SQL查询。Fabric的世界状态存储不保留历史状态,支持世界状态的条件查询。本文认为在交易存储方面,节点必须要保留历史记录,而对于世界状态的历史存储,可以通过交易进行还原,在这种情况下BCOS/Fabric为用户提供较好的查询功能和较高的性能是一个不错的取舍。治理

联盟链不同于公链的最大不同之处在于其治理方式的不同,对于公链来讲由于其是开放的系统需要一定的经济激励来协调不同角色间的关系,而联盟链由于节点是准入机制,所以其治理方式与公链有非常大的不同。对于联盟链来讲,其治理主要包含:节点管理、帐号权限、经济模型。节点管理对于BCOS和CITA来讲,节点主要分为两类:共识节点和普通节点。共识节点负责共识出块,普通节点只能同步数据并验证数据而没有打包交易的权力。对于Fabric,节点分为背书节点,排序节点,提交节点。背书节点负责执行交易并返回结果,排序节点负责对交易排序并打包出块,提交节点负责验证交易并更新状态。

分析 | 区块链将在金融、企业服务领域加强渗透 联盟链或私有链将成主流方向:近日人民创投联合链塔智库BlockData发布的《2018中国区块链行业白皮书》将区块链行业划分为“3+1”层,其中‘3’代表三个行业应用层,包括底层开发平台及基础应用层、应用开发及技术扩展层以及行业应用层,其中,行业应用层又分为四个部分,分别是金融领域、实体经济、社会应用和公共事业;‘1’代表分支层,代表的是区块链行业服务的企业及机构。我国在大部分行业已经有所发展,且在部分领域处于世界领先水平。未来区块链技术将会在各个领域渗透,尤其是在金融领域与企业服务领域,联盟链或私有链将成为主流方向;区块链创业热情将持续高涨,高科技领域拓展应用空间,区块链发展机遇与挑战并存。[2018/6/25]

对于共识节点BCOS/CITA均采用了系统合约的方式进行管理,节点的增删需要共识节点进行共识。而Fabric的节点增删,可以由节点管理员修改配置,无需共识,但是激活新的配置文件需要发送交易并进行共识。本文认为通过白名单/黑名单的方式或者CA的方式管理节点身份,均能满足联盟链的大多数场景,CA在对节点身份的验证方面更加严格。用户权限管理对于联盟链来将,联盟各个角色以及联盟内均需要比较复杂的权限管理,这样不同的角色只能访问属于自己授权的资源。在CITA/BCOS中都通过复杂的权限管理,来对用户的交易权限进行管理,包括发送交易,创建合约,合约方法调用权限等等。Fabric通过配置文件的方式(Policy)的方式进行管理用户的权限。BCOS/CITA权限管理通过交易的方式进行管理,比Fabric通过配置文件的方式修改,更加区块链化,治理操作会保留痕迹。经济模型CITA支持两种不同的经济模型在公链中,矿工打包用户的交易往往需要用户支付一定的手续费;对于联盟链来讲,情况有所不同。

BCOS、CITA和Fabric均支持向用户提供免费服务的模式,同时在BCOS/CITA中会通过系统合约控制用户单个区块内对系统资源的使用情况,防止对系统滥用。而CITA又可以支持收费模式,节点对用户交易精确计费并收取Token手续费。而Token即可以是节点免费分配给用户,也可以需要用户有偿使用,这样可以更加精细地控制用户对系统资源的使用情况。跨链和隐私

跨链和隐私方案,距离生产环境依然有可优化空间BCOS引入了群组的方式,使一个节点可以属于不同群组,而群组的消息、交易、存储、执行等等完全隔离。Fabric的群组概念和BCOS类似,一个节点可以属于不同群组,不同群组可以使用不同的背书策略。在BCOS和Fabric中,群组的数据和通信等都是隔离的,并且可以使用不同的共识策略,所以可以将其看成多链。当前对于多链最大的问题在于链间通信,两者在这方面均没有非常成熟方案。在CITA中,引入了侧链技术,侧链和主链之间可以互相通信,侧链技术距离生产环境依然有可优化的空间。无论群组或者侧链等技术,本质上都是一种多链技术,当前多链技术只能解决节点的隐私问题,暂时无法处理交易和用户级别的隐私。CITA已经开源其零知识证明和SGX的实现。对于同态加密、零知识证明,SGX等等,都处于发展阶段,距离生产环境依然有可优化的空间。密码学支持

CITA在密码学支持上更全面

对比可以看到BCOS/CITA均支持国密,对国内监管需求较友好;在密码学算法支持上CITA更全面,除了支持常见的Keccak/Secp256k1之外,也支持更安全性能更好的Keccak/Secp256k1。系统架构

CITA采用了微服务架构BCOS和Fabric均采用了单一系统的架构,这种架构要求节点必须在单一的物理机器上。而CITA采用了微服务架构,而且CITA也是全球第一个使用微服务架构的开源区块链。采用微服务架构,可以使节点不仅仅限制在单个物理机器上,这样对于企业用户可以用更好的硬件设备去支持节点,有更好的扩展性。由于微服务间通过消息订阅进行通信,企业用户可以方便地替换或者增加定制化的服务,方便进行功能扩展。开源协议

BCOS的开源协议对商业应用不够友好

这里简单介绍下相关的开源协议。GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。ApacheLicence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。由此可以看出,BCOS的开源协议对商业应用不够友好。语言实现

CITA使用更现代的语言Rust,性能更高同时安全性更可靠BCOS:使用C++进行开发,C++性能高,但是由于其历史原因,系统容易有内存安全的隐患;Fabirc:Go实现,由于垃圾回收机制性能比C++弱;CITA:Rust实现,现在相对主流的区块链界的语言,Rust在内存安全方面有保证,性能可以和C++媲美。总结经过以上的分析,本文汇总其最主要的优缺点:

标签:区块链ITABCOCOS区块链技术通俗讲解小区Shrimp CapitalABCO价格globalvillageecosystem

币安app官网下载热门资讯
USD:避险需求升温,震荡冲高盘整

2020年第1周区块链二级市场报告2019年12月29日-2020年1月6日本期报告重点内容:本周大盘走势:避险需求升温.

1900/1/1 0:00:00
NFT:NFT:加密数字资产的基石

本文首发:DegameLabs链游实验室,专注于研究链游新玩法,定期进行技术分享和行业资讯。导读:从2017年末迷恋猫(cryptokitties)的爆红至今已过去了接近2年,它带来了ERC72.

1900/1/1 0:00:00
XIN:Mixin搭台,李笑来“浇灌新韭菜”

编者按:本文来自蜂巢财经News,作者:JXkin,Odaily星球日报经授权转载。币圈大V李笑来最近又陷入争议.

1900/1/1 0:00:00
区块链:海外周报 | BEAM完成首次减半;Grin宣布1月15日进行硬分叉(12.30—1.05)

Odaily星球日报出品作者|王也编辑|郝方舟上周,Telegram拒绝了向SEC透露有关其ICO的财务数据.

1900/1/1 0:00:00
LIGHT:区块链概念股有哪些?

什么是区块链概念股?区块链概念股,因业务与区块链有某种联系,被市场归为区块链概念股,“概念股”也有门槛,从比特币、代币、ICO到区块链,投资者还来不及弄懂概念的真实含义,热潮已经起来.

1900/1/1 0:00:00
Mixin:签到10年,到手30万?李笑来站台的Mixin,被质疑是局

编者按:本文来自一本区块链,作者:林格,Odaily星球日报经授权转载。币圈,从来不缺套路。近日,李笑来站台的聊天和钱包工具Mixin,便因为充满套路的签到,陷入了一片质疑声中.

1900/1/1 0:00:00