不同类型的 Layer 2s

中级1/4/2024, 5:23:42 AM
本文讨论了三种Layer2方式的技术特点和安全保障,并分析了“连接以太坊”的不同维度。

特别感谢 Karl Floersch 的反馈和审查

以太坊第二层生态系统在过去一年里迅速扩展。传统的EVM扩展生态系统包括ArbitrumOptimismScroll,最近又加入了KakarotTaiko,这些项目在提升安全性方面取得了巨大进展;L2beat页面很好地总结了每个项目的现状。此外,我们还看到团队们在构建侧链的同时也开始构建Rollup(Polygon),第一层项目致力于成为validiums(Celo),还有全新的尝试(LineaZeth…)。最后,还有不仅仅是EVM生态系统的”几乎EVM”,如Zksync,扩展如Arbitrum Stylus,以及更广泛的努力,如Starknet生态系统Fuel等等。

其不可避免的后果之一是我们看到 Layer 2 项目变得更加异构化的趋势。我预计这种趋势将持续下去,原因如下:

  • 一些目前独立于 Layer 1 的项目正在寻求更接近以太坊生态系统,并可能成为 Layer 2。这些项目可能需要逐步过渡。现在一次性全部转换会导致可用性下降,因为该技术尚未准备好将所有内容汇总起来。稍后再一次性过渡可能会冒失去动力的风险,而且可能来不及产生实质性的意义。
  • 一些集中式项目希望为他们的用户提供更多的安全保证,并正在探索基于区块链的途径来实现这一目标。在很多情况下,这些项目可能是在以前的时代探索“许可的联盟链”的项目。实际上,他们可能只需要一种“中间层”的去中心化程度。此外,他们通常非常高的吞吐量使它们在短期内甚至不适合使用侧链。
  • 非金融应用程序,例如游戏或社交媒体,希望实现去中心化,但只需要中等程度的安全性。在社交媒体案例中,这实际上涉及以不同的方式处理应用程序的不同部分:像用户名注册和账户恢复这样的罕见和高价值活动应该采用汇总处理,而像帖子和投票这样频繁和低价值的活动则需要更少的安全性。如果链式故障导致您的帖子消失,那是可以接受的代价。但是,如果链式故障导致您丢失账户,那就是一个更大的问题。

一个重要的主题是,尽管目前在以太坊第一层上的应用程序的用户在短期内支付较小但仍可见的滚动手续费是可以接受的,但来自非区块链世界的用户不会这样认为:如果你之前支付1美元,那么支付0.10美元更容易接受,而如果之前支付0美元,那么支付0.10美元就很难接受。这既适用于当前集中化的应用程序,也适用于较小的第一层区块链,这些区块链在其用户基数保持较小规模时通常费用很低。

一个自然的问题出现了:在汇总、validiums和其他系统之间的这些复杂的权衡中,哪种对于特定应用程序是合理的?

Rollups、validiums、断开连接的系统

首先,我们将探讨安全与规模的第一个维度,描述如下:如果你有一个在L1上发行的资产,然后存入L2,再转移到你的账户,你有多大的保证能将该资产带回L1?

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

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

值得一提的是这是一个简化的架构,并且有很多中间选项。例如:

  • 在 rollup 和 validium 之间:任何人都可以进行链上支付以支付交易费用的 validium,此时运营商将被迫提供一些数据上链,否则会损失押金。
  • 在 plasma 和 validium 之间Plasma系统提供了类似Rollup的安全保证,具备链下数据可用性,但它只支持有限数量的应用程序。一个系统可以提供完整的EVM,并向不使用这些更复杂应用程序的用户提供Plasma级别的保证,向使用这些应用程序的用户提供validium级别的保证。

