以太坊 Layer 2 扩容方案及用例综述
Layer 2 是一系列链下扩展性解决方案的总称,这些解决方案旨在通过在以太坊 (Layer1) 链下处理交易来帮助应用实现扩展。当以太坊网络繁忙时,交易速度会受到影响,这可能会导致某些类型的 Dapps 的用户体验较差。随着网络越来越繁忙,Gas 价格也随着交易发送方竞相出价而上涨。这可能会导致使用以太坊变得非常昂贵。
本文假设你对一些基本知识有着很好的理解。实现 Layer 2 解决方案是先进的技术,该技术的战场考验还较少。
为何需要 Layer 2?
对于一些用例 (比如区块链游戏) 而言,当前的交易处理所需时间是行不通的;
使用基于区块链的应用 (apps) 可能会非常昂贵;
任何对可扩展性的改进都不应该以牺牲安全性和去中心化为代价 –– Layer 2 构建于以太坊之上。
Layer 2 解决方案的类型
Rollups
ZK Rollups
Optimistic Rollups
状态通道 (State channels)
Plasma
Validium
侧链
混合方案
大多数 Layer 2 解决方案都以某个服务器或服务器集群为中心,每个服务器都可以被称为一个节点,验证者,运营者,区块生产者,或者其它类似的术语。根据实现方式的不同,这些 Layer 2 节点可能由使用它们的企业或实体、或由第三方运营商、或由一大群个人 (类似于以太坊主网) 运行。
一般来说,交易会被提交给这些 Layer 2 节点来处理,而不是直接提交到 Layer 1 (主网);然后,Layer 2 实例会将交易分批成组地锚定到 Layer 1 上,之后这些交易就被 Layer 1 保护且无法再被更改。根据不同的 Layer 2 技术及其实现的不同,这方面的具体实现细节也有很大的不同。
某个特定的 Layer 2 实例可能对许多应用 (apps) 开放和共享,或者可能仅由某个公司部署并专门用于支持该公司的应用。
01
Rollups
Rollups 是在 Layer 1 之外执行交易,但在 Layer 1 上发布交易数据的解决方案。由于交易数据位于 Layer 1 上面,这使得 Rollups 受到了 Layer 1 的保护。
Rollups 的关键特征是:继承了以太坊主链 (Layer 1) 的安全属性,同时在 Layer 1 之外执行交易。
Rollups 的三个简化特性如下:
在 Layer 1 之外执行交易;
在 Layer 1 上发布交易数据或证明;
部署在 Layer 1 上的某个 Rollup 智能合约,通过使用 Layer 1 上的交易数据能够确保 Layer 2 交易被正确地执行。
Rollups 要求运营者在 Rollup 智能合约中质押一笔保证金,这样就激励了运营者正确地验证和执行交易。
Rollups 可用于:
为用户减少交易费;
开放式参与;
快速的交易吞吐量。
当前有两种具有不同安全模型的 Rollups:
ZK Rollups:在链下运行计算,并向主链提交有效性证明 (validity proof);
Optimistic Rollups:默认情况下假定交易是有效的,仅在遇到挑战 (challenge) 时,通过欺诈证明 (fraud proof) 运行计算。
1. ZK Rollups
ZK Rollups,全称 Zero Knowledge Rollups,会将数百笔交易在链下 (Layer 2) 进行捆绑打包,并生成一个称为“SNARK” (简洁的非交互式零知识证明)的加密证明。这就是所谓的有效性证明 (validity proof),该证明会被提交和发布在 Layer 1 上面。
部署在 Layer 1 上的 ZK Rollup 合约会维护所有发生在 Layer 2 上的交易转移状态,该状态只能通过有效性证明才能进行更新。这意味着,ZK Rollups 只需要有效性证明,而不需要所有的交易数据。通过 ZK Rollup,验证区块将变得更快、更廉价,因为被打包的数据更少了。
使用 ZK Rollup 时,当资金从 Layer 2 转移到 Layer 1 时不会出现延迟,因为 ZK Rollup 合约此前接受的有效性证明已经验证了这笔资金的有效性。
我们还可以对使用 ZK Rollups 的侧链进行优化,以进一步减少交易大小。比如,账户 (account) 可以由索引 (index) 而非地址 (address) 来表示,这样就可以将交易大小从 32 字节减少到仅仅 4 字节;交易还可以作为 calldata 被写入以太坊,从而减少 Gas 使用量。
ZK Rollups 的优缺点
优点:
当需要将资金转移至主链上时,不会出现延迟,因为有效性证明已经对资金进行了验证;
不像 Optimistic Rullops 那样容易受到经济攻击的影响。
缺点:
仅限于简单的转账,不兼容于 EVM (以太坊虚拟机);
有效性证明的计算强度很大,因此对于一些链上交易活动较少的应用而言,不值得采用此技术;
ZK Rollups 的用例
Loopring
Starkware
Matter Labs 的 zkSync
Aztec 2.0
ZeroSwap
Sushiswap
dYdX
Immutable X
2. Optimistic Rollups
Optimistic Rollups 与以太坊主链平行运行。Optimistic Rollups 可以在可扩展性方面提供改进,因为默认情况下它们不进行任何计算。相反,在交易完成之后,它们会向主网提议新的状态,也即对交易进行“公证”。
使用 Optimistic Rollops,交易将作为 calldata (调用数据)被写入以太坊主链,通过降低 Gas 成本来进一步对交易进行优化。
由于链上计算是导致以太坊缓慢、昂贵的原因,Optimistic Rollups 能够根据交易类型提供 10-100 倍的可扩展性提升。随着 Eth2 升级将引入分片链,这一数字将会进一步增加。这是因为,当 Optimistic Rollup 链中的某笔交易存在争议时,将会有更多的数据可用。
当交易存在争议时
Optimistic Rollups 实际上并不会对交易进行计算,因此需要存在一种机制,以确保其中的交易是正当而非欺诈性的。这就是欺诈性证明 (fraud proofs) 发挥作用的地方。如果某人注意到了一笔欺诈性交易 (并提出欺诈证明),Optimistic Rollup 链将使用可用的状态数据来校验该欺诈证明并运行该笔交易的计算。这意味着,与 ZK-rollup 相比,Optimistic Rollup 可能有更长的交易确认等待时间,因为交易可能会被挑战。
你在提交欺诈证明时计算所消耗的 Gas 甚至会被补偿,也即你会因为证明有欺诈行为而得到补偿。Optimism 团队的 Ben Jons 描述了现有的保证金系统:
Optimistic Rollups 的优缺点
优点
你在以太坊 Layer 1 上能做的任何事情,都可以在 Optimistic Rollups 上进行,因为 Optimistic Rollups 兼容于 EVM 和 Solidity。
所有的交易数据都存储在 Layer 1 链上,意味着 Optimistic Rollups 是安全和去中心化的。
缺点:
由于潜在的欺诈性挑战,需要很长的交易确认等待时间。
Optimistic Rollups 的用例
Optimism
Offchain Labs 的 Arbitrum Rollup
Fuel Network
Cartesi
Synthetix
02
通道 (Channels)
通道 (Channels) 允许参与者在链上只提交两笔交易的情况下进行 x 次链下交易。这能够实现极高的交易吞吐量。
可用于:
大量的状态更新;
当预先知道参与者的数量时;
当参与者总是存在时。
参与者必须将一笔 ETH 存款锁定在一个多签合约中。多签合约是一种需要多个私钥签名 (从而使各方达成共识) 以执行交易的智能合约类型。
锁定存款就是基于这种方式的第一笔交易,以此来开通一个交易通道。之后,参与者就可以快速和自由地进行链下交易。当交互完成之后,一笔最终的链上交易会被提交,从而解锁之前被锁定的存款。
状态通道 (State channels)
状态通道的井字游戏:
在以太坊主链上创建一个多签智能合约“法官”,该合约理解井字游戏规则,并可以识别 Alice 和 Bob 为游戏中的两个玩家。这份合约持有 1 ETH 的奖励。
然后,Alice 和 Bob 开始玩游戏,开启状态通道。每一步操作都会创建一笔包含“nonce”值的链下交易,这意味着之后我们总是可以知道这些操作发生的顺序。
当赢家产生时,Alice 和 Bob 通过向“法官”合约提交最终状态 (比如交易列表) 来关闭该通道,这样就只用付一次交易费用。“法官”确保这一“最终状态”由 Alice 和 Bob 双方签署,并等待一段时间以确保没人会对这一结果的合法性发起挑战,然后将 1 ETH 的奖励发给 Alice。
目前有两种类型的通道:
状态通道 – 如上所述;
支付通道 – 经简化的状态通道,只处理支付。支付通道允许两个参与者之间进行链下转账,只要他们的转账净额不超过存入的代币数量。
优缺点
优点:
即时提款/主网结算 (前提是通道的参与双方合作的情况下);
可能实现极高的交易吞吐量;
每笔交易有着最低的成本,有利于小额支付。
缺点:
创建和结算通道的时间和成本 — 对于任意用户之间偶尔的一次性交易来说不太好;
需要定期查看通道网络,或将此责任委托给其他人,以确保用户资金的安全;
必须在开启通道时锁定资金;
不支持公开参与。
状态通道的用例
Connext
Kchannels
Perun
Raiden
Statechannels.org
03
Plasma
Plasma 链是一条独立的区块链,锚定到以太坊主链,并使用欺诈证明 (类似于 Optimistic Rollups) 来仲裁纠纷。
Plasma 的优缺点
优点:
高吞吐量,低交易成本;
适用于任意用户之间的交易 (如果两个用户都在 Plasma 链上,则每个用户对没有开销);
缺点:
不支持通用计算,只能支持基本的代币转移、兑换和其它一些交易类型;
需要定期查看该网络,或将此责任委托给其他人,以确保用户的资金安全;
依赖于一个或多个 Plasma 链运营者来存储数据并根据请求提供服务;
存在交易挑战期,提款会被推迟了几天。流动性提供者可以减轻这种情况,但存在相关的资本成本。
Plasma 用例
OMG Network
Polygon (前身为 Matic Network)
Gluon
Gazelle
LeapDAO
04
Validium
Validium 使用像 ZK-Rollops 这样的有效性证明,但数据并不存储在以太坊的以太坊 Layer 1 主链上,而是将 Layer 2 的交易数据存储在链下。这可能实现每条 Validum 链每秒处理 10k 笔交易,多条 Validum 链可以并行运行。
Validium 的优缺点
优点:
没有取款延迟 (链上/跨链交易没有延迟),从而提高资本效率;
不会像基于欺诈证明的系统那样容易受到某些经济攻击。
缺点:
对通用计算/智能合约的支持有限;专门的语言要求。
生成 ZK 证明需要较高的计算能力,对于低吞吐量的 Apps 来说,此方案是不划算的;
Validium 用例
Starkware
Matter Labs 的 zkPorter
Loopring
05
侧链
侧链 (sidechain) 是一条独立的区块链,它与主网并行且独立运行。侧链有自己的共识算法 (比如权威证明、DPoS委托权益证明、拜占庭容错等等)。侧链通过一个双向桥与主链相连。
优缺点
优点:
较成熟的技术;
支持通用计算,兼容 EVM;
缺点:
不那么去中心化;
使用单独的共识机制,其安全性不受 Layer 1 保护 (因此从技术上来说,侧链不是 Layer 2);
一定数量的侧链验证者可以实现欺诈。
侧链的用例
Skale
POA Network
xDAI
06
混合解决方案
结合多个 Layer 2 技术的最佳部分,并提供可配置的折衷方案。
用例
Offchain Labs 的 Arbitrum SCSC
Celer Network
延伸阅读
Validium And The Layer 2 Two-By-Two — Issue No. 99
https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two
Evaluating Ethereum layer 2 Scaling Solutions: A Comparison Framework
https://medium.com/matter-labs/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955
Adding Hybrid PoS-Rollup Sidechain to Celer’s Coherent Layer-2 Platform on Ethereum
https://medium.com/celer-network/adding-hybrid-pos-rollup-sidechain-to-celers-coherent-layer-2-platform-d1d3067fe593
Zero-Knowledge Blockchain Scalability
https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf
状态通道
EthHub on state channels
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/state-channels/
Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit – Josh Stark, Feb 12 2018
https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4
State Channels - an explanation Nov 6, 2015 - Jeff Coleman
https://www.jeffcoleman.ca/state-channels/
Basics of State Channels - District0x
https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/
支付通道
EthHub on payment channels
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/payment-channels/
ZK Rollups
EthHub on zk-rollups
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/zk-rollups/
Optimistic rollups
EthHub on optimistic rollups
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/optimistic_rollups/
OVM Deep Dive
https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52
侧链
EthHub on sidechains
https://docs.ethhub.io/ethereum-roadmap/layer-2-scaling/sidechains/
Scaling Ethereum Dapps through Sidechains -Feb 8, 2018 - Georgios Konstantopoulos
https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447
Scan QR code with WeChat