自以太坊推出以来,扩容一直是讨论最多的话题之一。每当以太坊网络出现拥堵时,关于扩容的讨论就会再次升温。最早的讨论发生在2017年的加密牛市时,当时CryptoKitties与ICO堵塞了整个以太坊网络,导致gas费大幅上涨。今年,由于DeFi和流动性挖矿的火热,网络拥堵问题再次出现,且更为严重。有一段时间,即使支付高昂的gas费,也可能出现无法验证交易的情况。
要解决以太坊及其他区块链的扩展问题,主要有两种方式:扩展基础层本身(layer1),或将部分工作放到layer2上以实现扩容。
Layer1是基础共识层,现在几乎所有的交易都在这一层结算。Layer1扩展涉及改变基础层本身的处理方式。目前,以太坊基础层每秒处理约15笔交易。相比之下,Layer2扩展可以显著增加交易数量,根据解决方案可达到2000-4000笔交易/秒。
然而,即使引入了Ethereum2.0的POS和分片技术来提高基础层的交易吞吐量,我们仍然需要Layer2的扩展来处理未来可能出现的数十万乃至数百万量级的交易。这是因为单纯扩展基础层会导致更高程度的中心化,从而降低网络的安全性和抗审查性能。
Layer2扩展是指通过处理链下交易(layer1链外)来提高Layer1性能的解决方案。Layer2可以提高交易速度和吞吐量,并大大降低gas费。在具体的扩容解决方案中,有多种选择。一些方案专注于特定应用,如支付通道。其他方案如OptimisticRollup,可以用于任何合约的执行。
通道是最早被广泛讨论的扩展解决方案之一,它允许参与者在链外进行多次交易,只需向基础层提交两个交易。目前有许多通道的变体,其中最受欢迎的是状态通道和支付通道。然而,通道的参与是有限的,参与者必须在多签合约中锁定资金,并且该解决方案只针对特定应用,不能扩展通用智能合约。
Plasma是一个由Joseph Poon和Vitalik Buterin提出的layer2扩展解决方案。它利用智能合约和Merkle树在以太坊上构建无限数量的子链。将交易从主链卸载到子链中可以实现快速和低成本的交易。然而,Plasma对于想要从layer2提取资金的用户来说,等待时间较长,并且也不适用于扩展通用的智能合约。OMG网络和Matic Network都是基于Plasma构建的项目。
侧链是兼容以太坊的独立区块链,拥有自己的共识模型和区块参数。由于使用相同的EVM,部署在以太坊基础层的合约可以直接部署到侧链上。xDai就是一个例子。
Rollups通过将侧链交易捆绑或"滚动"到一个交易中,并生成一个加密证明来提供扩展。这个证明会提交给基础层,而所有的交易状态和执行都在侧链中处理。Rollups主要分为Zkrollups和Optimisticrollups两种类型。Zkrollups比Optimisticrollups更快和高效,但它们对于迁移现有智能合约不够简单,因此Optimisticrollups更适用于主流的DeFi智能合约。Optimism是一个使用Optimisticrollups的项目,他们的主网即将发布。Loopring和Deversifi是建立在layer2的去中心化交易所的例子,他们使用了Zkrollups。此外,ZkSync实现了可扩展的加密支付。
尽管有多种layer2扩展解决方案可供选择,以太坊社区似乎倾向于通过rollup和以太坊2.0阶段1中的数据分片来进行主要扩展。这种方法也在Vitalik Buterin最近的一篇文章中得到了确认。