区块链项目里,很多人对比特币(BTC)最为熟悉。然而,比特币网络每秒最多只能处理7笔交易,超过的交易只能按顺序排队等着。最拥挤的时候,有超过15万笔的比特币交易在排队等候处理(注1)。
也许,你会嘀咕:这种性能的比特币怎么和微信、支付宝PK呢?确实,这个问题——扩容,早已成为区块链(不仅仅是比特币)的重点优化方向。
那我们需要多高性能的区块链呢?
很多人会把Visa、或者双11时淘宝的峰值交易处理速度作为区块链的性能优化目标。事实上,在一些特殊场景下,这个性能也可能是不够的,比如将区块链应用于物联网时,对终端和设备的实时访问控制需求,就需要极高的数据传输和处理速率。因此,如果要用区块链来构建价值传递网络,有人认为它的性能至少应该以目前整个互联网信息的数据实时处理速度为目标(包括每秒200万封邮件、6.5万次google搜索、7.2万次youtube视频等、以及53TB的数据流程。数据出处见注2),这已经绝非简单只用每秒处理量(TPS)来要求了。
那如何在目前区块链有限处理能力的基础上进行提升呢?
这其中存在着巨大的挑战和机会,近几年,众多扩容方案纷纷登台亮相,总体上,它们都来自于两大阵营:链上扩容和链下扩容。
最先登台的是链上扩容派,也常被称为layer-1扩容。
所谓链上,顾名思义,就是直接在区块链上动手术,直接修改区块链的基础规则,包括区块大小、共识机制等。拿修路打个比方,如果车多路堵了,最直接的就是把原来的双向二股车道扩充成四股,再不够就改成六股、八股。
比特币现在每秒只能处理7笔,直接原因是出块慢、区块容量小,那就把出块速度提高、区块变大。
比如莱特币(LTC),在比特币代码基础上,把出块速度从平均10分钟左右,提高了4倍到每2.5分钟出块;还有比特币现金(BCH),也是在比特币基础上,把区块从1M大小直接提到32M,处理能力提高了32倍;还有采用相对复杂的分片方案,把原来全网共同处理每一笔交易,优化成多个小组并行运作,在同样的时间干更多的活,等等。
链上扩容这种方式比较直接,不过也和道路直接扩充一样,有点折腾,或者说很难一步到位。好不容易实现了扩容,更高性能需求的应用场景又出现了,需要不断地超越自己。而且,因为所有交易仍然需要在区块链这个分布式系统中进行数据同步,整个网络的性能瓶颈会取决于其中单台服务器的处理性能。
所以,通常会认为链上扩容方案在性能上会存在难以逾越的天花板。
于是,从2018年开始,涌现了越来越多的链下扩容方案,也常被称为Layer-2扩容方案。
链下扩容和链上扩容是相对的,链下扩容阵营换了种思路,他们不直接改动区块链本身的规则(区块大小、共识机制等),而是在其之上再架设一层来做具体的活,只将必要信息、或需要共识参与(如数据出错、发生纠纷时)时才与区块链进行信息交互和传播。因为扩容本质上没有发生在区块链上,因此这类方案被直观地称为链下扩容。
仍然拿道路扩容打比方的话,链下扩容不是在原有道路上扩充,而是在现有路线上架个可以四通八达的高架、或者隧道,普通汽车都上那儿开,原来的路不到万不得已尽量不用。
链下扩容方案中,大量的事务通常只在参与节点间直接交易,不会进行全网传播,效率直接取决于节点间的网络性能,显然效率更高。而且因为没有全网广播 ,信息不能公开可查,通常隐私性也更高。
因此,链下交易性能不受原有区块链性能的影响,链下扩容的性能目标没有最高,只有更高。
链下扩容主要包括状态通道、侧链等解决方案,闪电网络就是链下扩容的代表选手之一。
在闪电网络中,交易双方可直接构建通道,之后便可在通道内点对点实现任意多笔零确认的交易,只需要在通道开启和关闭时才跟区块链“打个招呼”,在全网传播确认即可。它不需要修改比特币的共识算法,比特币网络从每笔交易的处理者,后退一步,仅处理少量关键交易,或在交易出现纠纷时进行处理以“主持公道”。这样的工作量现有性能即可满足。
当然,链下扩容也并非完美,其方案也伴随着是否会带来中心化、或者数据可能会被修改等等疑虑。
不过,作为普通用户,通常不会考虑具体采用了哪种解决方案的。随着区块链商业应用场景的落地,哪些解决方案能更好地解决问题,并且不影响使用体验,就很可能会在扩容方案中胜出。