现阶段,我们可以用一个简单的类比,来形容区块链平台存在的最大问题。
早在21世纪初,互联网的速度非常慢、成本非常高。为解决这两个问题,人们开始完善互联网的基础设施和设计,希望能够在最大程度上享受互联网带来的便利。与此同时,他们还开始研发更加优质的硬件设备,以便运行一些较为重要的互联网元素。
随后,互联网的运行速度就有了提升,访问网站的成本也有了下降。之前,开发人员只能创建单一网页,但经过基础设施优化,已经能够创建Facebook这类大网站。简单说来,现在的互联网不仅速度很快,而且能够实现规模扩张。
现在,区块链也遇到了相同的问题,一是速度慢,二是成本高。目前,该领域的各家公司,都在努力提供能够实现规模拓展的基础设施,希望区块链平台未来可以成为行业主流。届时,这一技术和相关平台不仅能够用于支付,还能用来开发类似谷歌和Facebook的应用程序。
想要说清楚规模拓展的能力问题,就要先解释吞吐量这一概念。
假设你现在在火车站,火车每小时来一趟,一趟只能带十个人。也就是说,第十一个人,必须要等下一趟。我们就用这个案例中的乘客来代表交易。平均看来,那些知名度比较高的区块链平台,每秒钟能够处理十笔交易。
与之对比,诸如Visa这类支付公司,目前处理交易的平均速度,大约是每秒钟5000到8000笔。而交易的处理速度,就是我们这里所说的吞吐量。因此,说到底,区块链平台目前的吞吐量,是远不及主流支付平台的。
现在,我们再换一种假设。还是同样的车站,等待上车的乘客有100位。车来了之后,售票员表示,能够出价最高购买车票的十个人可以上车。你又很赶时间,因而会选择付一大笔钱买车票,坐上这趟车。
也就是说,由于区块链平台的吞吐量比较低,所以交易费用也就相应提高了。举个例子,按目前的状况算,总额10美元的交易,额外交易费大约是2美元。
由此,速度慢、成本高,就成了区块链平台上最大的交易阻碍。
想要得到大家的认可,区块链平台需要进行规模拓展。具体说来,各家区块链公司,共计提出了以下几种可能的解决方案。
(一)扩大区块规模
第一种,也是最为直接的一种,就是扩大区块的涵盖范围。
如果仍然以乘车为例,那就是增加车上的座位数量,比如说从10个变为20个。这样一来,火车来一趟就能运送更多乘客,从而缓解车站的拥堵状况。
回到区块链,现阶段,比特币区块的规模,大约是每区块1MB。如果将这一数字增加到每区块2MB,那么每秒钟能够处理的交易数量就会翻番。也就是说,区块范围越大,每秒钟处理的交易数量就越多。
但这只是理论,实际推行起来是有问题的。
区块链技术创企Zilliqa技术总监Yaoqi Jia解释说:“如果你把区块规模从每区块1MB扩大到每区块1GB,那么问题就在于,当你创建区块时,还需要将其发给处于同一网络中的其他人。如果你选择用谷歌邮箱发送,那上传的文件肯定非常大,谷歌就不乐意了。再有,网络也无法快速处理如此之大的文件。所以,茫然扩大区块规模,是存在问题的。规模再怎么扩大,总归还是有一个上限。”
(二)即时支付解决方案
第二种方法,就是借助即时支付,比如说针对比特币的Lightning网络、针对以太币的Raiden网络,以及针对小蚁币Neo的Trinity网络。
在现有条件下,你每交易一次就得经过网络每一节点的批准。所谓节点,就是指运营着交易处理算法的计算机。
举个例子,如果在一个月内,你每天都去同一家咖啡店花1美元买咖啡,那么这些总额1美元的交易的费用是非常高的,对整个网络来说其实是负担。
这种情况下,你就应该与咖啡店主达成一份协议,每天用价值1美元的代币来支付。一个月过后,店主可以在网络中把30个代币换成30美元。你可以只在第一天和最后一天,在网络中发送自己的交易。而之所以叫它们即时支付结算,主要就是因为这些都是私人之间达成的协议。
当然了,这一系统也是有缺陷的。因为整个流程是集中化的,围绕着各种支持这些即时支付交易的服务器展开。
最后,如果真的采用这种解决方案,那么安全性和透明性也是不得不重视的问题。
(三)委派式共识算法
上文已经说过,现在区块链网络的交易速度之所以这么慢,主要就是因为网络中的每一节点,都需要对特定交易进行处理。所以,假设现在网络当中总共有1000个节点,那一笔交易想要处理完成就需要依次经过这1000台计算机。
这就好比,你想要最终决定一件事情,需要事先征求1000个人的同意。不仅处理过程会很冗长,而且会很繁杂。但如果你能从中挑出10人作为代表,指定他们为群组管理人,让他们投票的话,那就会比较方便了,大家想要达成共识也就比较容易了,整个流程都会快上很多。
同样,你也可以指定一小部分节点,让它们运行相关的协议,针对需要处理的交易达成一致。而这些节点的批准,也就代表着整个网络中所有计算机的共同意见。
现阶段,大多数可以进行规模拓展的区块链项目,都选择使用了这样一种委派式协议。为了进入由少数人构成的代表团体,相关成员需要介绍自己的兴趣,还需要做一些特定的测试,也就是我们常说的权益证明。如果顺利通过测试,成为代表团成员,那将会拿到一张属于自己的证明,证明自己确实能够代表大团体的意见。
(四)分片技术解决方案
所谓分片技术解决方案,就是一种链上交易方式,将整个网站分为无数分片。
其实,在数据库领域,这并不是什么新鲜的概念,主要是指数据库分库分表。具体说来,就是将数据库分为无数数据分片,范围更小、速度更快,管理起来也更加容易。
但在此之前,这一概念从来没有在区块链领域出现过,直到Loi Luu和Prateek Saxena以及他们的团队在研究性论文Elastico中正式介绍。Saxena是一名来自新加坡国立大学计算学院的助理教授,同时也是Zilliqa公司的首席科学顾问。Luu也是Zilliqa公司的顾问,之前在新加坡国立大学攻读PhD学位。
Zilliqa提供的解决方案,就是网络分片。为了详细介绍它的运作流程,我们同样要举例。
假设你是一名学生,教室里连你共10人。两两一组,完成分配到手的具体任务。最终,老师拿到了五组成果,并将答案进行整合,随后把全部信息再传递给10个学生。这样一来,每一组都可以知道其他组的任务和大致完成情况。但当时,每个组都是独立作业的,根本不知道其他组的信息。
也就是说,每个学生都是节点,而五个组则是五个分片。老师代表目录服务委员会,本身也是一个分片。如果同样的场景放到比特币交易中,那就意味着每个学生都要经历问题解决的每个步骤,不存在分工整合这一说,所以耗时较长,也比较吃力。
如果有1万个节点,那就会通过特定流程随机分为10个组,每一组就是一个独立的分片。
随后,每一分片会分别处理不同的交易,最终形成所有分片都认可的交易集合,提交给同样作为独立分片的目录服务委员会。该委员会负责整合不同分片的信息,并且生成一个规模更大的终极区块。这一终极区块中的所有信息,又将会返回到各个分片小组中去。
在不久的将来,Zilliqa将会推出自己的区块链系统以及智能合约平台。届时,各款应用程序都能顺利在区块链上运行。
用Jia的话说:“如果把区块链比作一个操作系统,那我们希望Zilliqa能够成为Android或iOS,让所有人都能简单地使用和开发应用程序。从长期角度来看,我们会提供一个可以实现规模拓展的区块链平台。同时,我们也会继续研究、继续发文章,支持区块链行业的进一步发展。”