首页 科技 互联网 正文

Hyperledger技术专家首谈FISCO BCOS

2018年11月09日 17:47:53  来源:比特网  编辑:小水

金融行业是最早开始采用区块链技术,也是目前应用最成熟、案例最多的行业。受国情影响,我国金融业有很大的特殊性。另外,金融行业应用场景复杂,对性能要求也高,尤其是数据安全和数据隐私方面。所以针对这一特殊行业开发一个能解决行业特点的区块链平台也是情理之中的事情。

关注区块链的朋友最近应该注意到一个活动,那就是基于底层开源平台FISCO BCOS(以下简称“BCOS”)的金链盟区块链应用大赛。BCOS是企业级的区块链底层开源平台,特别是针对国内金融行业有显著优势,同时也也存一些改进空间。

笔者从3个角度谈谈BCOS平台体现出的一些优势,并在最后附上了一些改进建议:

首先,在适应业务的复杂性方面优势极强

一、权限控制。

BCOS引入了CA证书以有效管理用户和分配权限,还针对金融行业复杂的业务环境设计出了ARPI(Account—Role—Permission—Interface)模型,即账号、角色、权限、接口。

账号和角色的对应关系为N:1,即一个账号(个人或组织)只能对应到一个角色,但一个角色可以包含零个到多个账号。在实际操作中,同一角色可能有多个账号,但每个账号使用独立且唯一的公私钥对,发起交易时使用其私钥进行签名,接收方可通过公钥验签知道交易具体是由哪个账号发出,实现交易的可控及后续监管的追溯。角色与权限的对应关系为N:M,即一个角色拥有多个权限的集合,同时一个权限也能被多个角色所拥有。

二、群签名、环签名

群签名是验签时,只能获取签名者来自哪个群组,例如可以知道签名者来自某个公司或部门,但是无法知道是某个人,此功能可以保证签名的匿名性,但是签名信息仍然可以通过第三方可信机构获得。而环签名则可以彻底隐藏签名者身份,无法追踪,环签名可用于匿名交易,征信,匿名存证等环境。BCOS还提供了比较复杂的权限控制功能,例如可以防止同一个人具有两个相互排斥的角色,防止“既当运动员又当裁判员”,还提供了多个账号对应一个角色的功能

三、是弹性联盟链共识框架方案

BCOS不仅可以支持PBFT和RAFT两种算法,还对PBFT改进,支持不同投票折有不同权重,有点类似于PoS,BCOS还允许用户把业务数据纳入共识机制等特性。例如某一业务的共识必须有指定的A机构投票,或者多少ABCDE中的任意两家投票就可达成共识等等。

其次,在性能提升方面做足了功课

区块链作为一个分布式、不同的节点都存储和维护一份数据,数据冗余大,数据交换也多,所以性能一直都是区块链的瓶颈之一,再加上金融行业的节点通常分布在各自的私有网络环境中,性能问题就更突出了。为了提升性能,BCOS提出了三大改进。

一、链上信使协议

BCOS提供了一个专门的P2P通信协议——链上信使协议 AMOP(Advanced Messenger On-chain Protocol)以提高跨机构节点之间的通信效率,提供链上链下数据交换接口,同时还有容错机制。

金融机构的网络环境通常是比较复杂的,内外网通过多层防火墙隔离,不同机构直接直接通信的难度大、速度慢,而AMOP可以提供点对点的快速直接通信。那么AMOP肯定在很多场景下发挥巨大的优势。

区块链系统的一大目的就是提高联盟成员直接的相互协作和数据共享,区块链和现有业务系统数据交换是必不可少的,现在大部分的做法都是业务系统调用区块链系统的API来完成数据往区块链读写。而BCOS允许区块链系统调用链下系统的接口,这无疑可以提高数据交互能力,但是区块链的智能合约是部署在不同节点的,这要求每个部署节点都存在这样的业务系统接口,同时还要控制好权限 。

二、多链并行计算

BCOS支持多链和跨链,即根据不同的业务场景开设不同的链,这样不同的业务在不同的链上可以并行计算,这不但可以大大提高整个系统的性能,同时还可以达到把不同业务数据相隔离的目的。

三、共识并行。

BCOS通过并行计算提供PBFT提供共识速度。在标准PBFT共识算法中打包验证交易和验证交易分别是领导节点和随从节点对交易进行确认的操作,这是整个共识过程中最耗时的环节,而经过BCOS的改进,这两步可以并行进行,从而大大提高共识达成的速度。

最后,易用性提升了用户粘性

一、合约命名服务

合约命名服务CNS(Contract Name Service)

一个区块链应用系统内很多智能合约,要准确记住这些智能合约的名字和作用是非常困难的。CNS 允许合约部署者给智能合约指定一个容易记忆和辨识的名字,如“DepositContract”,显而易见这是一个存款合约。业务层只需知道这个名字,就可以向存款合约发起交易,CNS 会在处理交易之前确认名字对应的合约地址,并运行合约。

二、浏览器

通过浏览器可以查看和监控区块链上实时发生的业务,便于管理;同时还支持监管节点及AML反洗钱接口,满足金融监管需要。

三、扩展虚拟机指令

BCOS智能合约用Solidity语言编写,但是Solidity执行效率低,为此BCOS提供了一个EthCall连接Solidity和C++的编程接口,复杂的业务可以使用C++编写以提高效率。

回首,如何更进一步

BCOS针对金融行业,确实抓住了金融行业的不少痛点,也提供了相应的解决办法,但是目前落地的项目数量较少,具体效果如何还需进一步观察。BCOS技术上吸收了以太坊智能合约易于开发的特性,增加了业务系统调用的能力。但是,有些特点显得有些过激,比如BCOS增加了有“上帝”权限的超级账户权限,对于一个去中心化的区块链系统这多少有点不妥;另外,BCOS的官方文档有的地方的更像是技术博客。

BCOS从2017年开源开始,托管在github上(https://github.com/FISCO-BCOS), 采用GPL3.0开源协议,BCOS已经发展到1.5版本。成功开源一个软件是需要多方相互协作的系统工程,腾讯和华为在这方面有很强的实力和经验。华为贡献的ServiceComb也刚刚从Apache基金会孵化以Top-Level的成绩毕业就是一例。

金链盟区块链应用大赛还处于项目资料提交阶段,有兴趣的朋友还可以报名参赛。笔者也相信通过这个比赛BCOS会吸引到不少企业和开发者关注、参与。

作者介绍:赵振华,Hyperledger技术专家,具有超过15年专业工作经验,关注并研究IT前沿技术、培养技术人才,关注区块链、人工智能领域的应用研究。目前是超级账本中国工作组联席主席。

举报本文
+10
+10

依据《信息网络传播权保护条例》第二十二条之规定,即“避风港原则”,本站所有文章及内容系第三方作者上传,如有侵权行为请及时联系本站客服删除,本站不对内容传播行为承担赔偿责任。

跟贴 0
参与 0
发贴
网友评论仅供其表达个人看法,并不表明E都市立场。