这些中间选项可以被视为介于汇总和validium之间。但是,是什么促使应用程序选择该频谱上的特定点,而不是更左或更右的某个点?这里,有两个主要因素:

  1. 以太坊原生数据可用性的成本,随着技术的进步,成本将会降低。以太坊的下一个硬分叉Dencun引入了EIP-4844(又名“proto-danksharding”),提供约 32 kB/秒的链上数据可用性。在接下来的几年中,随着@vbuterin/sharding_proposal">完整 danksharding 的推出,这一数字预计将分阶段增加,最终目标是约 1.3 MB/秒的数据可用性。与此同时,数据压缩方面的改进将使我们能够用相同数量的数据做更多事情。
  2. 应用程序的自身需求:用户会因高费用而受苦,还是因应用程序出现问题而受苦? 金融应用程序会在应用程序故障时遭受更大损失;游戏和社交媒体涉及每个用户大量的活动,但相对价值较低,因此对它们来说,安全权衡是不同的。

这种权衡大约看起来像这样:

另一种值得一提的部分保证是预先确认。预确认是由汇总或验证中的某些参与者签名的消息,表示“我们证明这些交易包含在这个订单中,并且后状态根就是这个”。这些参与者很可能会签署与后来的实际情况不符的预先确认,但如果他们这样做,押金就会被烧毁。这对于诸如消费者支付之类的低价值应用程序非常有用,而诸如数百万美元的金融转账之类的高价值应用程序可能会等待“常规”处理。确认由系统的完全安全性支持。

预确认可以被视为混合系统的另一个示例,类似于“plasma/validium混合”系统。上面提到过,但这一次是在具有完全安全性但高延迟的 rollup(或 validium)和具有低延迟的安全级别低得多的系统之间进行混合。需要较低延迟的应用程序的安全性较低,但可以与可以接受较高延迟的应用程序生活在同一生态系统中,以换取最大的安全性。

无需信任读取以太坊

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

假设根据图示所示,以太坊链发生了回滚。这可能是在一个纪元内的临时故障,当链还未最终确定时,或者可能是因为有太多验证者离线而导致链在一个较长时间内无法最终确定的不活跃泄漏期间。

最坏的情况是这样的。假设顶部链的第一个区块从以太坊链的最左侧区块读取一些数据。例如,有人在以太坊上存入了100 ETH到顶部链。然后,以太坊发生了回滚。然而,顶部链没有回滚。结果是,顶部链的未来区块正确地跟随了新的正确以太坊链上的区块,但是现在错误的旧链接的后果(即100 ETH的存款)仍然是顶部链的一部分。这种漏洞可能允许制造货币,将顶部链上的桥接ETH变成一个分数准备金。

有两种方法可以解决这个问题:

  1. 顶级链只能读取最终确定的以太坊区块,因此永远不需要恢复.
  2. 如果以太坊恢复,顶级链可能会恢复。两者都可以防止这个问题。前者更容易实现,但如果以太坊进入不活动泄漏期,可能会导致长时间丧失功能。后者更难实现,但始终确保最佳功能。

请注意,(1) 确实有一种边缘情况。如果对以太坊的 51% 攻击创建了两个新的不兼容的区块,并且这两个区块同时出现,那么顶级链很可能会锁定错误的区块(即以太坊社会共识最终不支持的区块),并且会必须恢复以切换到正确的位置。可以说,没有必要提前编写代码来处理这种情况;它可以简单地通过硬分叉顶部链来处理。

链以无需信任的方式读取以太坊的能力很有价值,原因有两个:

  1. 它减少了将以太坊(或其他 L2)上发行的代币桥接到该链所涉及的安全问题
  2. 它允许使用共享密钥库架构的账户抽象钱包安全地保存该链上的资产。

    (1) 是重要的,尽管这个需求已经被广泛认可。(2) 也很重要,因为它意味着你可以拥有一个钱包,可以轻松更改密钥,并在许多不同的链上持有资产。

拥有一座桥梁会让你成为valium吗?

假设顶层链最初是一条单独的链,然后有人在以太坊上放置了一个桥接合约。桥接合约只是一个接受顶链区块头的合约,验证提交给它的任何头是否带有有效证书,表明它已被顶链共识接受,并将该头添加到列表中。应用程序可以在此基础上构建来实现诸如存入和提取代币之类的功能。一旦这样的桥梁就位,是否可以提供我们之前提到的资产安全保证呢?

