原文:How do layer 2s really differ from execution sharding?
编译:Odaily星球日报 Asher
两年半前,我在 终局 的文章中提出的一个观点是:至少在技术上,区块链未来的不同发展路径看起来惊人地相似。
在这两种情况下,链上都有大量的交易,处理这些交易需要:(i) 大量的计算;(ii) 大量的数据带宽。普通的以太坊节点,比如用来写这篇文章的笔记本电脑上运行的 2 TB reth 归档节点,即使有出色的软件工程工作和 Verkle 树,也不足以直接验证如此巨大的数据量和计算量。相反,在 L1 分片 和以 rollup 为中心的世界中,ZK-SNARK 用于验证计算,DAS 用于验证数据可用性。两种情况下的 DAS 都是一样的、ZK-SNARKs 都是相同的技术,只是在一种情况下它们是智能合约代码,而在另一种情况下它们是协议的一个神圣功能。从真正的技术意义上讲,以太坊正在做分片,而 rollups 就是分片。
这自然会引出一个问题:这两个世界有什么区别?答案之一是代码错误的后果不同:在 rollup 世界中,币会丢失,而在分片的世界中,你会遇到共识失败。
但预计,随着协议的固化和形式验证技术的改进,错误的重要性将会降低。那么,这两种愿景之间有哪些不同之处,我们可以预期它们将长期存在吗?
执行环境的多样性
2019 年,在以太坊中简单讨论过的一个想法是执行环境。从本质上讲,以太坊将拥有不同的 区,这些 区 可以对账户如何工作(包括完全不同的方法,如 UTXO)、虚拟机如何工作以及其他功能制定不同的规则。
这样就能在堆栈的各个部分实现方法的多样性,而如果以太坊试图独自完成所有事情,就很难实现这一点。
最后,放弃了一些更雄心勃勃的计划,只保留了 EVM。不过,以太坊 L2(包括 rollups、valdiums 和 Plasmas)可以说最终起到了执行环境的作用。
如今,通常关注等效于 EVM 的 L2,但这忽略了许多替代方法的多样性:
Arbitrum Stylus:在 EVM 的基础上增加了第二个基于 WASM 的虚拟机;
Fuel:使用类似比特币(但功能更全面)的基于 UTXO 的架构;
Aztec:引入了一种围绕基于 ZK-SNARK 的隐私保护智能合约设计的新语言和编程范式。
基于 UTXO 的架构资料来源:Fuel 文件
尝试将 EVM 打造成一个涵盖所有可能范例的超级虚拟机,但这样做对每个概念的实现效果都会大打折扣,还不如让这些平台实现专业化。
安全权衡:规模与速度
以太坊 L1 提供了真正强大的安全保障。如果某些数据位于 L1 上最终确定的区块内,整个共识(包括在极端情况下的社会共识)都会努力确保这些数据不会被编辑,从而违反将这些数据放在区块内的应用程序的规则,确保由这些数据触发的任何执行都不会被撤销,并确保这些数据仍可访问。
为了实现这些保证,以太坊 L1 愿意接受高昂的成本。在撰写本文时,交易费用相对较低:L2 每笔交易费用不到 1 美分,即使是 L1,基本的 ETH 传输费用也不到 1 美元。如果技术进步足够快,可用区块空间的增长能跟上需求的增长,那么这些费用在未来可能会保持在较低水平,但也可能不会。
而对于许多非金融应用(如社交媒体或游戏)来说,即使每笔交易 0.01 美元也太高了。但社交媒体和游戏并不需要与 L1 相同的安全模式。如果有人花一百万美元就能还原他们输掉一盘棋的记录,或者让你的一条微博看起来像是在实际发布三天后发布的,那也没关系。
因此,这些应用不应支付相同的安全成本。以 L2 为中心的方法支持从 rollup、plasma 到 validiums 的一系列数据可用性方法,从而实现了这一点。
不同的 L2 类型适用于不同的使用情况(点击在此阅读更多内容)
另一个安全权衡是围绕从 L2 到 L2 的资产传递问题产生的。预计在未来(5-10 年),所有 rollups 都将是 ZK rollups,而 Binius 和 Circle STARKs 等带有查找功能的超高效证明系统,再加上证明聚合层,将使 L2 在每个时隙提供最终状态根成为可能。但目前还只能在各种证明时间窗口下,将 optimistic rollups 和 ZK rollups 复杂地混合在一起。
如果在 2021 年实施了执行层分片,那么保持分片诚实的安全模式就会是 optimistic rollups,而不是 ZK——因此 L1 将不得不在链上管理系统性复杂的欺诈证明逻辑,并在分片之间移动资产时有一个长达一周的撤出期。但和代码错误一样,这个问题最终也是暂时的。
交易速度是安全权衡的第三个方面,也是更持久的一个方面。以太坊每 12 秒就有一个区块,而且不愿意更快,因为这会过度集中网络。然而,许多 L2 正在探索几百毫秒的区块时间。
12 秒已经不算太差:提交交易的用户平均需要等待约 6-7 秒才能被纳入一个区块(不只是 6 秒,因为下一个区块可能不会纳入他们)。这相当于用信用卡付款时需要等待的时间。但许多应用需要更高的速度,而 L2 可以提供。
为了提供这种更高的速度,L2 依赖于预先确认机制:L2 自身的验证者以数字签名的方式承诺在特定时间包含交易,如果交易未被包含,他们会受到惩罚。一种名为 StakeSure 的机制将此进一步推广。
L2 预确认
现在可以尝试在 L1 实现所有这些功能。L1 可以包含一个 快速预确认 和 慢速最终确认 系统。它可以包含具有不同安全级别的不同分片。不过,这会增加协议的复杂性。此外,在 L1 完成所有工作会有使共识超载的风险,因为很多更大规模或更快吞吐量的方法都有更高的中心化风险或需要更强的 治理 形式,如果在 L1 完成,这些更强需求的影响会波及协议的其他部分。通过第 2 层提供这些权衡,以太坊在很大程度上可以避免这些风险。
以太坊以 L2 为中心的生态系统面临哪些挑战
以太坊以 L2 为中心的方法面临着一个关键挑战,而以 L1 为中心的生态系统几乎不用面对同样的问题:协调。换句话说,虽然以太坊有很多分支,但面临的挑战是如何保持其基本属性,即所有的以太坊都感觉像是 以太坊,并具有以太坊的网络效应,而不是 N 个独立的链。如今,这种情况在很多方面都不尽如人意:
将代币从第二层转移到另一层通常需要中心化的桥接平台,对于普通用户来说非常复杂。如果你有 Optimism 上的代币,你就不能把别人的 Arbitrum 地址粘贴到你的钱包里,然后向他们发送资金。
对于个人智能合约钱包和组织钱包(包括 DAO)来说,跨链智能合约钱包支持都不是很好。如果你更换了一个 L2 上的密钥,你还需要去更换其他每个 L2 上的密钥。
去中心化验证基础设施通常比较缺乏。以太坊终于开始有了像样的轻客户端,比如 Helios。但是,如果所有活动都发生在 L2,都需要自己的中心化 RPC,那就没有意义了。原则上,一旦有了以太坊头链,为 L2 制作轻客户端并不难;但在实践中,对这一点的重视太少了。
人们正在努力改进这三者。对于跨链代币交换,ERC-7683 标准是一种新兴的选择,与现有的 中心化桥梁 不同,它没有任何固定的中心运营商、代币或管理机构。
对于跨链账户,大多数钱包采取的方法是使用跨链可重放信息,短期更新密钥、长期更新密钥库。针对 L2 的轻型客户端开始出现,例如针对 Starknet 网络的 Beerus。此外,最近通过下一代钱包改善用户体验已经解决了一些更基本的问题,比如用户不再需要手动切换到正确的网络来访问 dapp。
Rabby 显示多个链条上资产余额的综合视图(在不久前钱包并不具备这种功能)
但必须认识到,以 L2 为中心的生态系统在试图协调时,在某种程度上确实会逆流而上。
单个 L2 机构并没有建立基础设施来进行协调的天然经济动机:小的 L2 机构没有,因为它们只能从自己的贡献中获得一小部分利益;大的 L2 机构没有,因为它们可以从加强自己的本地网络效应中获得同样多甚至更多的利益。
并不是有神奇的完美解决方案来解决这个问题。只能说,生态系统需要更充分地认识到,跨 L2 基础设施与 L1 客户端、开发工具和编程语言一样,都是以太坊基础设施的一种类型,因此应该得到重视和资助。目前,有协议公会(Protocol Guild),也许还需要基础架构公会(Basic Infrastructure Guild)。
小结
在公开讨论中,以太坊 L2和 执行层分片 经常被描述为如何扩展区块链的两种相反策略。但是,当研究底层技术时,就会发现一个难题:实际的底层扩展方法是完全相同的,其主要区别在于:谁负责构建和更新对应组件,它们有多大的自主权?
以太坊 L2 为中心的生态系统从真正的技术意义上讲就是分片,但在分片中,可以用自己的规则创建自己的分片。这种方式非常强大,可以实现大量的创造力和自主创新。但它也存在一些关键挑战,尤其是在协调方面。
像以太坊这样以 L2 为中心的生态系统要想取得成功,就必须了解这些挑战,并迎难而上,以尽可能多地获得以 L1 为中心的生态系统的好处,并尽可能接近两全其美。