需要扩容
自从以太坊主网上线以来,其扩容问题一直是讨论最多的话题之一,尤其是当某些热点事件引起网络拥堵时,对于扩容话题的关注和讨论往往更加白热化。
第一次就扩容问题展开的激烈讨论发生在2017年全球加密市场的“牛市”,著名的“CryptoKitties加密猫”和ICO一起造成了整个以太坊网络的拥堵,Gas费用在短时间内暴增。
今年,由于DeFi市场的普及和火热,网络拥堵情况愈发严重。用户有时甚至需要支付高达500+ Gwei的gas费用,即使如此,交易也无法在短时间内得到验证。
一般而言,在考虑区块链或者以太坊扩容方案时,有两种主要办法:扩展基础层本身(第1层)或通过将一些工作分流另一层(第2层)来扩展网络。
Layer 1与 Layer 2对比
Layer 1是我们通常所说的标准基础共识层,目前几乎所有的交易都在此结算,Layer的概念并不是以太坊特定的概念,它还在Bitcoin和Zcash等其他区块链领域被广泛使用。
Layer 2是在Layer 1之上构建的另外一层,值得注意的是,Layer2不需要对Layer 1进行任何更改,它可以使用其现有的元素。例如:智能合约仅在Layer 1之上构建;Layer 2还可通过将其状态固定到Layer 1来利用Layer 1 稳固的安全性。
目前以太坊每秒可在其基础层“ Layer 1”上处理约15笔交易。Layer 2扩展后可以显著增加同等时效内处理的交易数量。根据现有不同的解决方案,我们认为理想的处理速度应该为2000-4000 tx/s。
以太坊2.0引入了权益证明和分片机制,这将显著提升基础层上的交易吞吐量。即使采用分片机制,以太坊仍然需要Layer 2扩容,才能在将来处理每秒数十万甚至高达数百万笔的交易量。在不牺牲安全性和分散性的前提下,以太坊或许将Layer 1和Layer 扩展的组合性留给了社区与未来。
Layer 2扩容方案
Layer 2 扩容是解决方案的统称,这些解决方案通过脱链处理事物“Layer 1以外”来帮助提高Layer 1的功能。我们可以这样理解,其功能的提高的主要表现在处理速度和处理吞吐量的提高。最重要的是,Layer 2扩容方案可以显著降低以太坊网络转账的Gas费用。
状态通道
状态通道是最早被广泛讨论的扩容解决方案之一,它们允许参与者多次脱链交换事物,而仅向基础层提交两个事物。
尽管支付通道具有每秒数千笔交易的潜力,但它们也有一些缺点。它们不提供公开参与—--必须预先知道参与者,并且用户必须在多重签名合约中锁定资金。最重要的是,这种扩容解决方案是特定用于应用程序的,不能适用于扩展通用智能合约。
Raiden是以太坊上利用状态通道的主要项目之一。此外,支付渠道的概念也被基于比特币的闪电网络广泛使用。
Plasma
Plasma是Layer 2扩容解决方案,最初由Joseph Poon和Vitalik Buterin提出。这是一个在以太坊上构建可扩展应用程序的框架。Plasma利用智能合约和Merkle树来创建无限数量的子链——父Ethereum区块链的副本。它可以将事务从主链卸载到子链并允许快速而廉价的事务。等离子的一个缺点是,用户需要等待很长时间才能从第二层提取资金。与通道类似,等离子体不能用于扩大通用智能合约的规模。OMG网络构建在他们自己的Plasma链的实现上,称为MoreViable Plasma。而Matic网络是另一个使用Plasma框架的改版平台的例子。
侧链
侧链是与以太兼容的、独立的区块链,它拥有自己的一致模型和区块参数。通过使用相同的以太坊虚拟机使得侧链与以太坊的互操作性成为可能,因此部署到以太坊基础层的合约可以直接部署到侧链。xDai就是这种侧链的一个例子。
Rollups
Rollups通过将单边事务捆绑或“上卷”到单个事务并生成密码证明(也称为SNARK——简写的非交互知识论证)来提供可伸缩性,只有这个密码证明会提交给基层。对于Rollups,所有的事务状态和执行都在旁链中处理。以太坊主链只存储事务数据。
Rollups有两种类型:ZKRollup 和 Optimistic Rollup。
ZK Rollup虽然比OptimisticRollup更快更有效,但并没有为现有的智能契约迁移到Layer 2提供一种简单的方法。Optimistic Rollup运行一个名为OVM(Optimistic Virtual Machine)的EVM兼容虚拟机,该虚拟机上允许执行与在以太坊上执行的相同的智能合约。这是非常重要的,因为它使现有的智能合约更容易维护其可组合性,这在所有主要智能合约都已经过实战测试的DeFi中是极其相关的。当谈到ZK Rollup时,Loopring和Deversifi都是构建在Layer 2的分散交换的好例子。此外,还有ZkSync支持可扩展的加密支付。
以太坊2.0还可以扩大Rollups的可伸缩性。实际上,因为Rollups只需要扩展数据层,所以它在以太坊2.0阶段1(关于数据切分)中就可以获得巨大的提升。