01背景
区块链作为互联网的又一次重大创新,不仅延续了互联网去中心化、去中介化、平权的交流理念,同时重新定义了金融、医疗、教育等众多行业的规则,创造出了新的价值。伴随着区块链技术的快速发展,区块链应用逐步实现商业化落地,而TPS作为衡量区块链系统能力最重要的一项指标,已成为市场关注的焦点。但当前,从几百、几千、几万甚至几百万不同数量级TPS的区块链系统层出不穷,缺乏基于标准化的统一认知规范,给用户造成了一定的选择困惑。同时,部分区块链项目方假借TPS做虚假宣传,营造出TPS数值越高系统性能越好的假象,对区块链技术和产业发展造成了消极影响。为了推动业界理性认识区块链TPS、科学选择区块链系统,本文从多角度全面分析影响区块链系统TPS的因素,并从标准化视角提出区块链TPS测评建议。文中描述的各系统TPS数值来源于实际测试或引用自权威资料,且仅从技术的角度做探讨,不作为对任何系统的背书。
02简介
TPS指系统每秒处理的事务数,是衡量一个区块链系统性能最重要的指标之一。随着区块链发展日趋活跃,一些主流区块链项目网络阻塞问题也愈加严重,导致区块链在高并发业务领域无法落地。目前不少的技术方案与项目都在着力解决此类问题,以达到更高的TPS。
区块链系统TPS的计算公式为:
TPS= 事务处理数量 / 花费的时间
其中,测试数据需要在系统稳定运行状态下获取,否则会影响测试结果的准确性。
03影响因素分析
在区块链系统的生命周期中,影响其TPS的因素大致可以分成内在和外在两大类。内在因素包括系统共识机制、区块参数设置、事务过程优化、节点配置、加密算法等。外在因素包括资源配置、测试验证环境等。
内在因素
内在因素是基于区块链系统在设计时底层技术的选择,如共识机制、数据结构、加密算法等,以及开发时区块大小和出块时间等参数设置、系统运维中的系统优化和升级等。本节主要分析共识机制、区块参数配置、事务过程优化对区块链系统TPS的影响。
共识机制
共识机制是指以去中心化的方式就网络的状态达成统一协议的过程,是区块链最核心技术之一。下表列出了四种主流的区块链共识机制,并对比了基于这些共尚力财经小编识机制的区块链项目特点。基于PoW共识的比特币和基于PoW+PoS的以太坊,TPS均在40以下;基于DPoS共识的EOS,TPS达到了3600;基于kalka的超级账本项目,TPS能达到万级。可以看出,基于不同共识机制的区块链系统TPS可能存在数量级的差距。
主流共识机制对比
区块链网络中存在“不可能的三角”,即无论采用何种共识机制,皆无法同时兼顾扩展性、安全性、去中心这三项要求。当系统追求高TPS的时候,必然会牺牲掉一部分安全性或是导致系统过于中心化。以联盟链为例,虽然其实现了低能耗和高性能,却导致了系统过于中心化。而比特币虽然效率较低,TPS数量级为个位数,但其实现了高度去中心化,项目稳定运行11年,安全性受到市场的高度认可。总的来说,共识机制对区块链系统TPS起着决定性作用。
区块参数
区块参数包含了区块大小和出块时间。对基于同一底层的区块链系统而言,区块容量和TPS成正比关系,即区块容量越大,系统TPS越高。以基于PoW共识机制的比特币和比特币现金为例,比特币每个区块大小设定为1M,TPS为7,而比特币现金的每个区块为8M,TPS在24-224之间。反观出块时间对TPS的影响,出块时间与TPS成反比关系,出块需要的时间越长,系统TPS越低。以比特币和莱特币为例,相较于比特币,莱特币出块时间缩短了7.5分钟,但TPS提高了近4倍。可以看出,区块参数对系统TPS有显著的影响。
交易验证
区块链系统中,一笔交易的生命周期包括交易请求、交易广播、交易验证、交易打包、交易上链、交易完成等步骤,其中交易验证机制是影响区块链系统TPS的因素之一。当前,闪电网络、状态通道、分片处理是几种常用的优化交易验证方法,其中闪电网络和状态通道保持了底层区块链协议不变,将交易放到链下执行,即通过改变协议用法的方式来解决扩展性问题。分片处理通过将交易引流到不同片区并在片区内执行交易,使得全网的交易数据被均匀分配,提升了区块链数据的处理效率,从而减轻节点的计算和存储负担。但也要看到,通过交易验证优化手段只能小幅度提高系统TPS。
外在因素
影响区块链系统TPS的外在因素包括区块链系统部署服务器的资源配置和测试环境。资源配置如CPU性能、内存和硬盘容量、网络带宽等。测试环境包括测试依据、测试方法、测试工具等。
资源配置
区块链系统一般部署在物理服务器或云服务器上,服务器的资源配置直接影响区块链系统整体性能。对于区块链系统而言,其所在服务器的硬件性能越高,能够产生的TPS数值也就越高。服务器硬件资源包括CPU、内存、硬盘等,其中,CPU的两个重要评价指标为频率和缓存容量,CPU频率越高,缓存容量越大,系统数据处理速度也会越快。同样,内存较大的计算机设备能够在短时间内缓存大量数据,在区块链系统产生较大数据处理量的前提下,高内存的服务器具备的优势更加明显。
下表展示了同一个区块链系统部署在不同配置的服务器上时测试出的TPS差异。
硬件配置对系统TPS的影响
测试环境
同一个区块链系统在不同的测试环境下会产生差异较大的测试结果。测试环境包括测试设备、测试工具、操作方法等。当前主流的区块链性能测试工具LoadRunner、Benchmark、Caliper等。下表展示了在使用不同测试工具的情形下,同一基于超级账本技术区块链系统TPS测试结果。
不同测试工具下的TPS对比
04差异分析
当前,产业中出现了百万、十万及万级TPS的区块链系统,本章重点分析这三种级别TPS的实现特点。
万级TPS
万级TPS区块链系统可以通过优化节点服务器的硬件配置和交易验证过程来达到,如许多基于超级账本技术的联盟链系统。优化硬件配置可以通过增加CPU性能和内存容量来实现,其中CPU的增加可以使系统具备更强大的逻辑计算能力,内存的增加可以使系统具备较大的数据处理空间,以在相同的时间内处理大批量数据。交易验证的优化可以通过闪电网络、分片处理等技术实现。
十万级TPS
面对日益复杂的计算需求,区块链系统在单位时间内需要处理的数据量大幅度提升,对区块链系统TPS提出了更高的要求。运用多链并行计算和DAG(有向无环图)技术能够进一步提升系统的TPS。十万数量级TPS区块链系统一般可采用多链并行计算的方式处理数据,以DAG的形式传输数据。
百万级TPS
当前,“双11”的交易量在24万笔/秒,VISA的交易数量在2000笔/秒。为了进一步提升TPS,一些企业和研究机构通过设计多链并行架构、省略交易过程中的签名和验签环节、优化节点服务器配置的举措来提升TPS数量级,以满足特定的商业应用场景需求,实现区块链系统百万级TPS能力。
05区块链系统TPS测试原则
区块链系统TPS测试应遵循标准化、单链测试、测试环境统一、公正客观四个原则。
标准化原则
区块链系统TPS测试应依据相关国家标准、行业标准、地方标准、企业标准等开展,以确保检测流程规范,结果权威可信。
单链测试原则
测试应只评估单链性能。多链并行计算的模式让区块链系统TPS得以大幅度提升,但也导致区块链企业为追求高TPS而片面的增加并行链数量,即使通过测试也无法衡量其底层技术的优劣。
测试环境统一原则
测试基准应统一,即依据权威标准开发测试方案和用例,在相同的实验环境下对区块链系统进行测试。
公正客观原则
在对区块链系统进行对比评估时,应客观公正。只有基于同一底层技术,如使用相同共识机制的区块链系统才有可比性。
06总结
综上,TPS的影响因素、系统评价原则是区块链系统测试中两条关键的主线,在测试区块链系统的TPS报告中应充分描述测试对象、系统配置、软硬件环境等信息,在对比评价区块链系统时要做到基准统一,客观公正衡量区块链系统的优劣程度。同时,区块链企业应客观理性地看待区块链系统的TPS,以满足实际的应用场景为落脚点,深入分析相关特点和优势,合理打造满足业务需求的区块链系统,助力区块链技术良性发展。
标签: 呈