首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vitalik : 不同类型的 L2 并起,应用和用户应如何选择?

撰写:Vitalik

编译:深潮 TechFlow

这种发展的不可避免后果之一是,我们看到了二层项目变得更加多元化的趋势。我预计这一趋势将继续下去,有几个关键原因:

一些目前独立于 Layer 1 的项目正在寻求更接近以太坊生态系统,并可能成为 Layer 2。这些项目可能希望逐步过渡。立即全部过渡现在会降低可用性,因为技术尚未准备好将所有内容放在 Rollup 上。而过晚一次全部过渡会冒失去动力和变得无关紧要的风险。

一些中心化项目希望为其用户提供更多的安全保障,正在探索基于区块链的途径。在许多情况下,这些项目在以前可能已经探讨过“许可的联盟链”。现实情况下,它们可能只需要“半中心化”的程度。此外,它们通常具有非常高的吞吐量,至少在短期内不适合用于 Rollup。

非金融应用,如游戏或社交媒体,希望去中心化,但只需要一种中等程度的安全性。在社交媒体的情况下,这实际上涉及对应用程序的不同部分进行不同处理:罕见和高价值的活动,如用户名注册和账户恢复,应在 Rollup 上完成,但频繁和低价值的活动,如发布和投票,需要较少的安全性。如果链失败导致您的帖子消失,那是可以接受的代价。如果链失败导致您丢失帐户,那将是一个更大的问题。

一个重要的主题是,尽管今天在以太坊第一层的应用和用户将在短期内愿意支付较小但仍可见的 Rollup 费用,但来自非区块链世界的用户不会:如果之前支付了 1 美元,那么支付 0.10 美元更容易接受,而如果之前不付费,那就不太容易接受。这不仅适用于今天中心化的应用程序,还适用于较小的第一层,这些第一层通常在其用户基数保持较小的情况下具有非常低的费用。

一个自然而然的问题是:对于给定的应用程序,Rollup、Validium 和其他系统之间的这些复杂权衡中哪种对其最有意义?

Rollup vs Validium vs 断开连接的系统

我们将探讨的安全性与规模的第一个维度可以描述如下:如果您拥有在 L1 上发行的资产,然后将其存入 L2,然后将其转移到您,那么您能够将资产带回 L1 的保证水平是多少?

还有一个类似的问题:导致这种保证水平的技术选择是什么,以及这种技术选择的权衡是什么?

我们可以简单地使用图表来描述这一点:

值得一提的是,这是一个简化的模式,存在许多中间选项。例如:

在 Rollup 和 Validium 之间:Validium 允许任何人进行链上支付以支付交易费用,此时运营商将被迫提供一些数据到链上,否则将失去存款。

在 Plasma 和 Validium 之间:Plasma 系统提供类似 Rollup 的安全保证,具有链下数据可用性,但只支持有限数量的应用。一个系统可以提供完整的 EVM,并向不使用这些更复杂应用的用户提供 Plasma 级别的保证,向使用这些更复杂应用的用户提供 Validium 级别的保证。

这些中间选项可以被视为介于 Rollup 和验证之间。但是是什么驱使应用程序选择这两端上的特定点,而不是更左边或更右边的某个点呢?在这里,有两个主要因素:

以太坊的原生数据可用性成本,随着技术的改进而逐渐降低。以太坊的下一个硬分叉 Dencun 引入了 EIP-4844(也称为 "proto-danksharding"),提供了每秒约 32 kB 的链上数据可用性。在接下来的几年里,预计将分阶段增加,随着全面的 danksharding 推出,最终目标是每秒约 1.3 MB 的数据可用性。与此同时,数据压缩的改进将使我们能够在相同数量的数据上做更多事情。

应用程序自身的需求:用户会因高费用而受损,还是会因应用程序出现问题而受损?金融应用程序将更多地损失于应用程序故障;游戏和社交媒体涉及大量用户活动,且活动相对低价值,因此对于它们来说,不同的安全权衡是有意义的。

大致来说,这个权衡看起来是这样的:

还值得一提的一种部分保证类型是预确认(pre-confirmations)。预确认是由 Rollup 或 Validium 中的一些参与者签署的消息,表明“我们确认这些交易包含在此顺序中,并且后期状态根为这个值”。这些参与者可能会签署一个与后来的现实不符的预确认,但如果他们这样做,将会烧毁存款。这对于低价值的应用程序,如消费支付,非常有用,而像数百万美元的金融转账这样的高价值应用程序可能会等待由系统的完全安全性支持的“常规”确认。

预确认可以被看作是另一种混合系统的示例,类似于上面提到的“plasma/validium 混合”,但这次是在具有完全安全性但延迟较高的 Rollup(或 Validium)和具有较低安全级别但延迟较低的系统之间混合。需要更低延迟的应用程序获得更低的安全性,但可以与那些愿意为了最大安全性而接受更高延迟的应用程序生存于同一生态系统中。

无需信任地读取以太坊

另一种不太被人考虑但仍然非常重要的连接形式与系统读取以太坊区块链的能力有关。特别是,这包括能够在以太坊回滚时进行回滚。要了解为什么这很有价值,考虑以下情况:

假设如图所示,以太坊链发生了回滚。这可能是在一个纪元内的临时故障,当链尚未最终确定时,或者可能是链不断复原的停滞期,因为太多的验证者处于离线状态。

