可信区块链推进计划主任卿苏德:可信区块链评测结果通报
10月9日-10日,由中国信息通信研究院、中国通信标准化协会联合主办,国际电信联盟、可信区块链推进计划、工业互联网产业联盟、中国支付清算协会、互联网医疗健康产业联盟、中国保险学会特别支持的“2018可信区块链峰会”在北京召开。工业和信息化部总经济师王新哲出席会议并致辞,中国科学院院士郑志明作主题演讲,会议由中国信息通信研究院院长刘多主持。会上可信区块链推进计划主任卿苏德博士以《可信区块链评测结果通报》为题做了精彩演讲。
卿苏德
2018年10月9日《可信区块链评测结果通报》
各位领导,各位来宾,大家好!我是可信区块链办公室主任卿苏德,非常荣幸能够在这里跟大家做一个汇报。我们历时四个月进行了可信区块链测评,积累了一手的最前沿的素材跟大家做汇报,希望通过这次汇报,为大家展示国内区块链的最新发展动态。
2018年4月9日,由中国信息通信研究院牵头,汇聚了158家区块链企业,共同启动了可信区块链推进计划,形成最广泛的行业共识,编制了可信区块链系列标准,包括第一部分《参考架构》,第二部分《总体要求和测试指标》,第三部分《测试方法》,第四部分《性能评测规范》,未来还要制定相关的BaaS、安全等标准。
其中,第三部分测试方法标准包括19个指标、95个评测项。2017年,我们开启了第一轮预评测,当时是14个指标、54个评测项。可以看到,今年测试项增加了近一倍,围绕核心技术、应用支撑以及运维管理三个部分进行评估,希望从系统可靠性、安全性、稳定性、适配性以及可移植性等做一些具体的标准测试。
本次可信区块链功能测试报名42家企业,由于形式审查较严格,最终参与功能评测的有20家单位。形式审核没有通过的主要原因是自评与标准不符合,合规性存疑等问题。经测试评审后,一次通过测评的有14家,一次通过率70%,有4家是整改之后才通过,还有2家是整改之后复审再通过。
通过了功能评审的厂商才能报名性能评测,性能评测共有10家企业报名,由于机房排期等问题,最终完成性能评测有7家企业。
本次功能测试依赖可信区块链系列标准第三部分, 95个测试用例可以分为两类,一类是必选项,一类是可选项。总体结果如图所示,绿色为通过项,红色为不通过项。各个企业或产品都通过了必选项,主要差别是在可选项上。
如果说一个区块链平台通过了所有的必选项要求,也就是等同于认为,它达到了可信区块链系列标准的一般要求,这个时候我们认为它是一个真实的区块链。
基于这个区块链,还有不同业务场景的需求,比如可以分为实时类交易,也可以分为非实时类的溯源存证等。非实时类和实时类的应用场景对区块链平台的诉求不一样,因此会衍生出系统的多样化功能特性。我们鼓励每个企业在自己不同的领域内做大做强,体现出自己差异化的优势。
汇总起来看,在可选项当中,私钥管理和共识算法防篡改的通过率基本全覆盖。测试厂商非常重视私钥管理,私钥代表了资产的所有权或者权属授权管理的认定。同时,共识算法的数据一致性,也意味着区块链有效防范交易数据篡改还是值得信赖的。
此外,共识算法的自动切换和数据归档等相关大项,业界整个实践效果并不是非常好,厂商觉得动态共识切换可能并不是必要,分层共识、混合共识可能是未来的趋势。归档功能需要修改创始区块,不符合区块链“难以篡改”的特性。
本次性能测试是全球首次商用级区块链的性能基准测试,针对的是商用级的区块链平台,依托统一的硬件环境,统一的测试工具,还有汇聚行业最广泛共识的、统一的测试标准。
首先,参与厂商共同制定可信区块链系列标准,通过这个标准规范测试方法、测试流程和测试指标,然后再开展性能评测。其次,通过提供统一的硬件环境,进行基准测试,接着是邀请行业权威专家,进行公正评审,最后,我们对通过性能评测的企业颁发证书。
在硬件方面,统一提供的硬件环境包括32台24核处理器、128G内存、15000转SAS硬盘的服务器,配置万兆交换机。在部署方面,我们有个统一的规定,一定是单链结构、单通道、单片,其次,一个交易要做一次签名,禁止通过多个交易打包成一个交易,最后签一次名来进行加速。在交易类型方面,分为两类类型,一种是开户和资产发行类,一类是一对一的转账。
测试场景上,我们分为三类:高并发场景、压力测试场景和低负载长时间运行场景。在高并发场景中,3-5秒内并发5-15万笔交易,一定要确保有大量的未确认交易;在压力测试,我们尝试了4节点、8节点、16节点网络规模,发送压力测试数据,测试系统峰值;在低负载测试中,主要是评估比较低的负载中系统运行24小时的稳定性。
测试指标上,测试性能包括吞吐量、最大交易确认时间、平均交易确认时间。我们也对内存、CPU、网络IO以及磁盘IO等资源消耗数据进行采集。
整个性能测试的网络拓扑,由于各个服务器都接入一个万兆的交换机,是一个全连接的网络。我们要求共识节点达到4个、8个和16个。在Fabric中,对应2个组织,每个组织2个背书节点,4个组织和8个组织。
依据一手汇聚的最前沿的数据,我们形成了可信区块链测试十大观察。今天汇报的内容,主要围绕底层架构、共识算法、记账模型、账本数据库、隐私保护策略、密码算法、智能合约、监控管理、多底层支持、性能测试这十个方面进行逐一汇报。
第一,现在底层以应用易落地为主,自研平台有差异化的优势,我们看到,20家厂商当中有10家采用Fabric作为底层系统,占比高达50%。主要原因是,由于它的代码非常清晰,具有非常好的说明文档,能够让程序员很容易上手。因此,很多公司都使用Fabric作为研发区块链的起步系统。
太一云、益链、金窝窝采用了类似于比特币的系统,需要注意在冷启动阶段,系统节点并不是很多的时候,怎么去防止相关节点的篡改行为。自研平台,如腾讯FiT、上海保交所、泛融等,他们可以通过高度定制化,在不同的方面有差异化优势。例如腾讯FiT的高性能,天然支持对象关系查询,上海保交所的系统健壮性和对隐私保护的高度控制,泛融科技的高扩展性等。
第二,共识算法方面,分为去信任的环境和信任的环境两大类。在Fabric类系统中,都是通过背书节点预运行,通过Kafka进行数据同步,最后通过排序节点进行统一处理,实现状态管理。在这种情况下,没有分叉的可能性,也没有交叉验证,但是存在脏数据,一旦涉及关联交易,不能并行处理,因此性能较差。另外,Fabric的容错率主要取决于背书策略的选取。
大概率一致共识算法,在部署前期存在冷启动的困境,要保证最开始的阶段不能让一个节点获得所有打包权限,实现的方案可能需要通过一些强制机制进行管理。
绝对一致性的共识,整个环境当中分为信任环境的 RAFT算法和非信任环境的BFT类算法,通过多个节点的消息交互、数据同步之后,保证数据的一致性。区别在于,RAFT只有两轮消息交互,无条件相信Leader。BFT类有三轮消息交互,对Leader发送的交易也会进行质疑。在这种情况下,更容易受到网络抖动、网络规模大小、出块策略等相关因素的影响。
让我们更加惊喜的是,分层共识和混合机制是一个很大的趋势。很多时候是许可链和非许可链、公有链和联盟链的融合。如果是ToC端的,你当然希望公有链能够获得更多的用户,如果对联盟链来说,ToB端的,你肯定希望各自之间会有一定的信任基础。目前,开放许可链、公有私有链都是业界探索的方向。例如,Algorand就是在PoS的基础上,通过随机选择算法(VRF),选择固定数量的节点进行PBFT共识,保证数据的一致性和防篡改、防抵赖特性。
第三,账户模型方面,基于资产的模型,也就是UTXO,去中心化的程度很高,符合区块链理念,但是在海量数据存在情况下,查询的效率非常低,尤其在面对多对多交易时,定位能力差。基于账户的模型,方便查询余额和流水,可以更好地对接传统业务,方便理解。通过两种账户模式的混合来实现余额的查询和数据的防篡改是一种可行的思路。
第四,账本数据库是储存账本数据的模块,在生产环境中更多使用非关系型的KV键值对数据库。在海量数据下,非关系型数据库高并发写入性能高,但查询效率较低,很难满足链上的数据查询和数据分析需求。这种情况下,Mysql等关系型数据库的查询能弥补查询效率的不足。因此有些厂商部署一条链,通过NoSQL进行实时存储,同时,又将数据同步存储在SQL数据库中,方便进行查询和数据分析。
第五,隐私保护,包括三个思路。
第一个是隔离,是通过多链、多通道以及分片实现,思路比较简单,实现较容易,隐私保护性好,代表公司像腾讯FiT是用多链技术,Fabric类用的是多通道。
第二是隐私保护算法相关的策略,包括同态加密、零知识证明等。同态加密,现在可以商用的是加法同态运算,用到乘法时占用空间太大,执行起来效果不是太理想。
第三是数据分类分级管理,通过多签名,通过权限管理,进行数据隐私保护的管控。
第六,密码算法有三种优化思路,密钥管理非常关键。
首先,由于现在的监管合规,尤其是金融领域,需要支持相关的国密算法,例如SM2,SM3,SM4等国密算法。国密算法的算法实现有优劣,这个值得各个厂商关注各类国密算法的性能问题。
其次,密码优化思路分为三层,三个层面的优化互不干扰。第一层是算法层面。现在的签名算法比较固定,大多都是基于椭圆曲线签名算法,可以通过不同的曲线来进行相关的调优。第二层是实现层面,例如腾讯FiT就派团队使用C++重写了密码包,提升了10-15%的算法性能。第三层是指令层面,例如泛融就委托Intel对指令集进行优化,进一步提升密码学算法的性能。
最后,私钥管理的方案越来越多样化。软件方面,有基于助记词的、有基于Json文件的Keystore,还有简单的SHA256字符串等,硬件方面,我们也惊喜的看到,很多厂商在硬件层面对私钥保护提供了解决方案。从宏观上看,厂商都为用户提供了私钥保护方案,ToB端的厂商多有用户私钥备份,ToC的厂商,大多由用户全权管理私钥。
第七,智能合约里有三种实现方式:第一种是虚拟机,基于虚拟机的执行方式可移植性是最好的。第二种是二进制代码,执行效率最高。可以分为一般可执行文件和系统服务的形式,系统服务的扩展性较好。第三种是脚本语言的解释器的形式,这种形式最简单最容易上手,但是有版本依赖的缺陷。
在管理上,智能合约缺乏全生命周期管理,智能合约升级都是生成一个新的智能合约,把映射关系改为新智能合约有效。但是,旧的智能合约一直在运行,依旧占用着系统内存和资源,需要在系统中使用命令才能终止相关进程。希望智能合约的生命周期管理在未来能够得到进一步提升。
第八,监管水平明显提升,故障报警种类多样。一方面,区块链系统监管包括一些传统的监管模式,包括服务器状态、区块高度、哈希值在区块链中的追溯等。另一方面是故障监控问题,当监测到系统故障,可以通过发邮件、打电话、发微信等方式进行告警。
因为区块链的轻运维、容错性高等特性,许多厂家在去年的时候,都忽略了区块链对运维管理的强需求。让我们惊喜的是,从今年的测试情况来看,大多数厂商都做了故障的分级分类管理,监控环境得到明显提升。生产环境中,优良的运维管理是系统持续运行的重要保障。
第九,BaaS加速应用落地,多底层拓展性和灵活性更高。第一种实现思路是多个底层平台实现同一个事情。多个底层平台并行做同一个事情,互为备份。另一种实现思路是多底层平台解决不同层面的问题,以扩展系统功能。例如智链用Coniform来面向高性能的交易支付场景,用Fabric来面对低并发的、溯源类的应用场景。
多底层平台为用户提供非常好的平台,降低部署成本,多底层可以适应更多业务场景,更方便拓展功能模块,目前参评的20家单位有5家支持多底层,他们分别是腾讯云、华为、智链、百度和泛融。
第十,性能测试,本次性能测试有7家厂商完成,我们看到性能指数大概3000TPS左右,Fabric类性能比较集中,自研平台性能优势比较明显。目前来看,最高性能超过4万TPS,主要是通过并行化处理、优化网络连接等技术来实现。
总体来看,整个平台的性能跟共识算法的选择是有关系的。采用PoW和PoS类的共识算法,区块链系统性能随着网络规模增加有一个上升趋势,后期可能会平滑稳定;采用BFT类共识算法的区块链系统性能随着网络规模增加是下滑的,CPU占比、内存消耗、网络IO以及磁盘IO都有较大消耗。生产环境中,没有这么好的万兆网络,可能存在很多网络延时和时延抖动,性能可能会有一个比较大的折扣。
总结一下。第一,本次通过测试的20家区块链厂商已经完成了测评的必选项,已经达到了我们对区块链产品的基本要求。第二,参评厂商在可选部分各有侧重,在监管管理、数据链控制、多平台支持、共识机制、多加密支持等方面有不同表现。第三,参评厂商在硬件加速、因素保护算法方面有一些创新。第四,参评厂商的性能表现良好。
我们未来要做什么?
第一,做技术的底层平台要跟面向服务的BaaS平台分开来评测,如果多底层平台和单底层平台横向对比也不是非常公平的对比模式。
第二,评测可能会更多的聚焦在CA管理和验证,CA的管理是许可类区块链可扩展性的重要模块;智能合约规范化管理,聚焦智能合约的安全性和易用性;海量数据的控制方案,长期运行很多年的区块链,是一个可信数据的集合,但是海量数据的存储,对区块链系统的各个方面,又提出了新的挑战。一旦要做数据归档的时候,我们要考验一下它到底能不能应付海量数据的问题;
第三是审计性、隐私保护方案以及交易确认时间等相关指标。我们会针对现有的一些漏洞和问题做进一步细化,也希望大家进一步支持我们。
最后,欢迎大家加入我们可信区块链推进计划,让我们一同为了区块链和实体经济的深度融合共同努力,谢谢大家!
可信区块链推进计划成员申请表等相关资料
下载链接:https://pan.baidu.com/s/13-BIwTKdbJNYbj_EYfan8g