What is a Layer 2 blockchain?
第一层与第二层区块链的比较:
第一层区块链(也称为主链)是一个术语,用来描述像以太坊或比特币这样的区块链网络。它们通常非常注重安全性和去中心化,并且在此基础上构建了其他的扩容解决方案,以改善交易速度、交易吞吐量和区块链网络的总体可扩展性。第一层的术语来自于它与其它第二层扩容解决方案的关系。
第二层区块链指的是在现有区块链系统之上构建的辅助框架或协议,通常旨在帮助提高网络的速度和可扩展性,或者为网络引入新功能。像比特币和以太坊这样的主要第一层网络面临扩容困难,因此交易吞吐量低或交易费用高——这通常是第二层链试图解决的问题。
第二层协议专门设计用于与底层区块链集成,以提高交易吞吐量。它们依赖于主链的共识机制和安全。第二层的操作通常可以独立于第一层进行。这就是为什么这些有时被称为“链下”解决方案。虽然主链/第一层可以提供区块链固有的安全性,但第二层可以提供速度。
由于第二层的交易发生在不同的链上,因此会定期打开连接,将这些交易移至主区块链。这种连接有时被称为桥梁或通道。因此,第二层解决方案的一个重要考虑因素是在将交易移至主链之前如何验证和确认这些交易。
扩容解决方案的类型:
目前存在许多第二层扩容解决方案,或者正在开发中。我们将大致了解它们。第二层扩容解决方案主要在两个维度上彼此不同。第一个是交易执行,第二个是数据可用性。
交易执行策略涉及交易的运行方式、运行位置、信任环境、安全性和去中心化环境等。
数据可用性策略涉及第二层解决方案是否将其交易数据在主第一层链上可用。
状态通道:
状态通道是区块链上第一种广泛应用的扩容方法。尽管在今天除了少数特定用例之外并不常用,但它们提供了很好的背景知识,并为我们学习第二层网络奠定了基础。
通常,当两个或更多用户想在受信任的环境中执行一系列交易,而不想每次都支付链上交易费用时,就会使用状态通道。
让我们看一个简单的例子——一个链上的双人游戏,比如国际象棋。假设爱丽丝和鲍勃每人想投入1 ETH来在链上玩一局国际象棋,赢家通吃。假设爱丽丝和鲍勃也互相信任,不会恶意操作,但他们想确保输家不会因为输掉游戏而拒绝支付。
我们可能会设计一个智能合约,记录他们在链上的每一步棋,游戏结束时,合约可以验证棋盘的状态,并自动将奖金支付给赢家。但如果每笔交易都在链上进行,这将很快变得非常昂贵,因为每一步棋都会让爱丽丝或鲍勃支付燃料费。这就是状态通道可以帮助解决的问题。
不是设计一个在链上记录每一步棋的智能合约,而是设计一个允许开启和关闭通道的智能合约。当你第一次打开通道时,它在合约中设置棋盘的初始状态。随后的每一步棋都在链下进行,但爱丽丝和鲍勃都用他们的钱包(私钥)签名每一步棋——但不作为交易发布到链上。他们记录下每一步棋的签名,游戏结束时,提交所有签名的一次性交易回到链上——这就是关闭通道。
通过这样做,他们避免了在链上为每一步棋进行交易,而是收集每一步棋的签名,然后一次性提交。
在涉及金钱/加密货币转移的应用程序中,有时这些被称为支付通道。
对于支付,状态通道的另一个好例子是收取音乐版税。例如,假设一位艺术家想在音乐服务平台上收取他们歌曲的月度版税,比如 Spotify。艺术家希望用 ETH 支付,但他们不想为此付出太多努力。一家公司可以为此艺术家提供服务。如果艺术家因为每首歌的收听而收到 ETH 转账到他们的钱包,转账费用将远远超过收听带来的利润。使用状态通道,公司可以在月初打开一个通道,代表艺术家收取一个月的版税,然后在月底关闭通道,一次性发送所有版税的 ETH 总额,每月只需支付一次转账费。这节省了转账费用,同时保持了安全性。
除了潜在的提高速度和降低费用之外,状态通道还有一些其他好处。由于游戏的开始和结束都记录在主链上,但中间状态没有,因此可能具有更高的隐私性。状态通道只在爱丽丝和鲍勃之间,但由于每一步棋没有发布到区块链,所以每一步棋都是私有的。
这种方法也并非没有挑战。状态通道有用的核心假设是,状态通道的参与者互相信任,以在链下执行这些交易。因为要打开通道,爱丽丝和鲍勃都必须投入1 ETH。这笔钱被锁定在智能合约中,直到状态通道关闭。然而,如果爱丽丝在她的回合下线,鲍勃将永远拿不回他的钱。因此,如果鲍勃不相信爱丽丝,状态通道并不是最佳选择,因为任何一方都可以锁定智能合约。
侧链:
侧链是一个独立的、与EVM兼容的区块链,它与主区块链并行运行,并与第一层有一个通道。侧链有自己的验证者和添加区块的共识方法。侧链可以快速且低成本地积累交易,并通过桥梁或通道将它们汇总到主链上。
由于侧链基于EVM,你可以将它们视为迷你以太坊区块链。侧链具有EVM的所有好处,就像用Solidity编写智能合约一样,并通过web3 API与链交互。侧链的缺点是它们可能更加中心化。例如,如果它们的共识协议采用了不那么安全或去中心化的方法以实现更高的交易吞吐量,而这些节点勾结进行欺诈。
需要注意的是,与其他下面的解决方案不同,侧链在技术上并不是第二层,因为它们不继承主链的安全优势,但通常仍被视为第二层。
乐观汇总(Optimistic Rollups):
汇总是一种在第二层执行交易,但将交易数据以捆绑或摘要形式发布到第一层的解决方案。你可以将汇总想象成一个“压缩和合并”的操作。通过将计算移出链外,它们在链上释放了更多空间。链上数据的可用性至关重要,因为它允许以太坊重新检查汇总交易的完整性。与状态通道不同,汇总在主链上发布的交易数据可以被验证为正确或错误,而且汇总执行不必在可信环境中进行。
汇总通过在第一层部署一组智能合约来工作,这些智能合约负责存款、取款和验证证明。证明是不同类型汇总之间的主要区别。一般来说,有两种类型的汇总:乐观汇总和零知识汇总。
在乐观汇总中,交易数据被批量发布到主链上,并默认被认为是有效的(因此得名乐观),但可以被其他用户挑战。
理论上,任何人都可以通过提交一个称为欺诈证明的声明来挑战它们,以证明提交到链上的批次包含无效的状态转换。如果欺诈证明有效,这些无效的状态转换将被回滚。如果没有人对交易提出挑战,它将被提交到主链上。为了给用户足够的时间来挑战交易,从交易发布到在主链上提交之间有一个很长的等待时间,通常为几天,但可能长达一周。在这段时间里,你不能将资金提取到主链上。
需要注意的是,当发生挑战时,主链始终可以验证潜在区块中交易的真实性。但这些验证需要工作,因此会产生费用。
那么,如何阻止恶意行为者用无效交易垃圾邮件汇总网络,或者用欺诈证明验证垃圾邮件攻击网络呢?如果交易受到挑战,第一层验证交易的资金从哪里来?为了回答这个问题,我们引入了这个领域的三个角色:
断言者(asserter):试图在主链上发布交易证明的提议者,从而断言其有效性。
挑战者(challenger):试图证明断言者发布的证明是欺诈的用户。
验证者(verifier):主链上的一个智能合约,用于验证证明并检查其有效性。
断言者必须提供保证金来提议一个交易区块,通常以一些ETH的形式。挑战者也必须提供保证金(通常是ETH)来进行挑战。验证者将在主链上验证交易。
如果发现断言者是欺诈的,他们会失去一部分保证金。验证者因为处理验证而获得断言者的一部分保证金,挑战者因为发现欺诈而获得断言者另一部分保证金作为奖励。
如果发现断言者不是欺诈的,挑战者会失去一部分保证金。验证者因为处理验证而获得挑战者的一部分保证金,这次断言者因为他们的麻烦而获得挑战者的一部分保证金作为奖励。
零知识汇总(Zero-Knowledge Rollups):
ZK代表“零知识”,这是一种方法,其中一个实体(证明者)可以向另一个实体(验证者)证明给定的陈述是真实的,同时证明者避免传达除了陈述确实为真之外的任何额外信息。
在这种汇总中,没有个人进行验证。相反,每个提议将一组新的汇总交易添加到主链的人都为其构建了一个零知识证明。这可以由控制添加交易的智能合约自动验证。因此,与乐观汇总不同,ZK汇总没有挑战者角色,主链上发布的每个证明在发布时都会被验证。
虽然与乐观汇总相比,ZK汇总在理论上听起来很棒,但它们的构建难度呈指数级增加,通用型ZK汇总还是一个尚未实现的理想化愿景。相比之下,目前存在多个完全通用型且与以太坊主网兼容的乐观汇总。
Plasma链:
Plasma是一个用于构建可扩展的第二层应用的框架。Plasma在其应用中使用了上述许多想法。Plasma的构建模块包括链下执行、状态承诺以及进入和退出主链。Plasma链是一个独立的子区块链,锚定在主以太坊链上。Plasma链使用各种欺诈证明来解决争议,就像乐观汇总一样。与侧链一样,Plasma链有自己的共识算法,并创建交易区块。在固定的时间间隔内,每个区块的压缩表示被提交到以太坊上的一个智能合约。默克尔树使得可以创建一个无限堆叠的这些链,从而减轻父链(包括主网)的带宽压力。Plasma链尽可能在链下完成工作。Plasma的实现使得可以处理数百个侧链交易,而只需在以太坊区块链上添加一个侧链区块的哈希。
Plasma链只与主链交互以提交其状态,或者促进进入和退出。由于大多数Plasma实现完全是不同的区块链,因此必须通过智能合约促进从主链进入和退出链,这实际上是与Plasma网络相关的一个大缺点,即从Plasma网络提取资产到主链更加困难。提款被延迟几天以允许挑战,就像乐观汇总一样。对于可替代资产,可以通过流动性提供商来缓解这种情况,但这涉及到资本成本。这是因为Plasma网络上的资产与主链上的资产并不完全相同。例如,你在Plasma上不持有ETH,你通常持有wETH(包装ETH),其价值与ETH是1:1的。
Plasma实现还依赖于验证者监控网络并确保安全。当资金被提取时,还有一个等待期,以允许挑战。与侧链一样,Plasma的好处是吞吐量更高,每笔交易的成本更低。它非常适合两个用户之间的交易。然而,Plasma的缺点是它不支持主链允许的复杂计算,尽管许多解决方案正在努力解决这一问题。
要使用Plasma,你可以集成已经实现Plasma的几个项目之一,例如Polygon,它以前被称为Matic。
数据可用性:
到目前为止,我们一直在讨论各种扩容解决方案采取的不同交易执行方法,以及这些交易运行的信任和安全环境。
然而,第二层在数据可用性方面也有不同的权衡。在主链上,我们习惯于所有数据都公开地发布在区块链上。然而,这也带来了重大的隐私问题。
例如,如果一个专业交易公司在去中心化交易所(DEX)上交易大量资金,他们可能不希望自己的交易策略被公开,否则这对他们来说就不再有用。
第二层解决方案属于以下这些数据可用性情况之一:
两种汇总技术都通过在主链上发布可验证证明来存储链上数据,但ZKR使用有效性证明,这些证明在发布时被验证,而OR依赖于挑战者来捕捉欺诈性证明。
另一方面,Plasma链在主链之外存储大部分数据,通常只在有争议时才需要接触主链。在最好的情况下,它们会向主链发布快照,而不附上证明。所以,如果你信任Plasma链,那么只有快照才有帮助。与OR类似,快照默认被认为是有效的,除非提出争议。
我们现在来看看Validiums和Volitions。
Validiums:
Validium的工作原理与ZK汇总非常相似,不同之处在于数据存储在主链之外。由于交易数据没有在主链上发布,这引入了新的信任假设,用户必须信任运营商在需要时提供数据。这通常是通过一群已知的实体组成的委员会来实现的,他们将自己的商业声誉押在作为可靠的数据提供者上。如果一个L2节点运营商停止服务提款请求,这个委员会将使其数据副本公开可用。
重要的是要注意,Validium是一种数据可用性情况,它与交易如何执行无关。通常,你可以使用基于ZKR的交易执行与Validium方法结合使用。
Volitions:
Volition链是汇总和Validium数据可用性方法的产物。本质上,它们允许混合数据可用性场景,用户可以决定他们想在主链上放置什么,不想在主链上放置什么。
例如,一家大型交易公司可能不希望它在主链上公开每一笔交易,但到了周末可能需要发布一个证明到主链上以继承其安全优势。因此,他们可以为每笔单个交易存储链下数据,但将每周的盈亏和余额变化带到链上。
再次强调,与Validiums类似,这只是数据可用性情况,与交易如何执行无关。通常,你可以使用Volition方法与ZKR结合使用。