Web3系列教程之进阶篇---1. Layer 2
Layer 1 vs Layer 2
Layer 1
第1层区块链(也称为父链或根链)通常是用来描述一个主要区块链网络协议的名称,如以太坊或比特币。第1层区块链只是第2层扩展解决方案所依附的主网络,以提高主链或第1层的可扩展性和交易吞吐量。第1层的名称来自于它与第2层扩展解决方案的关系,如状态通道、rollups和plasma侧链,所有这些我们都会详细介绍。
把第1层看作是我们迄今为止一直在研究的标准区块链技术,而第2层是建立在该区块链之上的扩展,以增加功能。
Layer 2
第二层指的是建立在现有区块链系统之上的二级框架或协议。以太坊等主要加密货币网络面临交易速度和扩展的困难。比特币和以太坊仍然无法每秒处理成千上万的交易。而这些第二层解决方案通常提供更好的交易费用。
第二层协议是专门为与底层区块链整合而设计的,以提高交易吞吐量。它们依赖于主链的共识机制和安全性。第2层的操作通常可以独立于第1层进行。这就是为什么这些有时被称为 “链外 “解决方案。虽然主链/第1层可以提供区块链固有的安全性,但第2层可以提供速度。
由于第2层的交易发生在不同的链上,所以会定期打开一个连接,将这些交易转移到主区块链上。这种连接有时被称为桥梁,或通道。因此,第2层解决方案的一个主要考虑因素是交易在被转移到主链之前如何被验证和确认。
Layer 2扩展解决方案
现在有许多第二层或者正在开发的扩展解决方案。我们将对它们进行广泛的研究。
有两个主要的维度,第二层的扩展解决方案彼此不同。第一个是交易执行,第二个是数据可用性。
交易执行策略处理交易如何运行、在哪里运行、信任环境是什么、安全和去中心化环境是什么等。
数据可用性策略处理第 2 层解决方案是否使其交易数据在第 1 层主链上可用。
我们将研究以下类别:
-
状态通道
-
侧链
-
Rollups
-
Optimistic Rollups (ORs)
-
Zero-Knowledge Rollups (ZKRs)
-
ZKR vs OR
-
-
Plasma
-
Validiums
-
Volitions
状态通道
状态通道是区块链的第一个广泛的扩展方法。当两个或更多的用户想在一个可信任的环境中执行大量事务而不需要每次都支付汽油时,就会使用状态通道。
一个简单的例子,就是区块链上带有下注的井字游戏。
假设Alice和Bob想投入10个ETH来玩一个井字游戏。另外,假设Alice和Bob互相信任。我们可以设计一个智能合约,让每一步棋都记录在区块链上,在游戏结束时,Alice或Bob都会收到他们的赢利。但这将是一个昂贵的游戏,因为每一步棋都要花费Alice或Bob的汽油费。这可以用状态通道来解决。
我们没有设计一个智能合约来支持井字棋的每一步棋,而是设计了一个智能合约,允许打开和关闭一个状态通道。一旦打开,状态通道将有游戏的默认开始状态,Alice和Bob可以在上面做动作而不需要支付气体费用,因为打开的状态通道将是链外的。每一步棋都不会被写到主链上。当通道关闭时,游戏的结束状态被写入主链,同时处理游戏的赢利。所以,不是把每一步棋都写到区块链上,而是只把游戏的开始和结束写到区块链上,从而节省大量的交易费用。井字游戏的动作数量可能不多,但想象一下国际象棋或围棋的游戏,你就会知道这可以节省多少钱。
在涉及货币/加密货币转移的应用中,有时这些被称为支付渠道。
对于支付,另一个很好地利用状态通道的例子是获得音乐的版权费。例如,假设一个艺术家希望每月收到他们的歌曲在音乐服务(如Spotify)上被收听的报酬。该艺术家希望以此获得ETH支付,但他们并不真的想做这方面的工作。一家公司可以为该艺术家提供这样的服务。如果艺术家每听一首歌都能收到ETH转账到他们的钱包,转账费用将远远超过听歌的利润。使用状态通道,公司可以在月初打开一个渠道,代表艺术家收取当月的版税,然后在月底关闭渠道,将所有版税的ETH一次性发送给他们,当月只支付一次转账费用。这样既节省了转账费用,又保证了安全。
状态通道仍然使用区块链方法,例如使每个状态更改都以加密方式安全。
除了提高速度和降低费用之外,状态通道还有其他一些好处。由于游戏的开始和结束都写入了主链,但中间状态没有,因此可以拥有更多的隐私。状态通道只是在 Alice 和 Bob 之间,但由于每一步都没有发布到区块链上,所以每一步都是不公开的。
这种方法也并非没有挑战。状态通道有用的核心假设是状态通道的参与者相互信任以在链下执行这些交易。由于要打开通道,Alice 和 Bob 都必须投入 10 ETH。这笔钱被锁定在智能合约中,直到状态通道关闭。但是,如果Alice 在移动中离线,Bob将永远无法取回他的钱。因此,如果 Bob 不信任 Alice,状态通道就不是最好的方法,因为任何一方都可以锁定智能合约。
侧链
侧链是一个独立的 EVM 兼容的区块链,它与主区块链并行运行,并具有通往第 1 层的通道。侧链有自己的验证器和添加区块的共识方法。侧链快速、廉价地积累交易,并通过桥梁或通道将其汇总到主链。
由于侧链基于 EVM,您可以将它们视为迷你以太坊区块链。侧链具有 EVM 的所有优点,就像编写可靠的智能合约一样,并使用 web3 API 与链交互。
侧链的缺点是它们可以更加中心化。例如,如果他们的协商一致协议使用不太安全或不太分散的方法,以便有更高的事务吞吐量,并且这些节点共谋进行欺诈。
需要注意的是,与下面的其他解决方案不同,侧链在技术上不是第2层,因为它们不使用主链的安全性,而是经常这样称呼。
Rollups
Rollups 是在第二层执行交易的解决方案,但将交易数据以捆绑或总结的形式发布到第一层。可以把rollups 看作是一种 “压缩和合并 “的操作。通过将计算移出链外,它们释放出更多的链上空间。链上数据的可用性是至关重要的,因为它允许以太坊重复检查rollups交易的完整性。与状态通道不同,rollups 在主链上发布的交易数据可以被验证为正确或不正确,而且rollups 的执行不需要发生在一个可信任的环境中。
Rollups的工作方式是在第1层部署一组智能合约,负责存款、提款和验证证明。证明是不同类型rollups的主要区别。一般来说,有两种rollups:Optimistic Rollups 和 Zero-Knowledge Rollups.
Optimistic Rollups
在Optimistic Rollups中,事务数据批被发送到主链,并被认为在缺省情况下是有效的(因此名称为乐观) ,但是可能会受到其他用户的质疑。
理论上,任何人都可以通过提交索赔(也称为欺诈证明)来挑战他们,以证明提交到链上的一个批次包含无效的状态转换。如果欺诈证明是有效的,这些无效的状态转换将被回滚。如果没有人质疑该交易,它将被提交到主链上。为了让用户有足够的时间对交易提出质疑,从交易发布到它被提交到主链上有很长的等待时间,通常是几天,但也有可能是一周。在这段时间内,你不能把你的资金提取到主链上。
需要注意的是,当挑战发生时,主链始终可以验证潜在区块中交易的真实性。但是这些验证需要工作,因此需要费用。
如何阻止不良分子向汇总网络发送不良交易或向网络发送欺诈证明验证垃圾邮件?如果受到质疑,第 1 层用于验证交易的资金从何而来?为了回答这个问题,我们介绍了这个领域的 3 位参与者:
asserter
- 提案者试图在主链上发布交易证明,从而断言其有效性challenger
- 试图证明发布证明的asserter
是欺诈性的挑战者verifier
- 主链上的智能合约,用于验证证明并检查其有效性
asserter
需要提供保证金来提出一个交易区块,通常是以一些ETH的形式。challenger
也需要提供保证金(通常是ETH)来进行挑战。verifier
将验证主链上的交易。
如果asserter
发现是欺诈性的,他们会失去一些保证金。verifier
获得部分断言者保证金用于处理验证,并获得challenger
另一部分断言者保证金作为发现欺诈的奖励。
如果asserter
被发现没有欺骗,则challenger
失去一些保证金。verifier
像以前一样处理验证会获得一些挑战者的保证金,这次他们会asserter
获得一些挑战者的保证金作为发现欺诈的奖励。
ZK Rollups
ZK 代表“零知识”,它是一种方法,一方(证明者)可以向另一方(验证者)证明给定的陈述是真实的,而证明者避免传达任何额外的信息,除了事实上的陈述是真实的。更多关于零知识证明。
在此汇总中,没有个人进行验证。相反,每个提议将一组新的汇总交易添加到主链的人都会为其构建一个零知识证明。这可以由控制向主链添加交易的智能合约自动验证。因此,与 Optimistic Rollups 相比,ZK Rollups 没有challenger
作用,发布在主链上的每个证明在发布时都经过验证。
特别是,提案者构造了某种零知识证明,称为zk-SNARK,这是一种非交互式零知识证明,这意味着该证明不需要证明者和验证者之间的交互。
要更深入地了解 zk-SNARKS,请参阅 David Wong 的系列文章,zk-SNARKS 的解释
ZK vs Optimistic
乍一看,ZK rollups 似乎在各方面都比Optimistic Rollups更好。毕竟,交易可以自动验证,不需要挑战者,断言者在提交之前证明自己的交易。此外,他们支付 gas 来处理智能合约中的证明,因此只有在提交无效证明时才会失败。
那么,为什么要进行Optimistic Rollups呢?
ZK rollups 的问题在于,从数学上讲,很难构建这些证明。每个用例都需要研究时间来找到匹配的密码证明,这可能需要很长时间才能找到。
此外,零知识证明通常很复杂,因此验证成本很高。智能合约包含的操作越多,运行成本就越高。此外,智能合约的空间也有限,因此证明必须在少于一定次数的操作中运行。
Plasma
Plasma是一个用于构建可扩展的第2层应用程序的框架。Plasma在其应用中使用了很多上述的想法。Plasma的构件是链外执行,状态承诺,以及进入/退出主链。Plasma链是一个独立的,被锚定在以太坊主链上的子区块链。Plasma链使用各种欺诈证明来仲裁争端,就像optimistic rollups一样。像侧链一样,Plasma链有自己的共识算法,并创建交易块。在固定的时间间隔,每个区块的压缩表示被提交给以太坊的智能合约。Merkle树使创建这些链的无限堆栈成为可能,这些链可以努力从父链(包括Mainnet)卸载带宽。Plasma链在链外做尽可能多的工作。Plasma的实现使数百个侧链交易能够被离线处理,只有侧链区块的一个哈希值被添加到以太坊区块链中。
Plasma 链只与主链互动,以提交其状态,或促进进入和退出。由于大多数Plasma 的实现是一个完全不同的区块链,它必须促进从主链进入和退出链,这是由智能合约促进的。实际上,Plasma 网络的一个大缺点是,从它那里提取资产到主链比较困难。提款会延迟几天,以允许挑战,就像optimistic rollups。对于可替换的资产,这可以由流动性提供者来缓解,但有一个相关的资本成本。这是因为Plasma 网络上的资产与主链上的资产不完全相同。例如,你在Plasma 上不持有ETH,你通常持有wETH(wrapped ETH),它与ETH的价值是1:1。
Plasma 的实施也依靠验证者来观察网络并确保安全。当资金被提取时,也有一个等待期,以允许挑战。与侧链一样,Plasma 的好处是更高的吞吐量和更低的每笔交易成本。这对两个用户之间的交易来说是非常好的。然而,Plasma 的缺点是它不支持像主链允许的那样复杂的计算,尽管许多解决方案正在努力解决这个问题。
要使用Plasma,你可以整合几个已经实现Plasma的项目之一,例如Polygon,它的正式名称是Matic。
要深入研究等离子体,请查看Plasma白皮书。
关于plasma的其他一些有用的文档有: Learn Plasma 和Plasma Docs on ethereum.org。
数据可用性
到目前为止,我们一直在讨论各种扩展解决方案所采取的不同的交易执行方法,以及这些交易运行的信任和安全环境。
然而,第二层的另一个维度有不同的权衡是数据的可用性。在主链上,我们习惯于将所有数据公开发布在区块链上。然而,这伴随着重大的隐私问题。
例如,如果一个专业的交易公司在 DEX 上进行大量的资金交易,他们可能不希望他们的交易策略被公开,否则这对他们就没有任何用处了。
第2层解决方案属于这些数据可用性的情况之一。
注意: 在这个上下文中,上链和下链特别指的是主层1链。在链意味着数据是可用的在第一层主链,和脱链意味着它不是可用的在第一层主链,虽然它可能在第二层链。
两种rollup 技术都是通过在主链上发布可验证的证明来存储数据,但ZKR使用的是在发布时被验证的有效性证明,而OR则依靠挑战者来捕捉欺诈性的证明。
另一方面,Plasma链将大部分数据存储在主链之外,通常只有在出现争议时才需要接触主链。充其量,他们会将快照发布到主链上,而不附带证明。因此,如果你信任Plasma链,那么只有快照才有帮助。与OR类似,快照被认为是默认有效的,除非有人提出争议。
现在我们来看看 Validiums 和Volitions。
Validium 链
除了数据存储在主链之外,Validium 的工作原理与 ZK 汇总非常相似。由于事务数据不在主链上发布,这就引入了新的信任假设,因为用户必须信任操作员,以便在需要时使数据可用。这通常是通过一个由已知实体组成的委员会来实现的,这些实体将其商业声誉押注于成为可靠的数据提供者。如果 L2节点运营商停止服务提款请求,该委员会将公开其数据副本。
需要注意的是,Validium 是一种数据可用性情况,它本身并不关心事务是如何执行的。通常,您可以使用基于 ZKR 的事务执行的 Valdium 方法。
Volition 链
Volition链是那些从Rollups和Validium数据可用性方法中诞生的。从本质上讲,它们允许一种混合的数据可用性方案,用户可以决定他们在主链上想要什么,以及他们在主链上不想要什么。
例如,一家大型交易公司可能不希望它的每一笔交易都在主链上公开,但在周末要求在主链上发布证明以继承它的安全利益。因此,他们可以在链外存储每笔交易的数据,但在链上存储整个星期的盈亏和余额变化。
同样,与Validiums类似,这只是一个数据可用性的情况,并不涉及交易的执行方式。通常情况下,你可以使用ZKR的Volition方法。
第2层的例子
Immutable X
Immutable X 是以太坊上的NFTs的第二层扩展解决方案。它允许开发者建立市场、游戏、应用程序等。以太坊每秒只能处理约15笔交易,并遭受高额的气体费用,而像Immutable X这样的第2层解决方案每秒可处理9000笔交易,且没有气体费用。它利用以太坊完善的安全、连接和生态系统来帮助开发者。
Polygon (formerly Matic)
Polygon是一个基于plasma,兼容EVM的第二层扩展解决方案,利用了股权证明、侧链等。它是目前最流行的以太坊二层解决方案之一。关于它的简单介绍,你应该阅读《 New to Polygon?》和《Polygon Architecture.》。
在未来的模块中,我们将有更多使用Polygon的实际例子。
Arbitrum
Arbitrum是一个optimistic rollup解决方案,用于以太坊上的通用智能合约。它与EVM兼容,开发者可以轻松地将他们现有的Solidity代码移植到Arbitrum。
Optimism
Optimism 也是Ethereum上通用智能合约的一个optimistic rollup解决方案。它也与EVM兼容,开发者可以将他们现有的Solidity代码移植到Optimism。
Arbitrum和Optimism在一些低层次的琐碎技术细节上有所不同,但从表面上看,它们都在同一类别中运作。
zkSync
zkSync是一个针对以太坊的ZK-Rollup解决方案。由于通用的ZK-Rollups非常困难,目前zkSync支持ETH和ERC20代币转移,NFTs,原子互换和基于订单簿的DEX的。
以及更多…
这并不是一个详尽的清单,还有许多第二层的解决方案在那里争夺注意力和市场份额,在低级别的实现上有不同的技术细节。如果你在网上寻找,你可能可以找到数百个。
推荐关注
Ethereum Layer 2 Scaling Explained
Overview of different Scaling Solutions
ETH 网络升级与Layer 2
随着我们越来越接近ETH网络升级(以前被称为Eth2),一个常见的问题是 “第2层的还会有意义吗?”
简单来说,是的。
长的答案需要我们看一下ETH的升级带来了什么,以及为什么它对第2层的人有利。
目前,ETH作为一个单一的、分布式的 “世界计算机 “运行。所有的交易都是串行执行的,并且有一个单一的共享状态,在所有以太坊节点之间维护。这有它的优点,但缺点是,当很多用户想要平行交易时,气体费用会激增,这可能会使交易非常昂贵。最近,对Ethereum dApps的需求导致了相对较高的气体费用。你可以整天争论安全和去中心化的好处,而不是成本,但对于一个普通的新人来说,使用它仍然很昂贵。
第二层解决方案,如rollups,通过在主链之外进行交易执行来帮助减轻成本。相反,他们在第二层进行计算,然后将加密证明发布到主链上,任何人都可以验证。由于任何人都可以检查所发布的证明是否有效,他们可以放心地知道交易是正确执行还是不正确执行。由于这一特性,rollups继承了主链的安全优势,而不需要为主链上的计算和执行支付气体费用。
随着ETH的升级,ETH专注于实现数据分片。从本质上讲,这意味着网络的单一状态将被分解成更小的数据集,称为分片,其目的是通过让网络更容易获得存储来降低存储成本。这样做的结果是,当汇总后证明回到主链,这样做会更便宜。
目前,rollup 链上的气体成本受到主链上存储的气体成本的限制。即使第2层的计算非常便宜,但将证明发布到主链上仍然需要在以太坊上支付气体来存储证明。如果以太坊的存储成本下降,那么使用rollup 链的成本也会下降,因为证明可以以更便宜的价格发布。这将激励更多的人使用第二层链,以太坊数据存储的直接需求将下降,这将进一步降低以太坊的存储成本,甚至更多,等等。
因此,ETH 升级实际上将帮助安全的第二层解决方案获得采用,并变得更便宜的使用。
如果你觉得这篇文章对你有所帮助,欢迎赞赏~
赞赏