到目前为止,还不行!有两个原因:

  1. 我们正在验证这些块是否已签名,但状态转换是否正确。因此,如果您将在以太坊上发行的资产存入顶链,并且顶链的验证器变得不诚信,他们可以签署一个无效的状态转换来窃取这些资产。
  2. 顶级链仍然无法读取以太坊。因此,如果不依赖其他(可能不安全)第三方桥,您甚至无法将以太坊原生资产存入顶链。

现在,让我们让这座桥成为一个验证桥:它不仅检查共识,还检查 ZK-SNARK 证明任何新块的状态都已正确计算。

完成此操作后,顶级链的验证者将无法再窃取您的资金。他们可以发布一个包含不可用数据的区块,阻止所有人撤回,但他们无法窃取(除非试图为用户提取赎金以换取泄露数据)允许他们撤回的数据)。这与 validium 具有相同的安全模型。

然而,我们仍然没有解决第二个问题:顶链无法读取以太坊。

为此,我们需要执行以下两件事之一:

  1. 在顶部链中放置一个桥接合约来验证最终的以太坊区块。
  2. 让顶部链中的每个块都包含最近以太坊块的哈希值,并具有强制哈希链接的分叉选择规则。也就是说,链接到不在规范链中的以太坊区块的顶链区块本身就是非规范的,并且如果顶链区块链接到最初是规范的以太坊区块,但随后变得非规范,顶部链块也必须变得非规范。

紫色链接可以是哈希链接,也可以是验证以太坊共识的桥接合约。

这够了吗?事实证明,仍然不行,因为有一些小的特殊情况:

  1. 如果以太坊受到 51% 攻击会发生什么?
  2. 如何处理以太坊硬分叉升级?
  3. 您如何处理链的硬分叉升级?

一个对以太坊的51%攻击会产生与对顶级链的51%攻击相似的后果,但是却是相反的。以太坊的硬分叉有风险使得在顶级链中的以太坊桥接不再有效。一种对社会的承诺 - 如果以太坊还原了一个已经确定的区块,就进行还原;如果以太坊进行硬分叉,就进行硬分叉,这是解决这个问题最清晰的方式。这样的承诺很可能永远不需要实际执行:你可以在主链上设置一个治理小工具,如果它发现可能的攻击或硬分叉的证据,就激活,只有在治理小工具失效时才对顶部链进行硬分叉。

不幸的是,唯一可行的答案是(3),在以太坊上需要一种形式的治理机制工具,可以让以太坊上的桥接合约了解顶级链的硬分叉升级。

总结:双向验证桥几乎足以使一条链成为validium。剩下的主要是社会承诺,如果以太坊发生异常情况导致桥梁不再工作,另一条链将硬分叉作为响应。

结论

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

  1. 提现到以太坊的安全性
  2. 读取以太坊的安全性

这些都很重要,并且有不同的考虑因素。两种情况都有一个谱:

请注意,每个维度都有两种不同的测量方式(所以实际上有四个维度?):提现的安全性可以通过(i)安全级别和(ii)从最高安全级别中受益的用户或用例的百分比来衡量,而读取的安全性可以通过(i)链能够读取以太坊的区块的速度,尤其是已经完成的区块与任意区块之间的比率以及(ii)链对处理诸如51%攻击和硬分叉等极端情况的社会承诺的强度来衡量。

在这个设计空间中的许多领域都有具价值的项目。对于某些应用来说,高安全性和紧密联通非常重要。而对于其他应用来说,为了更高的可扩展性,可以接受更宽松的安全性。在许多情况下,从今天开始使用更宽松的方式,然后在未来十年随着技术的改进过渡到更紧密的耦合可能是最优的选择。

声明:

  1. 本文转载自[Vitalik Buterin],著作权归属原作者[Vitalik Buterin],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。

不同类型的 Layer 2s

中级1/4/2024, 5:23:42 AM
本文讨论了三种Layer2方式的技术特点和安全保障,并分析了“连接以太坊”的不同维度。

