主要影响区块链的交易性能包括广播通信、信息加解密、共识机制、交易验证机制等等几个环节。
广播通信:由于区块链的核心技术之一就是P2P网络,因此P2P网络通信的效率是对性能的影响非常重要。首先,为了能最大程度的改善交易性能,推荐你采用联盟链而不是公链,假如你的应用是高频应用,如果运行基于比特币或以太坊的公链,那用户体验会比较差。由于公链必须保持高度的去中心化,节点软件必须能够在标准的消费级电脑上运行,并且每个节点机器的性能和网络情况都是千差万别的,导致交易性能形成一个天然的限制。而对于联盟链,我们可以指定节点机器的物理配置和节点数量,并尽量以高速网络进行连接,则可以很大程度改善区块链的交易性能。
信息的加解密:信息的加解密是区块链的关键环节,主要是哈希函数和非对称加密两部分的算法。哈希函数目前主要有SHA家族算法、MD5、SCRYPT、RIPEMD、WHIRLPOOL、CUCKOO HASH、HAVAL、Tiger、LYRA2、Equihash、Hashimoto、Dagger、Ethash(以太坊目前Pow机制下的算法)等多种算法,还有其中算法的串联和并联使用。由于商业应用一般都不考虑挖矿问题和更注重性能问题,更推荐大家采用常用的SHA256算法为主。而非对称加密部分,主要有非对称加密算法包括RSA、DSA、椭圆曲线算法等,区块链一般使用椭圆曲线算法,包括ECDSA和SCHNORR,还有国密算法(SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法),其中,比特币使用的签名算法是ECDSA,而Schnorr签名的验证速度比ECDSA签名的快,而且这种签名体积可以更小,还原生地支持多重签名。
共识机制:共识机制是分布式账本为了使得所存储信息的准确性与一致性设计的一套机制,机制的设计主要由业务与性能的需求决定,从PoW到PoS再到DPoS和各种拜占庭容错算法,共识机制不断创新,区块链平台性能也得到大幅提升。在类似DPoS或PBFT的共识机制下,区块链上交易的确认很迅速,交易吞吐量也满足现有的金融交易规模,部分私链性能达到万笔/秒,能够满足绝大多数业务需求。
交易验证:从交易验证机制角度出发,目前有几种优化处理方式:
1.分片处理(sharding),总体思路是每个节点只处理一部分交易,比如一部分账户发起的交易,从而减轻节点的计算和存储负担。
2.闪电网络(LightningNetwork)和状态通道(State Channels),这两种策略是保持底层的区块链协议不变,尽可能将交易放到链外执行,通过改变协议用法的方式来解决扩展性问题。在这种策略下,分布式账本上只是记录粗粒度的账本,而真正细粒度的双边或有限多边交易明细,则不作为交易记录在分布式账本上。
3.北航链设计了独有的ABC(账户区块链)和TBC(交易区块链),当有新的银行成立或者原有银行需要进行扩展时,可以设立ABC来解决;当交易量较大时,系统可以增加TBC来增加处理速度,通过这两种途径来解决可扩展性方面的需求。
从比特币到以太坊,从Ripple到HyperLedger fabric或Corda,通过共识算法的创新以及联盟链的部署使得吞吐量等性能得到大幅的提升,当前延时已能够控制在秒级别,吞吐量达万笔每秒,单节点的存储空间需求也能够进行相应的优化与压缩,性能瓶颈已经被逐步突破。