当前区块链平台最大的问题可以用一个简单的类比来解释:21世纪初,互联网的速度非常慢。那时,如果您有博客,用户访问它既费时又费钱。人们注意到了这个问题,也认识到了互联网的用处。为了解决这个问题,已经做出了许多努力来改进因特网的基础设施和设计。同时,人们还建造了更强大的硬件来运行这些互联网设施。由于这些改进,互联网变得更快、访问成本更低。以前,开发人员只能创建一个网页。但现在,开发人员可以在改进的基础架构上构建Facebook、Google和Twitter等网站。由于互联网的速度和容量大大提高,所有这一切都是可能的。区块链技术也面临着类似的问题——缓慢且昂贵。许多区块链公司致力于构建可扩展的基础设施,使区块链平台成为未来的主流。一旦那一天到来,人们不仅可以使用区块链进行支付,还可以在其上构建类似于谷歌和Facebook的应用程序。01区块链与扩容问题在解释扩容问题之前,必须先解释一下吞吐量的概念。假设你在火车站等车,每趟车间隔一个小时,只能做10个人。一旦火车满员,第十一位乘客只能等待下一班火车。打个比方,乘客代表交易,比特币或以太坊等常见的区块链平台平均每秒可以处理约10笔交易。相比之下,像VISA这样的支付公司目前平均每秒处理5,000到8,000笔交易。处理任务的速率称为吞吐量。与Visa等支付平台相比,区块链平台目前的吞吐量非常低。现在假设你们在同一个火车站,但这次又有一百人想乘坐这列火车。火车到了,售票员看着人群说:“出钱最多的十个人可以上车。”你赶时间,所以你花了很多钱买票上车。由于区块链平台的吞吐量低,交易费用不断上涨。例如,在拥挤的区块链平台上,一笔10美元的交易可能会花费2美元的交易费用。因此,速度慢、成本高是阻碍互联网主流交易向区块链平台迁移的巨大障碍。02提高扩容为了提高区块链平台的主流接受度,这些平台需要扩容。区块链公司为此提出了几种解决方案。2.1增加块大小最直接的方法是增加块大小。回到火车类比,这意味着将火车的容量从10人增加到20人。这样,火车可以在给定时间运载更多乘客,从而减少车站的拥堵。比特币目前的区块大小为1MB,将其增加到2MB可以使其每秒的处理能力增加一倍。块越大,每秒的吞吐量就越高。但这在实践中是有问题的,假设你将块大小从1MB增加到1GB,当你创建一个块时,你必须将它传输给网络中的其他人,而网络无法足够快地处理巨大的文件。就像你用邮件一样,当你上传一个大文件时,邮箱是不会接受的。这就是增加块大小的问题,你不能超过某个点,所以这个解决方案的能力是有限的。2.2链下解决方案第二种可能是链下解决方案,比如比特币的闪电网络、以太坊的雷电网络、Neo的本体网络。在当前情况下,每个交易处理都必须经过网络中每个节点的验证。(节点是运行算法和处理交易的计算机。例如,你想在一个月内每天从一家特定的咖啡店购买一杯咖啡,而咖啡的价格是1美元,但是1美元交易非常昂贵在网络上的一天,你不想为了1美元的交易挤满整个网络。所以你和咖啡馆老板签了一份合同。合同规定你每天必须为咖啡支付1美元的代币。你发送一个交易给网络来标记合同的开始,并在30天后发送交易来标记合同的结束。合同结束后,咖啡馆老板可以在网络上将30个代币兑换成30美元。因为这些都在区块链中网络发生在链外的私有协议,所以被称为链下解决方案,这种交易系统的缺点是整个过程都集中在托管这些链下交易的服务器上,而这些链下网络是同样是黑匣子,其透明度和安全性能值得怀疑。2.3代理共识协议目前区块链网络上的处理速度很慢,因为网络中的每个节点都必须参与处理。如果网络中有一千个节点,那么网络中的每一笔交易都必须有一千个节点参与处理。如果一个社区有1000人,每个人都得同意,过程不仅长,而且很乱。反之,如果从社区中选出10个代表,任命他们为社区的管理员,让这10个人投票,会更快更容易达成共识。同样,你可以委托一组节点来运行协议,对交易达成共识,代理节点的共识将代表社区的共识。大多数可扩展的区块链项目都采用该协议。为了进入治理联盟,社区成员必须注册兴趣并通过测试(称为股权证明或权威证明)。如果他们成功通过,他们将获得加入治理联盟权证和运行共识协议的权利。2.4分片技术分片技术是一种链式扩展方案,将网络切分,但分片在数据库领域并不是一个新概念。分片技术将大型数据库分成更小、更快、更易于管理的部分,称为数据片段。为了展示它是如何工作的,现在假设您有五个步骤的问题。想象一下,你班上有10个学生可以帮你解决这个问题,这个问题可以分成5个并行的步骤。所以你把全班分成5组,每组两个,每组解决一个子任务。一旦一个小组完成了它的子任务,信息就会传递给老师,老师汇总五个小组的所有答案并将完整的答案传递给所有小组。这样,即使小组在不知道其他小组在做什么的情况下专注于他们的子任务,最终所有参与者都会有一个答案。在这个例子中,学生是网络上的节点。一个类是网络中的所有节点,一个组是一个分片。教师代表目录服务委员会(DS),它本身就是一个分片。如果将比特币网络比作教室,学生将不得不自己弄清楚每一步,这将花费更长的时间,并且会给每个参与者带来更大的负担。但是有了网络分片,如果你有10,000个节点,通过工作量证明过程,它们将被随机分成10组,每组称为一个分片。每个分片处理一组不同的数据,并得出组内一致同意的答案。然后每个分片将这些数据的汇总报告提交给一个称为目录服务委员会的分片,该分片协调不同分片的数据汇总并将它们组合起来形成一个更大的数据集,称为最终块,最终块的数据将返回到所有分片。从上面的分析可以看出,分片技术是一种去中心化、安全的链上扩容方案,具有线性扩容能力——即节点越多,获得的吞吐量越大。分片技术有两种类型:网络分片和状态分片。以太坊正在开发的技术是状态分片。这两种技术的区别在于,在网络分片中,不是每个节点都必须处理每条信息,而是每个节点都必须存储来自网络中其他分片的信息;如果使用状态分片,每个节点都只存储它们处理过的信息的一个子集。这样虽然减轻了各个节点的负担,但是分片之间的互通会变得复杂。03分片技术的缺点是设计和部署复杂。简单版本的sharding很容易部署,但是正确安全的运行起来却很困难,这也是为什么现在很少有团队去研究的原因。与最简单的解决方案相比,增加块大小只需要调整一个参数——块大小,吞吐量就会增加。但是当引入分片技术时,需要考虑的事情很多。如何合理划分群成员?如何分配任务?所有这些都增加了系统的复杂性。但如果做得正确,系统将是分布式的、安全的,并且可以线性扩展。04宽带和存储容量是所有扩展解决方案的共同问题。对于比特币和以太坊这样的区块链平台,这个问题并不严重,因为它们的吞吐量很低。比特币和以太坊每秒处理10笔交易,以目前的速度,一年的所有交易数据将达到数GB。但是当我们每天处理数亿笔交易时,数据可能会爆炸。为了存储所有这些数据,我们必须找到更好的存储解决方案,这不能通过网络分片直接解决。