特别感谢 Karl Floersch 的反馈和审查

以太坊第二层生态系统在过去一年里迅速扩展。传统的EVM扩展生态系统包括ArbitrumOptimismScroll,最近又加入了KakarotTaiko,这些项目在提升安全性方面取得了巨大进展;L2beat页面很好地总结了每个项目的现状。此外,我们还看到团队们在构建侧链的同时也开始构建Rollup(Polygon),第一层项目致力于成为validiums(Celo),还有全新的尝试(LineaZeth…)。最后,还有不仅仅是EVM生态系统的”几乎EVM”,如Zksync,扩展如Arbitrum Stylus,以及更广泛的努力,如Starknet生态系统Fuel等等。

其不可避免的后果之一是我们看到 Layer 2 项目变得更加异构化的趋势。我预计这种趋势将持续下去,原因如下:

  • 一些目前独立于 Layer 1 的项目正在寻求更接近以太坊生态系统,并可能成为 Layer 2。这些项目可能需要逐步过渡。现在一次性全部转换会导致可用性下降,因为该技术尚未准备好将所有内容汇总起来。稍后再一次性过渡可能会冒失去动力的风险,而且可能来不及产生实质性的意义。
  • 一些集中式项目希望为他们的用户提供更多的安全保证,并正在探索基于区块链的途径来实现这一目标。在很多情况下,这些项目可能是在以前的时代探索“许可的联盟链”的项目。实际上,他们可能只需要一种“中间层”的去中心化程度。此外,他们通常非常高的吞吐量使它们在短期内甚至不适合使用侧链。
  • 非金融应用程序,例如游戏或社交媒体,希望实现去中心化,但只需要中等程度的安全性。在社交媒体案例中,这实际上涉及以不同的方式处理应用程序的不同部分:像用户名注册和账户恢复这样的罕见和高价值活动应该采用汇总处理,而像帖子和投票这样频繁和低价值的活动则需要更少的安全性。如果链式故障导致您的帖子消失,那是可以接受的代价。但是,如果链式故障导致您丢失账户,那就是一个更大的问题。

一个重要的主题是,尽管目前在以太坊第一层上的应用程序的用户在短期内支付较小但仍可见的滚动手续费是可以接受的,但来自非区块链世界的用户不会这样认为:如果你之前支付1美元,那么支付0.10美元更容易接受,而如果之前支付0美元,那么支付0.10美元就很难接受。这既适用于当前集中化的应用程序,也适用于较小的第一层区块链,这些区块链在其用户基数保持较小规模时通常费用很低。

一个自然的问题出现了:在汇总、validiums和其他系统之间的这些复杂的权衡中,哪种对于特定应用程序是合理的?

Rollups、validiums、断开连接的系统

首先,我们将探讨安全与规模的第一个维度,描述如下:如果你有一个在L1上发行的资产,然后存入L2,再转移到你的账户,你有多大的保证能将该资产带回L1?

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

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

值得一提的是这是一个简化的架构,并且有很多中间选项。例如:

  • 在 rollup 和 validium 之间:任何人都可以进行链上支付以支付交易费用的 validium,此时运营商将被迫提供一些数据上链,否则会损失押金。
  • 在 plasma 和 validium 之间Plasma系统提供了类似Rollup的安全保证,具备链下数据可用性,但它只支持有限数量的应用程序。一个系统可以提供完整的EVM,并向不使用这些更复杂应用程序的用户提供Plasma级别的保证,向使用这些应用程序的用户提供validium级别的保证。