这可能导致的最糟糕情况如下。假设从顶部链的第一个区块读取了以太坊链最左侧区块的某些数据。例如,某人在以太坊上存入了 100 ETH 到顶部链。然后,以太坊发生回滚。然而,顶部链没有回滚。结果,顶部链的未来区块正确地遵循了新的正确以太坊链的新区块,但现在错误的旧链接(即 100 ETH 存款)的后果仍然存在于顶部链中。这种漏洞可以允许印钞,将顶部链上桥接的 ETH 转变为部分储备。

解决此问题有两种方法:

顶部链只能读取以太坊的最终确定区块,因此它永远不需要回滚。

如果以太坊回滚,顶部链也应该回滚。这两种方法都可以防止此问题。前者更容易实施,但如果以太坊进入了停滞期,可能会导致较长时间的功能丧失。后者更难实施,但确保始终获得最佳功能。

请注意,第一种方法(1)确实存在一个特殊情况。如果对以太坊进行 51% 攻击创建了两个不兼容的新区块,它们同时显示已最终确定,那么顶部链很可能会锁定在错误的区块上(即以太坊社会共识最终不支持的区块),并且必须回滚以切换到正确的区块。可以提出的论点是,没有必要提前编写处理此情况的代码;它可以通过硬分叉顶部链来处理。

链能够无需信任地读取以太坊的能力有两个原因:

它减少了在桥接在以太坊(或其他 L2)上发行的代币时涉及的安全问题

它允许使用共享密钥库架构的帐户抽象钱包在该链上安全持有资产。

这两个方面都非常重要,尽管可以争辩认为这种需求已经被广泛认可。第二个方面也非常重要,因为它意味着您可以拥有一个钱包,允许轻松更改密钥并在许多不同的链上持有资产。

拥有跨链桥是否使您成为 Validium?

假设顶部链最初是一个独立的链,然后有人在以太坊上部署了一个跨链桥合约。跨链桥合约只是一个接受顶部链区块头的合约,验证提交给它的任何区块头是否附带有效证书,显示它已被顶部链的共识接受,并将该区块头添加到列表中。应用程序可以在此基础上构建,实现存取代币的功能等。一旦有了这样的跨链桥,是否会提供我们之前提到的任何资产安全保证?

到目前为止,还没有,原因有两个:

我们正在验证区块是否已签名,但没有验证状态转换是否正确。因此,如果您在以太坊上发行的资产存入顶部链,而顶部链的验证者变得不正当,他们可以签署一个窃取这些资产的无效状态转换。

顶部链仍然无法读取以太坊。因此,甚至不能将以太坊原生资产存入顶部链,而必须依赖某个其他(可能不安全的)第三方跨链桥。

现在,让我们将跨链桥合约变成一个验证跨链桥:它不仅检查共识,还要进行 ZK-SNARK 的验证,以确保任何新区块的状态都是正确计算的。

一旦这样做了,顶部链的验证者将无法窃取您的资金。他们可以发布一个包含不可用数据的区块,阻止所有人提款,但他们无法窃取(除非试图为用户提供允许他们提款的数据以换取赎金)。这与 Validium 的安全模型相同。

但是,第二个问题仍未解决:顶部链无法读取以太坊。

要解决这个问题,我们需要执行以下两种操作之一:

在顶部链内部放置一个验证最终确定的以太坊区块的跨链桥合约。

让顶部链中的每个区块包含最近以太坊区块的哈希,并制定一个分叉选择规则来强制执行哈希链接。也就是说,链接到不在规范链中的以太坊区块的顶部链区块本身不是规范的,并且如果顶部链区块链接到首先是规范的但后来变为不规范的以太坊区块,那么顶部链区块也必须变为不规范。

这是否足够呢?事实证明,仍然不够,因为存在一些小的边缘情况:

如果以太坊遭受 51% 攻击会发生什么?

如何处理以太坊的硬分叉升级?

如何处理您的链的硬分叉升级?

以太坊的 51% 攻击会产生与顶部链的 51% 攻击类似的后果,但是相反。以太坊的硬分叉可能会使顶部链内部的以太坊桥不再有效。解决此问题的最清晰方法是建立一种社会承诺,即如果以太坊回滚最终确定的区块,或者如果以太坊硬分叉,顶部链将回滚。这种承诺很可能永远不需要实际执行:如果顶部链上的治理小工具看到可能受到攻击或硬分叉的证据,它可以激活,只有在治理小工具失败时才会硬分叉顶部链。

对于问题(3),唯一可行的答案很遗憾,就是在以太坊上有一种形式的治理小工具,可以使以太坊内的跨链桥合约意识到顶部链的硬分叉升级。

总结:双向验证跨链桥几乎足以使一条链成为 Validium。主要剩下的要素是一种社会承诺,即如果以太坊发生特殊情况,使桥不再有效,另一条链将做出硬分叉响应。

结论

“与以太坊的连接”有两个关键维度:

提款到以太坊的安全性;

读取以太坊的安全性。

这两者都很重要,并且有不同的考虑因素:

请注意,这两个维度各自有两种不同的测量方式(所以实际上有四个维度):提款的安全性可以通过(i)安全级别和(ii)多少用户或用例受益于最高安全级别来衡量,而读取的安全性可以通过(i)链能够多快地读取以太坊的区块,特别是最终确定的区块与任何区块,以及(ii)链在处理 51% 攻击和硬分叉等边缘情况方面的社会承诺的强度。

该设计空间的许多区域的项目都具有价值。对于某些应用程序,高安全性和紧密连接至关重要。对于其他应用程序,为了获得更大的可扩展性,可以接受更灵活的解决方案。在许多情况下,从今天开始使用更灵活的解决方案,并随着技术的改进在未来十年内过渡到更紧密的耦合,很可能是最佳选择。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OGo2tPc8G1l1UI2o4XlLIRBQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券