Layer 2 与执行分片有何不同?
作者:维塔利克·布特林 2024年5月23日 原文链接
在两年半前我写的《终局》一文中,我提出了一个观点:区块链未来的不同发展路径,至少在技术层面上,看起来惊人地相似。在这两种情况下,链上都有大量的交易,处理这些交易需要:(i)大量的计算能力,以及(ii)大量的数据带宽。普通的以太坊节点,比如我现在用来写这篇文章的笔记本电脑上运行的 2TB 的 reth 归档节点,即使采用了优秀的软件工程工作和 Verkle 树,也无法直接验证如此庞大的数据和计算量。相反,无论是在"L1分片"还是在以 rollup 为中心的世界中,都使用 ZK-SNARKs 来验证计算,使用 DAS 来验证数据可用性。两种情况下的 DAS 是相同的。两种情况下的 ZK-SNARKs 都使用相同的技术,只是在一种情况下它们是智能合约代码,而在另一种情况下它们是协议的固有特性。从真实的技术意义上来说,以太坊正在进行分片,而 rollup 就是分片。
执行环境的多样性
在2019年,我们在以太坊中曾简单探索过**执行环境**的概念。本质上,以太坊将拥有不同的"区域",这些区域可以有不同的账户运作规则(包括完全不同的方法,如UTXO),不同的虚拟机运作方式以及其他特性。如果以太坊试图独自完成所有功能,那么在技术栈的某些部分实现多样性将会非常困难,而这种方式则能够实现这种多样性。
最终,我们放弃了一些更具雄心的计划,仅保留了EVM。然而,以太坊L2(包括Rollup、valdium和Plasma)可以说承担了执行环境的角色。今天,我们通常关注EVM兼容的L2,但这忽略了许多替代方案的多样性:
- Arbitrum Stylus,在EVM之外增加了基于WASM的第二个虚拟机。
- Fuel,使用类似比特币(但功能更完整)的基于UTXO的架构。
- Aztec,引入了一种新的语言和编程范式,专注于基于ZK-SNARK的隐私保护智能合约。
基于UTXO的架构。来源:Fuel文档。
我们可以尝试将EVM打造成一个涵盖所有可能范式的超级虚拟机,但这样做会导致这些概念的实现效果远不如让这些平台各自专门化来得好。
安全性权衡:规模与速度
以太坊 L1 提供了非常强大的安全性保障。如果某条数据位于 L1 上已最终确定的区块中,整个共识(在极端情况下,包括社会层面的共识)都会确保该数据不会被以违反应用程序规则的方式编辑,由该数据触发的任何执行都不会被回滚,且数据将始终保持可访问状态。为了实现这些保障,以太坊 L1 愿意承担高昂的成本。在撰写本文时,交易费用相对较低:Layer 2 的每笔交易费用不到一美分,即便是 L1 上进行基本的 ETH 转账也低于 1 美元。如果技术进步足够快,可用的区块空间能够跟上需求增长,这些成本在未来可能会继续保持在低位——但也可能不会。而且即使是每笔交易 0.01 美元的费用,对于许多非金融应用来说也太高了,比如社交媒体或游戏。
但是社交媒体和游戏并不需要与 L1 相同的安全模型。即使有人花费一百万美元来回滚他们输掉棋局的记录,或者让你的推文看起来像是在实际发布时间三天后发布的,这也没有太大问题。因此,这些应用程序不应该承担相同的安全成本。以 L2 为中心的方法通过支持从 rollups 到 plasma 再到 validiums 的数据可用性解决方案谱系,使这成为可能。
不同的 L2 类型适用于不同的使用场景。点击这里了解更多。
另一个安全性权衡涉及在 L2 与 L2 之间传递资产的问题。从长远来看(未来 5-10 年),我预计所有的 Rollup(扩容解决方案)都将是 ZK Rollup,并且像 Binius 和带有查找功能的 Circle STARKs 这样的超高效证明系统,再加上证明聚合层,将使 L2 能够在每个"时隙"中提供最终确定的状态根。然而,目前我们面对的是乐观 Rollup 和 ZK Rollup 混合的复杂局面,它们具有不同的证明时间窗口。如果我们在 2021 年实施了执行分片,为了保证分片的诚实性而采用的安全模型将是乐观 Rollup 而不是 ZK——因此 L1 将不得不在链上管理系统性复杂的欺诈证明逻辑,并且在分片之间转移资产时需要一周的提款期。但是就像代码错误一样,我认为这个问题最终是暂时的。
第三个且更长远的安全性权衡维度是交易速度。以太坊每12秒出一个区块,并且不愿意运行得更快,因为那样会过度中心化网络。然而,许多 L2 正在探索几百毫秒的出块时间。12秒其实已经不算太慢:平均而言,用户提交交易后需要等待约6-7秒才能被打包进区块(不仅仅是6秒,因为下一个区块可能不会包含他们的交易)。这与我使用信用卡支付时的等待时间相当。但是许多应用程序需要更高的速度,而 L2 能够提供这一点。
为了提供更快的速度,L2 依赖于预确认机制:L2 的验证者通过数字签名承诺在特定时间包含交易,如果交易未被包含,他们将受到惩罚。一个称为 StakeSure 的机制进一步推广了这一点。
L2 预确认。
现在,我们可以尝试在第一层实现所有这些功能。第一层可以整合"快速预确认"和"慢速最终确认"系统。它可以整合具有不同安全级别的不同分片。然而,这会给协议增加大量复杂性。此外,在第一层实现所有这些功能会有过载共识的风险,因为许多高扩展性或更快吞吐量的方法都有更高的中心化风险或需要更强形式的"治理",如果在 L1 层面实施,这些更强要求的影响将会溢出到协议的其他部分。通过在第二层提供这些权衡,以太坊可以在很大程度上避免这些风险。
二层网络对组织和文化的益处
想象一个国家被分成两半,一半实行资本主义,另一半由政府高度主导(与这种情况在现实中不同,在这个思维实验中,这种分裂并非源于任何创伤性战争;相反,某一天边界神奇地出现了,就是这样)。在资本主义的那一边,餐厅都由各种形式的去中心化所有权、连锁店和加盟店经营。在政府主导的那一边,它们都是政府的分支机构,就像警察局一样。第一天,不会有太大变化。人们基本上遵循他们现有的习惯,什么有效什么无效取决于劳动技能和基础设施等技术现实。然而,一年后,你会看到巨大的变化,因为不同的激励结构和控制方式导致行为发生重大改变,这会影响谁来、谁留下、谁离开,什么被建设,什么得到维护,什么被遗弃腐烂。
产业组织理论涵盖了许多这些区别:它不仅讨论政府运营的经济和资本主义经济之间的差异,还讨论由大型加盟连锁主导的经济与每个超市都由独立企业家经营的经济之间的差异。我认为,以一层为中心的生态系统和以二层为中心的生态系统之间的差异也遵循类似的逻辑。
"核心开发者掌控一切"架构的严重错误示例。
我会这样描述以太坊作为一个以二层为中心的生态系统的关键优势:
因为以太坊是一个以 L2 为中心的生态系统,你可以自由地独立构建属于你的具有独特功能的子生态系统,同时这个子生态系统也是更大的以太坊生态的一部分。
如果你只是在构建一个以太坊客户端,你是更大的以太坊生态的一部分,虽然你有一些创新空间,但远不如 L2 所能提供的那么多。而如果你在构建一个完全独立的链,你有最大的创新空间,但你会失去共享安全性和共享网络效应等优势。L2 在这方面提供了一个理想的中间方案。
L2 不仅创造了一个技术机会,可以通过试验新的执行环境和安全性权衡来实现规模化、灵活性和速度:它们同时也创造了激励机制:既激励开发者去构建和维护它,也激励社区围绕它形成并支持它。
每个 L2 都是相互隔离的这一事实也意味着部署新方法是无需许可的:你不需要说服所有核心开发者你的新方法对链的其他部分是"安全的"。如果你的 L2 失败了,那是你自己的责任。任何人都可以尝试完全不同寻常的想法(例如:Intmax 的 Plasma 方案),即使这些想法被以太坊核心开发者完全忽视,他们也可以继续构建并最终部署。L1 特性和预编译并非如此,即使在以太坊中,L1 开发中什么会成功、什么会失败往往在很大程度上取决于政治因素,这种程度比我们期望的要高。不管理论上可以构建什么,以 L1 为中心的生态系统和以 L2 为中心的生态系统所创造的不同激励机制,最终都会深刻影响实践中实际构建的内容、质量水平以及构建顺序。
以太坊的层级-2-中心生态系统面临哪些挑战?
一个设计极其糟糕的层级 1 + 层级 2 架构。来源。
这种以层级 2(Layer 2)为中心的方法存在一个关键挑战,这也是以层级 1 为中心的生态系统几乎不需要面对的问题:协调性。换句话说,当以太坊不断分支发展时,需要应对的挑战在于如何保持其基本属性,使其仍然给人"以太坊"的感觉,并保持以太坊的网络效应,而不是变成 N 个独立的区块链。目前的情况在许多方面都不够理想:
- 在不同层级 2 之间转移通证往往需要依赖中心化的跨链桥平台,这对普通用户来说很复杂。如果你的资金在 Optimism 上,你无法直接将资金发送到别人的 Arbitrum 地址。
- 跨链智能合约钱包支持并不理想 - 无论是个人智能合约钱包还是组织钱包(包括 DAO)。如果你在某个 L2 上更改了密钥,你还需要在其他每个 L2 上都进行更改。
- 去中心化验证基础设施常常不足。以太坊终于开始拥有像 Helios 这样不错的轻客户端。然而,如果所有活动都发生在需要各自中心化 RPC 的层级 2 上,这就失去了意义。理论上,一旦你获取了以太坊区块头链数据,为 L2 开发轻客户端并不困难;但实际上,这方面的重视程度远远不够。
目前有一些工作正在努力改善这三个方面。对于跨链通证交换,ERC-7683标准是一个新兴的选择,与现有的"中心化桥"不同,它没有任何固定的中心化运营者、通证或治理。对于跨链账户,大多数钱包采用的方法是在短期内使用跨链可重放消息来更新密钥,长期则采用密钥存储 Rollup。针对 L2 的轻客户端也开始出现,例如用于 Starknet 的 Beerus。此外,通过下一代钱包在用户体验方面的最新改进,已经解决了更多基本问题,比如无需用户手动切换到正确的网络来访问 dapp。
Rabby 展示了多条链上资产余额的集成视图。在不久前的黑暗时期,钱包可做不到这一点!
但重要的是要认识到,以 L2 为中心的生态系统在试图协调时确实在某种程度上逆流而行。各个 L2 在建设协调基础设施时并没有天然的经济激励:小型 L2 因为只能从他们的贡献中获得很小的收益而不会这样做,大型 L2 则因为他们从加强自身的本地网络效应中能获得同等或更多的收益而不会这样做。如果每个 L2 都只是单独优化自己的部分,而没有人考虑每个部分如何融入更广泛的整体,我们就会得到像几段之前图片中所示的那种城市规划灾难。
我并不声称对这个问题有完美的神奇解决方案。我能说的最好的是,生态系统需要更充分地认识到**跨 L2 基础设施是以太坊基础设施的一种类型,与 L1 客户端、开发工具和编程语言并列,应当同样被赋予价值并获得资金支持。**我们已经有了Protocol Guild;也许我们需要一个基础设施公会(Basic Infrastructure Guild)。
结论
"Layer 2"和"分片"在公共讨论中经常被描述为区块链扩容的两种对立策略。但当你深入研究底层技术时,会发现一个令人困惑的现象:实际的底层扩容方法是完全相同的。它们都有某种形式的数据分片,都有欺诈证明或 ZK-SNARK 证明,都有跨{rollup、分片}通信的解决方案。主要的区别在于:谁负责构建和更新这些组件,以及他们拥有多大的自主权?
从技术层面来说,以 Layer 2 为中心的生态系统实际上就是一种分片,但这种分片允许你创建具有自己规则的分片。这种方式非常强大,能够激发大量创造力和独立创新。但它也面临着关键挑战,特别是在协调方面。对于像以太坊这样以 Layer 2 为中心的生态系统要想取得成功,就需要深入理解这些挑战,并直面解决它们,以尽可能获得以 Layer 1 为中心的生态系统的优势,从而最大程度地实现两全其美。
ai
L2执行去中心化的思路
在过去的几年里,以太坊Layer 2(简称L2)生态系统取得了巨大进展。Optimism和Arbitrum等主要L2网络每天处理数百万笔交易,为用户节省了大量的gas费用。但同时,也出现了一个关键问题:L2的执行层(特别是排序器)仍然相对中心化。尽管L2在安全性方面已经做得相当好——即使排序器完全失效,用户仍然可以在L1上提交交易并提取资金——但排序器的中心化仍然带来了一些风险,包括交易审查和MEV(最大可提取价值)攻击。那么,我们如何能让L2的执行层变得更加去中心化呢?
这是一个重要且复杂的问题,涉及多个需要解决的挑战。在这篇文章中,我将探讨几种可能的解决方案,以及它们各自的优缺点。