这些中间选项可以被视为介于汇总和validium之间。但是,是什么促使应用程序选择该频谱上的特定点,而不是更左或更右的某个点?这里,有两个主要因素:

  1. 以太坊原生数据可用性的成本,随着技术的进步,成本将会降低。以太坊的下一个硬分叉Dencun引入了EIP-4844(又名“proto-danksharding”),提供约 32 kB/秒的链上数据可用性。在接下来的几年中,随着@vbuterin/sharding_proposal">完整 danksharding 的推出,这一数字预计将分阶段增加,最终目标是约 1.3 MB/秒的数据可用性。与此同时,数据压缩方面的改进将使我们能够用相同数量的数据做更多事情。
  2. 应用程序的自身需求:用户会因高费用而受苦,还是因应用程序出现问题而受苦? 金融应用程序会在应用程序故障时遭受更大损失;游戏和社交媒体涉及每个用户大量的活动,但相对价值较低,因此对它们来说,安全权衡是不同的。

这种权衡大约看起来像这样:

另一种值得一提的部分保证是预先确认。预确认是由汇总或验证中的某些参与者签名的消息,表示“我们证明这些交易包含在这个订单中,并且后状态根就是这个”。这些参与者很可能会签署与后来的实际情况不符的预先确认,但如果他们这样做,押金就会被烧毁。这对于诸如消费者支付之类的低价值应用程序非常有用,而诸如数百万美元的金融转账之类的高价值应用程序可能会等待“常规”处理。确认由系统的完全安全性支持。

预确认可以被视为混合系统的另一个示例,类似于“plasma/validium混合”系统。上面提到过,但这一次是在具有完全安全性但高延迟的 rollup(或 validium)和具有低延迟的安全级别低得多的系统之间进行混合。需要较低延迟的应用程序的安全性较低,但可以与可以接受较高延迟的应用程序生活在同一生态系统中,以换取最大的安全性。

无需信任读取以太坊

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

假设根据图示所示,以太坊链发生了回滚。这可能是在一个纪元内的临时故障,当链还未最终确定时,或者可能是因为有太多验证者离线而导致链在一个较长时间内无法最终确定的不活跃泄漏期间。

最坏的情况是这样的。假设顶部链的第一个区块从以太坊链的最左侧区块读取一些数据。例如,有人在以太坊上存入了100 ETH到顶部链。然后,以太坊发生了回滚。然而,顶部链没有回滚。结果是,顶部链的未来区块正确地跟随了新的正确以太坊链上的区块,但是现在错误的旧链接的后果(即100 ETH的存款)仍然是顶部链的一部分。这种漏洞可能允许制造货币,将顶部链上的桥接ETH变成一个分数准备金。

有两种方法可以解决这个问题:

  1. 顶级链只能读取最终确定的以太坊区块,因此永远不需要恢复.
  2. 如果以太坊恢复,顶级链可能会恢复。两者都可以防止这个问题。前者更容易实现,但如果以太坊进入不活动泄漏期,可能会导致长时间丧失功能。后者更难实现,但始终确保最佳功能。

请注意,(1) 确实有一种边缘情况。如果对以太坊的 51% 攻击创建了两个新的不兼容的区块,并且这两个区块同时出现,那么顶级链很可能会锁定错误的区块(即以太坊社会共识最终不支持的区块),并且会必须恢复以切换到正确的位置。可以说,没有必要提前编写代码来处理这种情况;它可以简单地通过硬分叉顶部链来处理。

链以无需信任的方式读取以太坊的能力很有价值,原因有两个:

  1. 它减少了将以太坊(或其他 L2)上发行的代币桥接到该链所涉及的安全问题
  2. 它允许使用共享密钥库架构的账户抽象钱包安全地保存该链上的资产。

    (1) 是重要的,尽管这个需求已经被广泛认可。(2) 也很重要,因为它意味着你可以拥有一个钱包,可以轻松更改密钥,并在许多不同的链上持有资产。

拥有一座桥梁会让你成为valium吗?

假设顶层链最初是一条单独的链,然后有人在以太坊上放置了一个桥接合约。桥接合约只是一个接受顶链区块头的合约,验证提交给它的任何头是否带有有效证书,表明它已被顶链共识接受,并将该头添加到列表中。应用程序可以在此基础上构建来实现诸如存入和提取代币之类的功能。一旦这样的桥梁就位,是否可以提供我们之前提到的资产安全保证呢?

