最常见的扩容挑战是转账吞吐量问题。目前,以太坊每秒大约可以处理15笔转账,但是相比Visa,它大约每秒可以处理45,000笔转账。去年,一些应用例如以太猫,或者现在出现的ICO,都足够能让以太坊网络“降速”并且转账费用也会提高。
像以太坊这种公链的主要限制在于每笔转账都需要被网络中的每个节点处理。以太坊区块链上的每个操作,比如某个转账,以太猫出生,新的ERC20合约实施,都需要通过网络中所有的节点来进行。这是设计原理决定的,因为保证公链权威的一部分原因。节点们不用依赖任何其他人来告诉他们,区块链现在的状态是什么,他们自己能够辨别。
这就从根本上给以太坊网络的转账吞吐量造成了限制:它不能比我们从单个节点处获得的速度更快。
我们可以让网络中每个节点去承担更多工作。如果我们加倍区块的大小(也就是区块的燃料极限),也就是说每个节点在处理每个区块的时候大约要做双倍的工作量。但是这就带来了去中心化的费用问题:节点需要做更多工作意味着低能力的计算机(例如消费电子品)可能就没办法在网络中工作,如果算力集中在高能力计算机中,挖矿就变得非常中心化。
并且,我们需要找到让区块链能够在不提高单个节点工作量的情况下,负担更多工作量的方法。
从理论上说,有两种方法可以解决这个问题:
1. 如果每个节点不用同步处理某项操作会怎么样?
第一种方法和我们的初始想法不同,如果我们打造一个区块链,其中每个节点不需要都去处理每笔交易会怎么样?如果网络被分成2部分,他们还可以半自动化的进行操作,又会怎么样?
A部分可以处理一批交易,同时B部分可以处理另一批交易。这样就可以有效地加倍区块链的吞吐量,因为现在处理的极限就是2个同时可以达到的。如果我们将区块链分为很多不同的部分,那么我们就可以把区块链的吞吐量提高多少倍。
这就是“分片”技术的想法,这是由Vitalik的以太坊研究团队和其他人提出的扩容解决方案。区块链被分成很多部分成为分片,每个片区都可以独立地处理交易。分片通常被认为是1层扩容技术因为这是在以太坊底层协议上进行的。
2. 如果在以太坊可以处理交易能力之外去进行更多有效操作会怎么样?
这个观点从反方向进行考虑:不如去提高以太坊区块链本身的能力,如果我们可以利用现有的能力做更多事情会怎么样呢?底层以太坊区块链的吞吐量是一样的,但是实际上我们其实可以做更多对于人们和应用软件有用的操作,例如转账,游戏中的状态更新,或是简单的计算。
这就是类似状态通道,Plasma和Truebit等技术使用的“链下”技术。当然,这些技术都在解决不同的问题,他们都是通过“链下”,而不是在以太坊区块链上进行操作,同时也能保证足够的安全和结果。
这些也被称为2层解决方案,因为它们是是基于以太坊主网的其他链进行的。他们不会对底层协议进行更改,他们就是基于以太坊的智能合约,同时和链下的软件进行交互。
除了这两种方式,我们可以考虑跳出以太坊的限制。设想一种新的公链取代以太坊。已经有许多公链致力于改善以太坊的缺陷,如UENC等。
UENC是一个以跨链为方向的可扩展基础公链,主网已上线。UENC实验室提出并采用的DPOW共识算法,是对以太坊POW共识算法的全面革新。从根本上解决了交易拥堵问题。
DPOW意为定向工作量证明,一个区块打包一笔交易,无需像比特币、以太坊一样等待,极大地提升了交易确认的速度。