华为区块链策略曝光:构建云+网络+终端的解决方案
10月28日,超级账本Meetup在北京举办,华为云区块链架构师张子怡分享了华为在面对区块链时的选择、创新与策略。
以下为张子怡演讲精编,由巴比特整理。
华为面对区块链做出的三个选择
第一个选择是要不要做区块链?
我们当时问了自己四个问题:一是有利可图吗?很多报告显示,2020年基于区块链的业务将达到1000亿美元。二是政府支持吗?各国政府态度积极,鼓励探索应用场景。三是社区和标准组织支持力度如何?可以看到,18年是区块链应用元年,开源和标准加速,产业逐渐成熟。四是有应用场景吗?区块链也许会诞生创新新市场或许将重构和优化现有市场,比如房屋租赁是中心化的,未来也许是每个人把自己的房屋信息放在链上,形成一种p2p的去中心化模式。
基于这四个自问自答,我们看到了区块链的前景。我们得出了自己的判断:区块链行业应用将加速推进,从数字货币向金融和社会各领域渗透扩散。
第二个选择是做什么?联盟链or公有链?
2009年中本聪发表了比特币白皮书,开启了区块链1.0时代,但因为受限于交易性能和交易功能的单一,它的应用只能是数字货币的形式。伴随着以太坊智能合约的出现,区块链迎来2.0时代,区块链的交易能力大幅度提升,但性能还是不够高,只能用于高价值低频次的交易场景。2017年,超级账本的出现,迎来了联盟链的到来,整体交易性能进一步提高,可以在一些更为复杂的场景上应用,我们认为这是可编程的区块链3.0时代。基于这种的考虑,我们觉得联盟链/私有链会是企业级应用的主战场。
第三个选择是怎么做?BaaS平台为最终选择
我们结合区块链的落地场景,文化、娱乐、金融、医疗、版权、教育等,经过了一系列的考虑,最终认为公有云是区块链的最佳载体。因为云它自身的开放性、网络性能以及资源的易获得性,符合区块链自身的一些特性。而且联盟链要想提高它的性能,其实需要自身有一定节点可信、可靠、可控,在公有云上实现安全更简单。因此我们得出结论:区块链与云计算的结合越发紧密,BaaS有望成为公共信任基础设施。
华为区块链BCS的三点创新设计
这是华为云区块链服务的一个逻辑架构。据张子怡介绍,华为区块链BCS是构建于Docker和Kubermates之上,具有较高的扩展性,并且会与其他云服务完全打通,提供成员动态加入来构建,节点弹性伸缩,支持私有链和联盟链灵活部署,和现有的IT基础设施互联互通。与此同时,张子怡讲解了华为基于超级账本所做的三点创新设计。
一、高性能拜占庭容错共识算法,解决吞吐率过低问题
如何提高共识效率是大家都会遇到的问题,目前开源的hyperledger fabric只适合放在私有链动作,它可以在kafka上达到一定的性能,构建联盟链的时候,需要一个拜占庭式的算法。hyperledger fabric在0.6的版本中提供了一个PBFT算法,但是性能非常差,华为提出了一个快速拜占庭算法来解决这个问题。我们因为是基于华为云的相对可靠节点,通过对主节点的监控,我们在共同性和可用性中其实向可用性倾斜。
我们把共识算法分为两类,一类是证明类的共识,一类是投票类的共识。如何简单的理解呢,共识算法解决的问题就是多人共同记账,以谁记得为准的问题。出个谜题谁先猜出来给谁?是比特币工作量证明机制POW;谁的股份多谁记账的概率大?是股权证明POS机制;由股份多的人选举代言人进行记账?是DPOS机制;每隔一段时间选个组长,大家举手表决是否同意组长的记账?是实用拜占庭容错协议;利用可信硬件掷骰子,选数字最小的?是最小幸运数算法。
华为的共识算法有两点创新:一是签名+两阶段提交,二是多实例共识互相监督监督,保证公平性。我们基于PBFT算法,减少了不必要的信息通信和签名消耗。使得信息数量的复杂度由n^2 降到了n,提高了算法效率。早前测试的性能达到了5000TPS,现在更高,目前还没有公布。
二、基于关系模型的区块链,提升易用性和查询性能
华为平台上有三种区块链部署模式,第一种是全华为硬件+华为BCS软件,也就是中性化部署,所有业务部署在华为云。华为云平台支持多租的区块链服务部署,各个租户有自己的VPC,彼此之间网络和数据是隔离的,只有通过外网才能互通,所以其实并不存在中心化。第二种是线上线下的方式,部分华为硬件+华为BCS软件,也就是混合部署,允许线下的数据中心放你的区块链服务节点,线下线上打通。一部分业务部署在华为公有云,另一部分业务部署在客户私有数据中心。第三种方式是去中心化部署,完全放在线下,私有硬件+华为BCS软件,业务部署在客户私有数据中心,。
我们基于关系模型区块链,提升易用性,主要有三个出发点,一是能不能像使用数据库一样使用区块链?二是能不能低成本将现有应用从数据库切换到区块链?三是能不能支持高效复杂查询?为了降低大家的学习成本,我们做了一个底层是关系型数据库的存储,大家可以无缝切换到熟悉的代码书写方式。首先你可以进行数据分析。其次,它还支持高效的复杂产品。总体来讲,我们的设计分为三部分:一是SQL的区块链访问;而是基于SQL的智能合约开发框架;三是基于关系数据库的区块链数据管理。
三、从三个层级五大模块对区块链进行全面防护
安全设计层面,我们从三个层级、五大模块对区块链进行了全面的防护。比如说云上面的安全,我们过了等保四级。然后身份管理,我们提供了国密算法、标准的加密算法、同态加密算法,还有就是安全容器的能力,链码沙箱,以及恶意代码检测,然后链码的形式化验证,自适应的控制算法。
比如其中的国密算法是金融行业必备,在华为云部署的时候你可选择。如何解决区块链技术应用于金融的隐私和可用性?我们的方案一是引入同态加密解决隐私问题;二是提出范围证明/等式证明解决金融业务可用问题。这是一种范围可验证同态加密方法。其实同态加密技术它就实现了无秘钥对秘文的计算,既可以减少通讯代价,又可以完成计算任务。利用同态加密技术可以让解密方只获得最后的结果而无法获得每一个秘文,提高安全性。
云+网络+终端三位一体的区块链端到端解决方案
最后说一下华为云的思考,我们希望做到的是什么?
我们的策略是聚焦四大价值方向(数据、LOT、金融、运营商),以区块链平台为核心,结合网络和芯片,形成三位一体的端到端的解决方案。
通过BaaS(BCS)平台为核心,构建BCS+华为公有云的策略。网络节点和边缘计算也应该成为区块链网络的节点,保障区块链网络的真实性和安全。
终端是一个芯片,内置区块链SDK及API,它可以通过华为的电信网络,传输到华为的BCS平台上来,集成手机端或边缘端的一些信息,进行可信数据采集,构建整体的区块链解决方案,为客户打造真实的区块链应用场景。