InfoQ主办的全球***技术盛会-QCon2018·北京站在4月20-22日在北京国际会议中心举行。华为云区块链服务BCS专家在此次大会上做了主题为《区块链服务在公有云平台上的重要问题设计实现及解决办法》的分享。
此次演讲通过“Hyperledger Fabric概述及选型说明、华为平台架构及使用介绍、分布式系统共识问题、密码学以及安全技术”四个方面与大家分享华为云区块链服务的重要实践。
Hyperledger Fabric概述及选型说明
区块链不是一种新的技术,而是由多种技术构成的框架,包含共享账本、共识算法、数据安全隐私保护以及可编程、图灵完备智能合约,是一种防篡改的、共享的数字化账本,用于记录公有或私有对等网络中的交易,可以提高效率、降低成本、降低风险并且能促进互信,构建出一个多中心化,共识,可信,不可篡改并且可追溯的系统。
区块链分为公有链,私有链和联盟链。公有链是任何人都可以参与使用和维护,信息是完全公开的。当引入许可机制,就可以实现私有链和联盟链。私有链由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开。联盟链介于两者之间由若干组织一起维护一条区块链,该区块链的使用必须带有权限控制的限制访问,相关信息会得到保护。
区块链Hyperledger Fabric社区相对成熟稳定,华为在2016年投入该社区,并基于此架构开发区块链服务,提供联盟链和私有链。
华为云平台架构及使用介绍
为解决区块链在企业级场景下的一些突出问题,包括系统性能、功能完备性、系统扩展性、易用性等,华为云区块链采用分层架构设计、云链结合、优化共识算法、容器、微服务架构与可伸缩的分布式云存储技术等创新技术方案。
华为云区块链服务包括4层2列:
- 区块链资源层:华为云IaaS和PaaS层,为区块链系统提供***扩展的存储、高速的网络、按需购买弹性伸缩和故障自动恢复的节点等区块链资源。
- 区块链服务平台:目前基于Hyperleger1.0、docker和Kubernates上构建,具有极强的可靠性和扩展性,后续根据市场需求逐步支持Corda和Ethereum等优秀区块链框架,为上层应用低成本、快速的提供高安全、高可靠、高性能的企业级区块链系统。
- 合约层:目前提供Hyperledger标准智能合约接口,用户可以根据不同应用场景构建不同的智能合约,后续将联合合作伙伴为用户打造通用场景智能合约库如供应链管理和溯源、供应链金融、数字资产、公益慈善和互联网保险等,企业可以在此基础上快速构建区块链应用场景。
- 业务应用层:为最终用户的提供可信、安全、快捷的区块链应用,用户可以使用华为云提供的各种解决方案(供应链金融解决方案、电商行业解决方案、游戏行业解决方案、零售行业解决方案、新能源行业解决方案等等),结合合约层快速搭建区块链应用。
- 区块链系统安全:由华为云安全提供,联盟链最重要的特点是节点的可控性和账本的安全,华为云安全可以为区块链节点、账本、智能合约以及上层应用提供全方位的安全保障。
- 软件开发云:用户可以使用软件开发云实现业务应用、智能合约从开发、测试到部署等CI/CD全系列流程。
通过这种分层架构设计,华为云区块链服务为企业提供全方位的区块链服务,帮助企业快速简单的落地区块链场景。
用户通过华为云区块链服务BCS的配置页面,只需输入几个配置参数,点击确认,华为云应用服务根据参数和内置的***实践通过Kubernetes将区块链各个节点以docker容器运行方式自动部署到指定集群,只需要几分钟即可一键部署一个完整的企业级区块链系统。
将上述创建的私有链扩展为联盟链也非常简单。华为云区块链服务利用了公有云基础设施,连接周边服务,每个联盟成员为华为云独立租户,他们的集群都是属于不同的vpc,独立管理自己的节点和账本,区块链服务开发自己的邀请机制,联盟发起成员可以通过租户账号邀请的方式将其他华为云租户加入到现有的区块链系统通道中,通过绑定公网地址使不同vpc内部的节点可以通信,根据业务需求逐步扩大联盟链成员。
在部署区块链服务之后,用户可以使用软件开发云实现业务应用、智能合约从开发、测试到部署的CI/CD全系列流程。华为云区块链服务还提供图形化的界面和示例代码,帮助开发人员进行链代码的开发、安装和实例化;应用程序开发配置和构建;部署应用程序服务端和前端,调试业务等。
分布式系统共识问题
提升共识效率是区块链系统的核心问题。当前的fabric版本仅支持solo模式和kafka模式的共识算法,无法识别拜占庭错误。为了解决这个问题,华为云区块链服务集成了PBFT共识算法。
PBFT算法为了克服Primary Node采用了复杂的全量点对点通信来监听各类异常行为,通信复杂度达到 O(n^2),同时额外增加了大量签名校验,带来繁重的系统开销,降低了共识效率、节点扩展性。此外,在主节点选举或故障期间PBFT将无法正常共识,整个区块链系统服务能力将会大幅降低甚至无法服务。华为云区块链服务通过改进共识流程,保障区块链系统在节点故障和切主节点期间对外服务的稳定性,同时通过减少不必要的签名验证、简化共识流程,将通信复杂度从 O(n^2)减少到O(n),有效提升了共识效率和扩展性。
华为云还提出了更高性能的适合于联盟链的FBFT快速拜占庭容错算法,提高其共识速度到2000-1000tps。
密码学及安全技术
为了满足国内银行、金融业的需求,华为云区块链服务支持国密算法SM2/3/4,同时满足合规要求。国密算法是国家密码局制定标准的一系列算法,2017年11月SM2/9正式进入 ISO/IEC 标准。
区块链系统中,账本对参与组织是透明的。对于一些行业,如金融业,交易信息是敏感数据,非业务相关方不能查看,同时还要满足监管机构的监管要求,而大部分的区块链并没有满足隐私性要求。华为云区块链服务提供带有零知识证明的同态加密技术。同态加密库用公钥对交易数据进行加密保护,交易是密文运算,最终账本中加密保存,即使节点被攻破,获取到账本记录也无法解密;(2)提供范围证明校验,背书节点能够对密文进行背书,无需解密就能校验交易的正确性,从而识别出恶意交易风险,保证了智能合约的正确执行。华为开发出适用于Hyperledger Fabric平台的保密交易系统,通过改良的算法,比起使用传统的加法同态加密与基于环签名的范围零知识证明,性能大幅提升。
下载华为区块链白皮书
https://static.huaweicloud.com/upload/files/pdf/20180326/20180326145830_90778.pdf
点击了解华为云区块链服务BCS