到目前为止,还不行!有两个原因:

  1. 我们正在验证这些块是否已签名,但状态转换是否正确。因此,如果您将在以太坊上发行的资产存入顶链,并且顶链的验证器变得不诚信,他们可以签署一个无效的状态转换来窃取这些资产。
  2. 顶级链仍然无法读取以太坊。因此,如果不依赖其他(可能不安全)第三方桥,您甚至无法将以太坊原生资产存入顶链。

现在,让我们让这座桥成为一个验证桥:它不仅检查共识,还检查 ZK-SNARK 证明任何新块的状态都已正确计算。

完成此操作后,顶级链的验证者将无法再窃取您的资金。他们可以发布一个包含不可用数据的区块,阻止所有人撤回,但他们无法窃取(除非试图为用户提取赎金以换取泄露数据)允许他们撤回的数据)。这与 validium 具有相同的安全模型。

然而,我们仍然没有解决第二个问题:顶链无法读取以太坊。

为此,我们需要执行以下两件事之一:

  1. 在顶部链中放置一个桥接合约来验证最终的以太坊区块。
  2. 让顶部链中的每个块都包含最近以太坊块的哈希值,并具有强制哈希链接的分叉选择规则。也就是说,链接到不在规范链中的以太坊区块的顶链区块本身就是非规范的,并且如果顶链区块链接到最初是规范的以太坊区块,但随后变得非规范,顶部链块也必须变得非规范。

紫色链接可以是哈希链接,也可以是验证以太坊共识的桥接合约。

这够了吗?事实证明,仍然不行,因为有一些小的特殊情况:

  1. 如果以太坊受到 51% 攻击会发生什么?
  2. 如何处理以太坊硬分叉升级?
  3. 您如何处理链的硬分叉升级?

一个对以太坊的51%攻击会产生与对顶级链的51%攻击相似的后果,但是却是相反的。以太坊的硬分叉有风险使得在顶级链中的以太坊桥接不再有效。一种对社会的承诺 - 如果以太坊还原了一个已经确定的区块,就进行还原;如果以太坊进行硬分叉,就进行硬分叉,这是解决这个问题最清晰的方式。这样的承诺很可能永远不需要实际执行:你可以在主链上设置一个治理小工具,如果它发现可能的攻击或硬分叉的证据,就激活,只有在治理小工具失效时才对顶部链进行硬分叉。

不幸的是,唯一可行的答案是(3),在以太坊上需要一种形式的治理机制工具,可以让以太坊上的桥接合约了解顶级链的硬分叉升级。

总结:双向验证桥几乎足以使一条链成为validium。剩下的主要是社会承诺,如果以太坊发生异常情况导致桥梁不再工作,另一条链将硬分叉作为响应。

结论

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

  1. 提现到以太坊的安全性
  2. 读取以太坊的安全性

这些都很重要,并且有不同的考虑因素。两种情况都有一个谱:

请注意,每个维度都有两种不同的测量方式(所以实际上有四个维度?):提现的安全性可以通过(i)安全级别和(ii)从最高安全级别中受益的用户或用例的百分比来衡量,而读取的安全性可以通过(i)链能够读取以太坊的区块的速度,尤其是已经完成的区块与任意区块之间的比率以及(ii)链对处理诸如51%攻击和硬分叉等极端情况的社会承诺的强度来衡量。

在这个设计空间中的许多领域都有具价值的项目。对于某些应用来说,高安全性和紧密联通非常重要。而对于其他应用来说,为了更高的可扩展性,可以接受更宽松的安全性。在许多情况下,从今天开始使用更宽松的方式,然后在未来十年随着技术的改进过渡到更紧密的耦合可能是最优的选择。

声明:

  1. 本文转载自[Vitalik Buterin],著作权归属原作者[Vitalik Buterin],如对转载有异议,请联系Gate Learn团队,团队会根据相关流程尽速处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. 文章其他语言版本由Gate Learn团队翻译, 在未提及Gate.io的情况下不得复制、传播或抄袭经翻译文章。
Inizia Ora
Registrati e ricevi un buono da
100$
!