以太坊的可能未来,第 2 部分:扩容(Surge)

进阶10/22/2024, 4:39:47 AM
以太坊的扩容策略经历了从分片和二层协议到以rollup为中心的演变。目前的路线图提出了L1和L2的分工:L1作为稳健的基础层,L2负责生态系统扩展。最近的成果包括EIP-4844 blobs增加了L1数据带宽,多个EVM rollups达到第1阶段。未来目标包括实现100,000+ TPS,保持L1去中心化,确保部分L2继承以太坊核心属性,以及最大化L2间互操作性。重点研究方向包括数据可用性采样、数据压缩和跨L2互操作性等。

在最初,以太坊的路线图中有两种扩容策略。一种(例如,参见2015年的这篇早期论文)是”分片”:每个节点只需要验证和存储一小部分交易,而不是验证和存储链上的所有交易。这也是其他点对点网络(如BitTorrent)的工作方式,所以我们自然可以让区块链以同样的方式工作。另一种是二层协议:这些网络位于以太坊之上,能够充分受益于以太坊的安全性,同时将大部分数据和计算保持在主链之外。”二层协议”在2015年指的是状态通道,在2017年指的是Plasma,然后在2019年指的是rollups。Rollups比状态通道或Plasma更强大,但它们需要大量的链上数据带宽。幸运的是,到2019年,分片研究已经解决了大规模验证”数据可用性”的问题。因此,这两条路径汇合了,我们得到了以rollup为中心的路线图,这仍然是以太坊目前的扩容策略。

The Surge,2023 年路线图版。

以rollup为中心的路线图提出了一个简单的分工:以太坊L1专注于成为一个强大和去中心化的基础层,而L2则承担帮助生态系统扩展的任务。这是一种在社会各处都能看到的模式:法院系统(L1)并不是为了超快和高效而存在,它是为了保护合同和财产权,而企业家(L2)则在这个坚实基础层之上建设,将人类带到(比喻和字面意义上的)火星。

今年,以rollup为中心的路线图已经取得了重要成果:以太坊L1的数据带宽通过EIP-4844 blobs大幅增加,多个EVM rollups现在已经处于第1阶段。一种非常异构和多元化的分片实现已经成为现实,每个L2都作为一个”分片”运作,有自己的内部规则和逻辑。但正如我们所见,走这条路也带来了一些独特的挑战。因此,我们现在的任务是完成以rollup为中心的路线图,解决这些问题,同时保持使以太坊L1特别的稳健性和去中心化。

The Surge (扩容):关键目标

  • 在L1+L2上实现100,000+的每秒交易量(TPS)
  • 保持L1的去中心化和稳健性
  • 至少有一些L2完全继承以太坊的核心属性(无需信任、开放、抗审查)
  • L2之间实现最大程度的互操作性。以太坊应该感觉像一个生态系统,而不是34个不同的区块链

在本章中

旁白:可扩展性的三难困境

可扩展性三难困境是2017年提出的一个概念,它指出区块链的三个属性之间存在矛盾:去中心化(具体来说:运行节点的低成本)、可扩展性(具体来说:高交易处理量)和安全性(具体来说:攻击者需要破坏网络中大部分节点才能使单个交易失败)。

值得注意的是,这个三难困境并非一个定理,介绍它的文章也没有提供数学证明。但文章给出了一个启发性的数学论证:如果一个支持去中心化的节点(如普通笔记本电脑)每秒可以验证N笔交易,而你有一个每秒处理k*N笔交易的链,那么要么(i)每笔交易只被1/k的节点看到,这意味着攻击者只需破坏少数节点就能推送一笔坏交易,要么(ii)你的节点需要很强大,导致你的链不再去中心化。这篇文章的目的不是证明打破三难困境是不可能的,而是表明打破三难困境很难——它需要某种方式跳出论证所暗示的框框。

多年来,一些高性能链常常声称他们在不做任何基础架构层面创新的情况下解决了三难困境,通常是通过使用软件工程技巧来优化节点。这总是具有误导性的,在这些链上运行节点最终总是比在以太坊上困难得多。这篇文章深入探讨了为什么会这样的诸多微妙之处(因此,为什么仅靠L1客户端软件工程无法扩展以太坊本身)。

然而,数据可用性采样和SNARKs的结合确实解决了三难困境:它允许客户端验证某些数据的可用性,并正确执行一定数量的计算步骤,同时只下载少量数据并运行少量计算。SNARKs是无需信任的。数据可用性采样有一个微妙的N中少数信任模型,但它保留了不可扩展链的基本属性,即即使51%攻击也无法强制网络接受坏区块。

解决三难困境的另一种方式是 Plasma 架构,它使用巧妙的技术,以激励兼容的方式将监视数据可用性的责任推给用户。在2017-2019年,当我们只有欺诈证明来扩展计算时,Plasma在安全操作方面非常有限,但SNARKs的主流化使Plasma架构对更广泛的用例变得更加可行

数据可用性采样的进一步进展

我们在解决什么问题?

自2024年3月13日Dencun升级上线以来,以太坊区块链每12秒的 slot (时隙)中包含三个约125 kB的”数据块”,即每个 slot 约375 kB的数据可用性带宽。假设交易数据直接在链上发布,一笔ERC20转账约需180字节,那么以太坊上rollups的最大每秒交易量(TPS)为:

375000 / 12 / 180 = 173.6 TPS (每秒处理量)

如果我们加上以太坊的calldata(理论最大值:每个 slot 30百万gas / 每字节16 gas = 每个slot 1,875,000字节),这个数字将达到607 TPS。通过PeerDAS,计划是将数据块数量目标增加到8-16个,这将使我们在calldata中达到463-926 TPS。

这相对于以太坊 L1 来说是一个重大的提升,但这还不够。我们想要更多的可扩展性。 我们的中期目标是每个slot 16 MB,如果与汇总数据压缩的改进相结合,将为我们提供 〜58,000 TPS。

它是什么,它是如何工作的?

PeerDAS是”一维采样”的一种相对简单的实现。以太坊中的每个数据块都是一个253位素数域上的4096度多项式。我们广播多项式的”份额”,每个份额由16个相邻坐标的16个评估组成,这些坐标从总共8192个坐标中选取。8192个评估中的任意4096个(根据当前提议的参数:128个可能样本中的任意64个)都可以恢复整个数据块。

PeerDAS的工作原理是让每个客户端监听少量子网,其中第i个子网广播任何数据块的第i个样本,并通过询问全局p2p网络中的对等节点(它们会监听不同的子网)来获取它需要的其他子网上的数据块。一个更保守的版本SubnetDAS只使用子网机制,没有额外的询问对等节点的层。目前的提议是让参与权益证明的节点使用SubnetDAS,而其他节点(即”客户端”)使用PeerDAS。

理论上,我们可以将一维采样扩展得相当远:如果我们将数据块数量上限增加到256(目标为128),那么我们将达到16 MB的目标,同时数据可用性采样对每个节点的成本仅为每个时隙16个样本 128个数据块 每个样本每个数据块512字节 = 1 MB的数据带宽。这刚好在我们的容忍范围内:可以做到,但这意味着带宽受限的客户端无法进行采样。我们可以通过减少数据块数量并增加数据块大小来优化这一点,但这会使重构更加昂贵。

因此,我们最终想要更进一步,实现二维采样,这种方法不仅在数据块内进行随机采样,还在数据块之间进行采样。KZG承诺的线性特性被用来”扩展”区块中的数据块集合,生成一系列新的”虚拟数据块”,这些虚拟数据块冗余地编码相同的信息。

二维采样。 来源:a16z 加密货币

至关重要的是,计算承诺的扩展不需要拥有数据块,因此该方案从根本上适合分布式区块构建。实际构建区块的节点只需要有数据块的KZG承诺,并且可以自己依靠DAS来验证数据块的可用性。一维DAS也天生适合分布式区块构建。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

当前的首要任务是完成PeerDAS的实施和推广。之后,我们需要逐步增加PeerDAS上的数据块数量,同时密切关注网络状况并改进软件以确保安全性。与此同时,我们需要更多的学术工作来正式化PeerDAS和其他版本的DAS,并研究它们与分叉选择规则安全性等问题的相互作用。

展望未来,我们需要更多的工作来确定2D DAS的理想版本并证明其安全性。我们还希望最终从KZG迁移到一个抗量子、无需可信设置的替代方案。目前,我们还没有找到适合分布式区块构建的候选方案。即使是使用递归STARK生成行列重构有效性证明的昂贵”暴力”技术也不够,因为虽然理论上STARK的大小是O(log(n) * log(log(n))个哈希(使用STIR),但实际上STARK几乎和整个数据块一样大。

从长远来看,我认为现实的路径是:

  • 实现理想的2D DAS
  • 坚持使用1D DAS,牺牲采样带宽效率并接受较低的数据上限,以换取简单性和稳健性
  • (重大转向)放弃DA,全面拥抱Plasma作为我们关注的主要第二层架构

我们可以将这些选择视为一个权衡谱系:

需要注意的是,即使我们决定直接在L1上扩展执行,这个选择仍然存在。这是因为如果L1要处理大量的TPS,L1区块会变得非常大,客户端将需要一种高效的方法来验证它们的正确性,所以我们将不得不在L1上使用与rollups相同的技术(ZK-EVM和DAS)。

它如何与路线图的其他部分交互?

如果实施了数据压缩(见下文),2D DAS的需求会有所减少,或至少会推迟。如果Plasma被广泛使用,这种需求会进一步减少。DAS还给分布式区块构建协议和机制带来了挑战:虽然DAS在理论上有利于分布式重构,但在实践中需要与包含列表提案及其周围的分叉选择机制相结合。

数据压缩

我们要解决什么问题?

rollup中的每个交易都会在链上占用相当大的数据空间:一个ERC20转账大约需要180字节。即使采用理想的数据可用性采样,这也会限制二层协议的可扩展性。以每个 Slot 16 MB计算,我们得到:

16000000 / 12 / 180 = 7407 TPS

如果我们不仅处理分子,还能处理分母,使rollup中的每个交易在链上占用更少的字节,会怎样呢?

它是什么,如何运作?

我认为最好的解释是两年前的 这个图

最简单的收益就是零字节压缩:用两个字节表示有多少个连续的零字节来替代长序列的零字节。为了更进一步,我们利用交易的特定属性:

  • 签名聚合 - 我们从ECDSA签名切换到BLS签名,BLS签名具有将多个签名组合成一个单一签名的特性,该签名可以证明所有原始签名的有效性。由于验证的计算成本较高,即使在聚合的情况下,这不适用于L1,但在L2这样的数据稀缺环境中,这种方法可能是有意义的。ERC-4337的聚合功能提供了实现这一点的一种途径。
  • 用指针替换地址 - 如果一个地址之前被使用过,我们可以用4字节的指针替换20字节的地址,指向历史记录中的位置。这对于实现最大收益是必要的,尽管实施起来需要付出努力,因为它要求(至少部分)区块链的历史实际上成为状态的一部分。
  • 交易值的自定义序列化 - 大多数交易值的数字很少,例如0.25 ETH表示为250,000,000,000,000,000 wei。Gas最大基础费用和优先费用也类似。因此,我们可以使用自定义的十进制浮点格式,甚至是特别常见值的字典,来非常紧凑地表示大多数货币值。

有哪些现有研究的链接?

还需要做什么,需要权衡什么?

剩下要做的主要工作就是将上述方案落到实处。主要的权衡是:

  • 切换到 BLS 签名需要付出巨大的努力,并且会降低与可提高安全性的可信硬件芯片的兼容性。可以使用其他签名方案的 ZK-SNARK 包装器来替代它。
  • 动态压缩(例如用指针替换地址)使客户端代码变得复杂。
  • 将状态差异发布到链而不是交易会降低可审计性,并使许多软件(例如区块浏览器)无法工作。

它如何与路线图的其他部分交互?

采用ERC-4337,并最终将其部分内容纳入L2 EVM,可以大大加快聚合技术的部署。在L1上纳入ERC-4337的部分内容可以加快其在L2上的部署。

广义 Plasma

我们要解决什么问题?

即使有16 MB的数据块和数据压缩,58,000 TPS(每秒交易数)不一定足以完全接管消费者支付、去中心化社交或其他高带宽领域。特别是当我们考虑隐私因素时,可扩展性可能会下降3-8倍。对于高交易量、低价值的应用,目前的一个选择是validium,它将数据保存在链下,并有一个有趣的安全模型:运营者无法窃取用户资金,但他们可能会消失并暂时或永久冻结所有用户的资金。但我们可以做得更好。

它是什么以及它是如何工作的?

Plasma是一种扩展解决方案,运营者在链下发布区块,并将这些区块的Merkle根放在链上(与rollups不同,rollups将完整的区块放在链上)。对于每个区块,运营者向每个用户发送一个Merkle分支,证明该用户资产发生或未发生的情况。用户可以通过提供Merkle分支来提取他们的资产。重要的是,这个分支不必根植于最新状态 - 因此,即使数据可用性失败,用户仍然可以通过提取他们所拥有的最新可用状态来恢复他们的资产。如果用户提交无效分支(例如,退出已经发送给他人的资产,或运营者凭空创造资产),链上挑战机制可以裁定资产应该归属于谁。

Plasma Cash链的示意图。花费硬币i的交易被放在树的第i个位置。在这个例子中,假设所有先前的树都是有效的,我们知道Eve当前拥有硬币1,David拥有硬币4,George拥有硬币6。

Plasma的早期版本只能处理支付用例,无法有效地进一步推广。然而,如果我们要求每个根都通过SNARK验证,Plasma就变得更加强大。每个挑战游戏可以大大简化,因为我们消除了运营者作弊的大多数可能路径。新的路径也开放了,允许Plasma技术扩展到更广泛的资产类别。最后,如果运营者不作弊,用户可以立即提取他们的资金,而不需要等待一周的挑战期。

制作 EVM 等离子链的一种方法(不是唯一的方法)是:使用ZK-SNARK构建一个与EVM并行的UTXO树,反映EVM中的余额变化,并定义不同时间点上”相同硬币”的唯一映射。然后可以在此基础上构建等离子体系统。

一个关键的见解是,等离子体系统不需要完美无缺。即使你只能保护一部分资产(例如,仅保护过去一周内未移动的硬币),你也已经大大改善了超可扩展EVM的现状,即validium。

另一类构造是等离子体/rollup混合体,例如Intmax。这些构造在链上为每个用户存储很少量的数据(例如5字节),从而获得介于等离子体和rollup之间的特性:以Intmax为例,你可以获得非常高的可扩展性和隐私性,尽管即使在16 MB的世界中,理论容量上限也约为16,000,000 / 12 / 5 = 266,667 TPS(每秒交易数)。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

主要剩余的任务是将Plasma系统投入生产。如上所述,”plasma vs validium”并非二元对立:任何validium都可以通过在退出机制中添加Plasma功能来至少略微改善其安全属性。研究部分在于为EVM获得最佳属性(在信任要求、最坏情况下的L1 gas成本和对DoS的脆弱性方面),以及替代的应用特定构造。此外,Plasma相对于rollups的更大概念复杂性需要直接解决,既通过研究,也通过构建更好的通用框架。

使用Plasma设计的主要权衡是它们更依赖于运营商,并且更难做到”基于“,尽管混合plasma/rollup设计通常可以避免这个弱点。

它如何与路线图的其他部分交互?

Plasma 解决方案越有效,L1 拥有高性能数据可用性功能的压力就越小。将活动转移到 L2 还可以减少 L1 上的 MEV 压力。

成熟的 L2 证明系统

我们要解决什么问题?

如今,大多数汇总实际上还不是去信任的;有一个安全理事会有能力推翻(乐观或有效性)的行为 证明系统。在某些情况下,证明系统甚至根本不存在,或者即使存在也仅具有“咨询”功能。最领先的是 (i) 一些特定于应用程序的汇总,例如 Fuel,它们是去信任的,以及 (ii) 截至撰写本文时,Optimism 和 Arbitrum,这两个完整的 EVM 汇总已经实现了部分去信任里程碑称为“第一阶段”。 Rollups 没有进一步发展的原因是担心代码中的 bug。我们需要去信任的汇总,因此我们需要正面解决这个问题。

它是什么以及它是如何工作的?

首先,让我们回顾一下”阶段”系统,这个概念最初是在这篇文章中提出的。虽然有更详细的要求,但概括如下:

  • 第0阶段:用户必须能够运行节点并同步链。此时验证可以是完全信任/中心化的。
  • 第1阶段:必须有一个(无需信任的)证明系统,确保只有有效的交易才能被接受。允许存在一个安全委员会可以覆盖证明系统,但需要75%的投票阈值。此外,委员会中至少26%的成员必须来自开发扩容方案的主要公司之外。允许存在一个具有较弱功能的升级机制(如DAO),但它必须有足够长的延迟,以便在批准恶意升级时,用户能在升级生效前提取资金。
  • 第2阶段:必须有一个(无需信任的)证明系统,确保只有有效的交易才能被接受。安全委员会只允许在代码出现可证明的bug时介入,例如,当两个冗余证明系统不一致,或者一个证明系统接受了同一区块的两个不同的后状态根(或在足够长的时间内,如一周,没有接受任何状态)。允许存在升级机制,但必须有非常长的延迟。

目标是达到第2阶段。达到第2阶段的主要挑战是获得足够的信心,确保证明系统真的足够可信。有两种主要方法可以做到这一点:

  • 形式验证:我们可以使用现代数学和计算技术来证明(乐观或有效性)证明系统只接受通过EVM规范的区块。这些技术已经存在了几十年,但最近的进展,如Lean 4,使它们变得更加实用,而AI辅助证明的进展可能会进一步加速这一趋势。
  • 多重证明者:创建多个证明系统,并将资金放入这些证明系统和安全委员会(和/或其他具有信任假设的工具,如可信执行环境TEEs)之间的2-of-3(或更大)多重签名中。如果证明系统达成一致,安全委员会就没有权力;如果它们不一致,安全委员会只能在它们之间选择一个,而不能单方面强加自己的答案。

多重证明者的示意图,结合了一个乐观证明系统、一个有效性证明系统和一个安全委员会。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

对于形式验证,还有很多工作要做。我们需要创建一个完整的EVM SNARK证明器的形式验证版本。这是一个极其复杂的项目,尽管我们已经开始了。有一个技巧可以显著简化这个任务:我们可以为一个最小化的虚拟机(如RISC-VCairo)创建一个经过形式验证的SNARK证明器,然后在该最小化虚拟机中编写EVM的实现(并正式证明其与其他EVM规范的等价性)。

对于多重证明者,还有两个主要的待完成部分。首先,我们需要对至少两个不同的证明系统建立足够的信心,确保它们各自都是合理安全的,并且如果它们出现故障,会因不同且无关的原因而故障(因此不会同时失效)。其次,我们需要对合并证明系统的底层逻辑获得非常高水平的保证。这是一个更小的代码部分。有些方法可以使其变得非常小——只需将资金存储在一个Safe多重签名合约中,其签名者是代表各个证明系统的合约——但这会带来链上gas成本高的权衡。需要在效率和安全性之间找到平衡。

它如何与路线图的其他部分交互?

将活动转移到二层网络可以减少一层网络上的MEV(最大可提取价值)压力。

跨 L2 互操作性改进

我们要解决什么问题?

当前二层网络生态系统的一个主要挑战是用户难以导航。此外,最简单的使用方式往往会重新引入信任假设:中心化桥接、RPC客户端等。如果我们认真对待二层网络是以太坊一部分的想法,我们需要让使用二层网络生态系统感觉就像使用一个统一的以太坊生态系统。

这里有一个病态且危险的跨二层网络用户体验示例(我个人因链选择错误在这里损失了100美元)- 尽管这不是Polymarket的错,跨二层网络互操作性应该是钱包和以太坊标准(ERC)社区的责任。在一个运作良好的以太坊生态系统中,从一层网络发送代币到二层网络,或从一个二层网络发送到另一个,应该感觉就像在同一个一层网络内发送代币一样。

它是什么以及它是如何工作的?

有许多类别的跨二层网络互操作性改进。通常,提出这些改进的方法是注意到理论上,以rollup为中心的以太坊与一层执行分片是一回事,然后问当前以太坊二层网络生态系统在实践中与这个理想有何不足。以下是一些例子:

  • 链特定地址:链(一层网络、Optimism、Arbitrum…)应该是地址的一部分。一旦实施,跨二层网络发送流程可以通过将地址放入”发送”字段来实现,此时钱包可以在后台确定如何进行发送(包括使用桥接协议)。
  • 链特定支付请求:应该容易且标准化地创建形如”在Z链上向我发送Y类型的X代币”的消息。这有两个主要用例:(i) 支付,无论是个人对个人还是个人对商户服务,以及 (ii) dapps请求资金,例如上面的Polymarket示例。
  • 跨链交换和gas支付:应该有一个标准化的开放协议来表达跨链操作,如”我在Optimism上发送1 ETH给任何在Arbitrum上向我发送0.9999 ETH的人”,以及”我在Optimism上发送0.0001 ETH给任何在Arbitrum上包含此交易的人”。ERC-7683是前者的一种尝试,而RIP-7755是后者的一种尝试,尽管两者都比这些特定用例更为通用。
  • 轻客户端:用户应该能够实际验证他们正在交互的链,而不仅仅是信任RPC提供商。A16z crypto的Helios为以太坊本身做到了这一点,但我们需要将这种无需信任扩展到二层网络。 ERC-3668 (CCIP-read)是实现这一点的一种策略。

轻客户端如何更新其对以太坊头链的视图。一旦你有了头链,你就可以使用默克尔证明来验证任何状态对象。一旦你有了正确的一层网络状态对象,你就可以使用默克尔证明(如果你想检查预确认,可能还需要签名)来验证二层网络上的任何状态对象。Helios已经实现了前者。将其扩展到后者是一个标准化挑战。

  • 密钥库钱包:今天,如果你想更新控制你的智能合约钱包的密钥,你必须在该钱包存在的所有N条链上都进行更新。密钥库钱包是一种技术,允许密钥存在于一个地方(可能是在一层网络上,或者后来可能在二层网络上),然后可以从任何有该钱包副本的二层网络读取。这意味着更新只需要进行一次。为了高效,密钥库钱包需要二层网络有一种标准化的方式来无成本地读取一层网络;L1SLOADREMOTESTATICCALL是两个这样的提议。

密钥库钱包如何工作的简化图示。

  • 更激进的”共享代币桥”想法:想象一个所有二层网络都是有效性证明rollup的世界,它们每个时隙都向以太坊提交。即使在这个世界里,从一个二层网络移动资产到另一个二层网络”原生地”也需要提取和存款,这需要支付大量的一层网络gas费。解决这个问题的一种方法是创建一个共享的最小rollup,其唯一功能是维护每个二层网络拥有哪些类型和数量的代币的余额,并允许这些余额通过任何二层网络发起的一系列跨二层网络发送操作批量更新。这将允许跨二层网络转账发生,而无需为每次转账支付一层网络gas费,也无需像ERC-7683那样基于流动性提供者的技术。
  • 同步可组合性:允许同步调用发生在特定的二层网络和一层网络之间,或者在多个二层网络之间。这可能有助于提高去中心化金融协议的金融效率。前者可以在不需要跨二层网络协调的情况下完成;后者将需要共享排序基于rollup自动友好于所有这些技术。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

上述许多例子都面临着何时标准化以及在哪些层面上标准化的常见困境。如果过早标准化,你可能会固化一个劣质解决方案。如果标准化太晚,你可能会造成不必要的碎片化。在某些情况下,既有短期解决方案(属性较弱但易于实施),也有长期解决方案(”最终正确”但需要几年时间才能实现)。

这一部分的独特之处在于,这些任务不仅仅是技术问题:它们也是(甚至可能主要是!)社会问题。它们需要二层网络、钱包和一层网络的合作。我们能否成功处理这个问题,是对我们作为一个社区团结一致能力的考验。

它如何与路线图的其他部分交互?

这些提案大多是”高层”构造,因此不会对一层网络考虑产生重大影响。一个例外是共享排序,它对MEV(最大可提取价值)有重大影响。

在 L1 网络上扩展执行

我们要解决什么问题?

如果 L2 变得非常可扩展且成功,但 L1 仍然只能处理非常少量的交易,那么以太坊可能会出现许多风险:

  1. ETH 资产的经济状况变得更加危险,进而影响网络的长期安全。
  2. 许多L2受益于与L1上高度发达的金融生态系统的紧密联系,如果这个生态系统大大削弱,成为L2(而不是独立的L1)的动力就会减弱
  3. L2 需要很长时间才能拥有与 L1 完全相同的安全保证。
  4. 如果一个二层网络失败(例如由于恶意或消失的运营商),用户仍然需要通过一层网络来恢复他们的资产。因此,一层网络需要足够强大,至少能够偶尔处理二层网络高度复杂和混乱的清算。

出于这些原因,继续扩展 L1 本身并确保它能够继续适应越来越多的用途是很有价值的。

它是什么以及它是如何工作的?

扩展以太坊最简单的方法是直接提高gas限制。然而,这可能会导致L1层中心化,从而削弱以太坊L1最强大的特性之一:作为稳健基础层的可信度。关于多大程度的gas限制提升是可持续的,目前仍存在争议。这个问题还会随着其他使大区块更易验证的技术(如历史过期、无状态性、L1 EVM有效性证明等)的实施而变化。另一个需要持续改进的重要方面是以太坊客户端软件的效率,现在的效率已经比五年前高得多。一个有效的L1 gas限制提升策略应该包括加速这些验证技术的发展。

另一种扩展策略是识别特定功能和计算类型,在不损害网络去中心化或安全性的前提下降低其成本。例如:

  • EOF - 一种新的EVM字节码格式,更便于静态分析,允许更快的实现。EOF字节码可以被赋予更低的gas成本以反映这些效率。
  • 多维gas定价 - 为计算、数据和存储建立单独的基础费用和限制,可以增加以太坊L1的平均容量,而不增加其最大容量(从而避免产生新的安全风险)。
  • 减少特定操作码和预编译的 Gas 成本 - 从历史上看,我们曾经有过 一些 回合增加 气体 成本 对于某些操作 价格过低的 以避免拒绝服务攻击。我们拥有的更少,但可以做得更多的是 减少 运营的天然气成本是 价格过高。例如,加法比乘法便宜得多,但是 添加 和 我有 操作码目前是相同的。我们可以做 添加 更便宜,甚至更简单的操作码,例如 推 甚至更便宜。
  • EVM-MAXSIMD:EVM-MAX(”模运算扩展”)是一项允许更高效的原生大数模运算作为EVM单独模块的提案。除非特意导出,否则EVM-MAX计算的值只能被其他EVM-MAX操作码访问;这允许以优化格式存储这些值。SIMD(”单指令多数据”)是一项允许在一组值上高效执行相同指令的提案。这两者结合可以在EVM旁边创建一个强大的协处理器,可以用来更高效地实现加密操作。这对隐私协议和L2证明系统特别有用,因此可以帮助L1和L2的扩展。

这些改进将在以后关于 Splurge 的文章中更详细地讨论。

最后,第三个策略是 原生汇总 (或“enshrined rollups”):本质上,创建并行运行的 EVM 的许多副本,从而形成一个与 rollups 可以提供的模型等效的模型,但更原生地集成到协议中。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

L1 扩展有三种策略,可以单独或并行执行:

  • 改进技术(例如客户端代码、无状态客户端、历史记录过期) 让L1更容易验证, 进而 提高气体限制
  • 使特定操作更便宜,在不增加最坏情况风险的情况下增加平均容量
  • 原生汇总 (即“创建 EVM 的 N 个并行副本”,尽管可能为开发人员在部署副本的参数方面提供了很大的灵活性)

值得理解的是,这些是不同的技术,有不同的权衡。例如,原生rollups在可组合性方面有许多与普通rollups相同的弱点:你不能发送一个单一的交易在多个rollups之间同步执行操作,就像你可以在同一个L1(或L2)上的合约那样。提高gas限制会减少通过使L1更容易验证而可能获得的其他好处,如增加运行验证节点的用户比例和增加单独质押者。降低EVM中特定操作的成本,取决于具体实施方式,可能会增加EVM的总体复杂性。

任何 L1 扩展路线图都需要回答的一个大问题是: L1 和 L2 的最终愿景是什么?显然,这是荒谬的 一切 继续 L1:潜在的用例每秒有数十万个事务,这将使 L1 完全无法验证(除非我们采用本机汇总路线)。但我们确实需要 一些 指导原则,这样我们就可以确保我们不会造成这样的情况:我们将 Gas 限制提高 10 倍,严重损害以太坊 L1 的去中心化,并发现我们只是进入了一个 99% 的活动都在在 L2 上,90% 的活动都在 L2 上,因此结果看起来几乎相同,除了以太坊 L1 特殊之处的大部分不可逆转的损失。

一种关于 L1 和 L2 之间“分工”的提议观点, 来源

它如何与路线图的其他部分交互?

将更多用户带到L1意味着不仅要改善规模,还要改善L1的其他方面。这意味着更多的MEV(最大可提取价值)将留在L1上(而不是仅成为L2的问题),因此将更加迫切需要明确处理它。这大大增加了在L1上拥有快速时隙时间的价值。它也高度依赖于L1的验证(”the Verge”)进展顺利。

声明:

  1. 本文转载自[维塔利克·布特林)],所有版权归原作者所有[维塔利克·布特林]。若对本次转载有异议,请联系Gate Learn团队,他们会及时处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. Gate Learn 团队将文章翻译成其他语言。除非另有说明,否则禁止复制、分发或抄袭翻译文章。

以太坊的可能未来,第 2 部分:扩容(Surge)

进阶10/22/2024, 4:39:47 AM
以太坊的扩容策略经历了从分片和二层协议到以rollup为中心的演变。目前的路线图提出了L1和L2的分工:L1作为稳健的基础层,L2负责生态系统扩展。最近的成果包括EIP-4844 blobs增加了L1数据带宽,多个EVM rollups达到第1阶段。未来目标包括实现100,000+ TPS,保持L1去中心化,确保部分L2继承以太坊核心属性,以及最大化L2间互操作性。重点研究方向包括数据可用性采样、数据压缩和跨L2互操作性等。

在最初,以太坊的路线图中有两种扩容策略。一种(例如,参见2015年的这篇早期论文)是”分片”:每个节点只需要验证和存储一小部分交易,而不是验证和存储链上的所有交易。这也是其他点对点网络(如BitTorrent)的工作方式,所以我们自然可以让区块链以同样的方式工作。另一种是二层协议:这些网络位于以太坊之上,能够充分受益于以太坊的安全性,同时将大部分数据和计算保持在主链之外。”二层协议”在2015年指的是状态通道,在2017年指的是Plasma,然后在2019年指的是rollups。Rollups比状态通道或Plasma更强大,但它们需要大量的链上数据带宽。幸运的是,到2019年,分片研究已经解决了大规模验证”数据可用性”的问题。因此,这两条路径汇合了,我们得到了以rollup为中心的路线图,这仍然是以太坊目前的扩容策略。

The Surge,2023 年路线图版。

以rollup为中心的路线图提出了一个简单的分工:以太坊L1专注于成为一个强大和去中心化的基础层,而L2则承担帮助生态系统扩展的任务。这是一种在社会各处都能看到的模式:法院系统(L1)并不是为了超快和高效而存在,它是为了保护合同和财产权,而企业家(L2)则在这个坚实基础层之上建设,将人类带到(比喻和字面意义上的)火星。

今年,以rollup为中心的路线图已经取得了重要成果:以太坊L1的数据带宽通过EIP-4844 blobs大幅增加,多个EVM rollups现在已经处于第1阶段。一种非常异构和多元化的分片实现已经成为现实,每个L2都作为一个”分片”运作,有自己的内部规则和逻辑。但正如我们所见,走这条路也带来了一些独特的挑战。因此,我们现在的任务是完成以rollup为中心的路线图,解决这些问题,同时保持使以太坊L1特别的稳健性和去中心化。

The Surge (扩容):关键目标

  • 在L1+L2上实现100,000+的每秒交易量(TPS)
  • 保持L1的去中心化和稳健性
  • 至少有一些L2完全继承以太坊的核心属性(无需信任、开放、抗审查)
  • L2之间实现最大程度的互操作性。以太坊应该感觉像一个生态系统,而不是34个不同的区块链

在本章中

旁白:可扩展性的三难困境

可扩展性三难困境是2017年提出的一个概念,它指出区块链的三个属性之间存在矛盾:去中心化(具体来说:运行节点的低成本)、可扩展性(具体来说:高交易处理量)和安全性(具体来说:攻击者需要破坏网络中大部分节点才能使单个交易失败)。

值得注意的是,这个三难困境并非一个定理,介绍它的文章也没有提供数学证明。但文章给出了一个启发性的数学论证:如果一个支持去中心化的节点(如普通笔记本电脑)每秒可以验证N笔交易,而你有一个每秒处理k*N笔交易的链,那么要么(i)每笔交易只被1/k的节点看到,这意味着攻击者只需破坏少数节点就能推送一笔坏交易,要么(ii)你的节点需要很强大,导致你的链不再去中心化。这篇文章的目的不是证明打破三难困境是不可能的,而是表明打破三难困境很难——它需要某种方式跳出论证所暗示的框框。

多年来,一些高性能链常常声称他们在不做任何基础架构层面创新的情况下解决了三难困境,通常是通过使用软件工程技巧来优化节点。这总是具有误导性的,在这些链上运行节点最终总是比在以太坊上困难得多。这篇文章深入探讨了为什么会这样的诸多微妙之处(因此,为什么仅靠L1客户端软件工程无法扩展以太坊本身)。

然而,数据可用性采样和SNARKs的结合确实解决了三难困境:它允许客户端验证某些数据的可用性,并正确执行一定数量的计算步骤,同时只下载少量数据并运行少量计算。SNARKs是无需信任的。数据可用性采样有一个微妙的N中少数信任模型,但它保留了不可扩展链的基本属性,即即使51%攻击也无法强制网络接受坏区块。

解决三难困境的另一种方式是 Plasma 架构,它使用巧妙的技术,以激励兼容的方式将监视数据可用性的责任推给用户。在2017-2019年,当我们只有欺诈证明来扩展计算时,Plasma在安全操作方面非常有限,但SNARKs的主流化使Plasma架构对更广泛的用例变得更加可行

数据可用性采样的进一步进展

我们在解决什么问题?

自2024年3月13日Dencun升级上线以来,以太坊区块链每12秒的 slot (时隙)中包含三个约125 kB的”数据块”,即每个 slot 约375 kB的数据可用性带宽。假设交易数据直接在链上发布,一笔ERC20转账约需180字节,那么以太坊上rollups的最大每秒交易量(TPS)为:

375000 / 12 / 180 = 173.6 TPS (每秒处理量)

如果我们加上以太坊的calldata(理论最大值:每个 slot 30百万gas / 每字节16 gas = 每个slot 1,875,000字节),这个数字将达到607 TPS。通过PeerDAS,计划是将数据块数量目标增加到8-16个,这将使我们在calldata中达到463-926 TPS。

这相对于以太坊 L1 来说是一个重大的提升,但这还不够。我们想要更多的可扩展性。 我们的中期目标是每个slot 16 MB,如果与汇总数据压缩的改进相结合,将为我们提供 〜58,000 TPS。

它是什么,它是如何工作的?

PeerDAS是”一维采样”的一种相对简单的实现。以太坊中的每个数据块都是一个253位素数域上的4096度多项式。我们广播多项式的”份额”,每个份额由16个相邻坐标的16个评估组成,这些坐标从总共8192个坐标中选取。8192个评估中的任意4096个(根据当前提议的参数:128个可能样本中的任意64个)都可以恢复整个数据块。

PeerDAS的工作原理是让每个客户端监听少量子网,其中第i个子网广播任何数据块的第i个样本,并通过询问全局p2p网络中的对等节点(它们会监听不同的子网)来获取它需要的其他子网上的数据块。一个更保守的版本SubnetDAS只使用子网机制,没有额外的询问对等节点的层。目前的提议是让参与权益证明的节点使用SubnetDAS,而其他节点(即”客户端”)使用PeerDAS。

理论上,我们可以将一维采样扩展得相当远:如果我们将数据块数量上限增加到256(目标为128),那么我们将达到16 MB的目标,同时数据可用性采样对每个节点的成本仅为每个时隙16个样本 128个数据块 每个样本每个数据块512字节 = 1 MB的数据带宽。这刚好在我们的容忍范围内:可以做到,但这意味着带宽受限的客户端无法进行采样。我们可以通过减少数据块数量并增加数据块大小来优化这一点,但这会使重构更加昂贵。

因此,我们最终想要更进一步,实现二维采样,这种方法不仅在数据块内进行随机采样,还在数据块之间进行采样。KZG承诺的线性特性被用来”扩展”区块中的数据块集合,生成一系列新的”虚拟数据块”,这些虚拟数据块冗余地编码相同的信息。

二维采样。 来源:a16z 加密货币

至关重要的是,计算承诺的扩展不需要拥有数据块,因此该方案从根本上适合分布式区块构建。实际构建区块的节点只需要有数据块的KZG承诺,并且可以自己依靠DAS来验证数据块的可用性。一维DAS也天生适合分布式区块构建。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

当前的首要任务是完成PeerDAS的实施和推广。之后,我们需要逐步增加PeerDAS上的数据块数量,同时密切关注网络状况并改进软件以确保安全性。与此同时,我们需要更多的学术工作来正式化PeerDAS和其他版本的DAS,并研究它们与分叉选择规则安全性等问题的相互作用。

展望未来,我们需要更多的工作来确定2D DAS的理想版本并证明其安全性。我们还希望最终从KZG迁移到一个抗量子、无需可信设置的替代方案。目前,我们还没有找到适合分布式区块构建的候选方案。即使是使用递归STARK生成行列重构有效性证明的昂贵”暴力”技术也不够,因为虽然理论上STARK的大小是O(log(n) * log(log(n))个哈希(使用STIR),但实际上STARK几乎和整个数据块一样大。

从长远来看,我认为现实的路径是:

  • 实现理想的2D DAS
  • 坚持使用1D DAS,牺牲采样带宽效率并接受较低的数据上限,以换取简单性和稳健性
  • (重大转向)放弃DA,全面拥抱Plasma作为我们关注的主要第二层架构

我们可以将这些选择视为一个权衡谱系:

需要注意的是,即使我们决定直接在L1上扩展执行,这个选择仍然存在。这是因为如果L1要处理大量的TPS,L1区块会变得非常大,客户端将需要一种高效的方法来验证它们的正确性,所以我们将不得不在L1上使用与rollups相同的技术(ZK-EVM和DAS)。

它如何与路线图的其他部分交互?

如果实施了数据压缩(见下文),2D DAS的需求会有所减少,或至少会推迟。如果Plasma被广泛使用,这种需求会进一步减少。DAS还给分布式区块构建协议和机制带来了挑战:虽然DAS在理论上有利于分布式重构,但在实践中需要与包含列表提案及其周围的分叉选择机制相结合。

数据压缩

我们要解决什么问题?

rollup中的每个交易都会在链上占用相当大的数据空间:一个ERC20转账大约需要180字节。即使采用理想的数据可用性采样,这也会限制二层协议的可扩展性。以每个 Slot 16 MB计算,我们得到:

16000000 / 12 / 180 = 7407 TPS

如果我们不仅处理分子,还能处理分母,使rollup中的每个交易在链上占用更少的字节,会怎样呢?

它是什么,如何运作?

我认为最好的解释是两年前的 这个图

最简单的收益就是零字节压缩:用两个字节表示有多少个连续的零字节来替代长序列的零字节。为了更进一步,我们利用交易的特定属性:

  • 签名聚合 - 我们从ECDSA签名切换到BLS签名,BLS签名具有将多个签名组合成一个单一签名的特性,该签名可以证明所有原始签名的有效性。由于验证的计算成本较高,即使在聚合的情况下,这不适用于L1,但在L2这样的数据稀缺环境中,这种方法可能是有意义的。ERC-4337的聚合功能提供了实现这一点的一种途径。
  • 用指针替换地址 - 如果一个地址之前被使用过,我们可以用4字节的指针替换20字节的地址,指向历史记录中的位置。这对于实现最大收益是必要的,尽管实施起来需要付出努力,因为它要求(至少部分)区块链的历史实际上成为状态的一部分。
  • 交易值的自定义序列化 - 大多数交易值的数字很少,例如0.25 ETH表示为250,000,000,000,000,000 wei。Gas最大基础费用和优先费用也类似。因此,我们可以使用自定义的十进制浮点格式,甚至是特别常见值的字典,来非常紧凑地表示大多数货币值。

有哪些现有研究的链接?

还需要做什么,需要权衡什么?

剩下要做的主要工作就是将上述方案落到实处。主要的权衡是:

  • 切换到 BLS 签名需要付出巨大的努力,并且会降低与可提高安全性的可信硬件芯片的兼容性。可以使用其他签名方案的 ZK-SNARK 包装器来替代它。
  • 动态压缩(例如用指针替换地址)使客户端代码变得复杂。
  • 将状态差异发布到链而不是交易会降低可审计性,并使许多软件(例如区块浏览器)无法工作。

它如何与路线图的其他部分交互?

采用ERC-4337,并最终将其部分内容纳入L2 EVM,可以大大加快聚合技术的部署。在L1上纳入ERC-4337的部分内容可以加快其在L2上的部署。

广义 Plasma

我们要解决什么问题?

即使有16 MB的数据块和数据压缩,58,000 TPS(每秒交易数)不一定足以完全接管消费者支付、去中心化社交或其他高带宽领域。特别是当我们考虑隐私因素时,可扩展性可能会下降3-8倍。对于高交易量、低价值的应用,目前的一个选择是validium,它将数据保存在链下,并有一个有趣的安全模型:运营者无法窃取用户资金,但他们可能会消失并暂时或永久冻结所有用户的资金。但我们可以做得更好。

它是什么以及它是如何工作的?

Plasma是一种扩展解决方案,运营者在链下发布区块,并将这些区块的Merkle根放在链上(与rollups不同,rollups将完整的区块放在链上)。对于每个区块,运营者向每个用户发送一个Merkle分支,证明该用户资产发生或未发生的情况。用户可以通过提供Merkle分支来提取他们的资产。重要的是,这个分支不必根植于最新状态 - 因此,即使数据可用性失败,用户仍然可以通过提取他们所拥有的最新可用状态来恢复他们的资产。如果用户提交无效分支(例如,退出已经发送给他人的资产,或运营者凭空创造资产),链上挑战机制可以裁定资产应该归属于谁。

Plasma Cash链的示意图。花费硬币i的交易被放在树的第i个位置。在这个例子中,假设所有先前的树都是有效的,我们知道Eve当前拥有硬币1,David拥有硬币4,George拥有硬币6。

Plasma的早期版本只能处理支付用例,无法有效地进一步推广。然而,如果我们要求每个根都通过SNARK验证,Plasma就变得更加强大。每个挑战游戏可以大大简化,因为我们消除了运营者作弊的大多数可能路径。新的路径也开放了,允许Plasma技术扩展到更广泛的资产类别。最后,如果运营者不作弊,用户可以立即提取他们的资金,而不需要等待一周的挑战期。

制作 EVM 等离子链的一种方法(不是唯一的方法)是:使用ZK-SNARK构建一个与EVM并行的UTXO树,反映EVM中的余额变化,并定义不同时间点上”相同硬币”的唯一映射。然后可以在此基础上构建等离子体系统。

一个关键的见解是,等离子体系统不需要完美无缺。即使你只能保护一部分资产(例如,仅保护过去一周内未移动的硬币),你也已经大大改善了超可扩展EVM的现状,即validium。

另一类构造是等离子体/rollup混合体,例如Intmax。这些构造在链上为每个用户存储很少量的数据(例如5字节),从而获得介于等离子体和rollup之间的特性:以Intmax为例,你可以获得非常高的可扩展性和隐私性,尽管即使在16 MB的世界中,理论容量上限也约为16,000,000 / 12 / 5 = 266,667 TPS(每秒交易数)。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

主要剩余的任务是将Plasma系统投入生产。如上所述,”plasma vs validium”并非二元对立:任何validium都可以通过在退出机制中添加Plasma功能来至少略微改善其安全属性。研究部分在于为EVM获得最佳属性(在信任要求、最坏情况下的L1 gas成本和对DoS的脆弱性方面),以及替代的应用特定构造。此外,Plasma相对于rollups的更大概念复杂性需要直接解决,既通过研究,也通过构建更好的通用框架。

使用Plasma设计的主要权衡是它们更依赖于运营商,并且更难做到”基于“,尽管混合plasma/rollup设计通常可以避免这个弱点。

它如何与路线图的其他部分交互?

Plasma 解决方案越有效,L1 拥有高性能数据可用性功能的压力就越小。将活动转移到 L2 还可以减少 L1 上的 MEV 压力。

成熟的 L2 证明系统

我们要解决什么问题?

如今,大多数汇总实际上还不是去信任的;有一个安全理事会有能力推翻(乐观或有效性)的行为 证明系统。在某些情况下,证明系统甚至根本不存在,或者即使存在也仅具有“咨询”功能。最领先的是 (i) 一些特定于应用程序的汇总,例如 Fuel,它们是去信任的,以及 (ii) 截至撰写本文时,Optimism 和 Arbitrum,这两个完整的 EVM 汇总已经实现了部分去信任里程碑称为“第一阶段”。 Rollups 没有进一步发展的原因是担心代码中的 bug。我们需要去信任的汇总,因此我们需要正面解决这个问题。

它是什么以及它是如何工作的?

首先,让我们回顾一下”阶段”系统,这个概念最初是在这篇文章中提出的。虽然有更详细的要求,但概括如下:

  • 第0阶段:用户必须能够运行节点并同步链。此时验证可以是完全信任/中心化的。
  • 第1阶段:必须有一个(无需信任的)证明系统,确保只有有效的交易才能被接受。允许存在一个安全委员会可以覆盖证明系统,但需要75%的投票阈值。此外,委员会中至少26%的成员必须来自开发扩容方案的主要公司之外。允许存在一个具有较弱功能的升级机制(如DAO),但它必须有足够长的延迟,以便在批准恶意升级时,用户能在升级生效前提取资金。
  • 第2阶段:必须有一个(无需信任的)证明系统,确保只有有效的交易才能被接受。安全委员会只允许在代码出现可证明的bug时介入,例如,当两个冗余证明系统不一致,或者一个证明系统接受了同一区块的两个不同的后状态根(或在足够长的时间内,如一周,没有接受任何状态)。允许存在升级机制,但必须有非常长的延迟。

目标是达到第2阶段。达到第2阶段的主要挑战是获得足够的信心,确保证明系统真的足够可信。有两种主要方法可以做到这一点:

  • 形式验证:我们可以使用现代数学和计算技术来证明(乐观或有效性)证明系统只接受通过EVM规范的区块。这些技术已经存在了几十年,但最近的进展,如Lean 4,使它们变得更加实用,而AI辅助证明的进展可能会进一步加速这一趋势。
  • 多重证明者:创建多个证明系统,并将资金放入这些证明系统和安全委员会(和/或其他具有信任假设的工具,如可信执行环境TEEs)之间的2-of-3(或更大)多重签名中。如果证明系统达成一致,安全委员会就没有权力;如果它们不一致,安全委员会只能在它们之间选择一个,而不能单方面强加自己的答案。

多重证明者的示意图,结合了一个乐观证明系统、一个有效性证明系统和一个安全委员会。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

对于形式验证,还有很多工作要做。我们需要创建一个完整的EVM SNARK证明器的形式验证版本。这是一个极其复杂的项目,尽管我们已经开始了。有一个技巧可以显著简化这个任务:我们可以为一个最小化的虚拟机(如RISC-VCairo)创建一个经过形式验证的SNARK证明器,然后在该最小化虚拟机中编写EVM的实现(并正式证明其与其他EVM规范的等价性)。

对于多重证明者,还有两个主要的待完成部分。首先,我们需要对至少两个不同的证明系统建立足够的信心,确保它们各自都是合理安全的,并且如果它们出现故障,会因不同且无关的原因而故障(因此不会同时失效)。其次,我们需要对合并证明系统的底层逻辑获得非常高水平的保证。这是一个更小的代码部分。有些方法可以使其变得非常小——只需将资金存储在一个Safe多重签名合约中,其签名者是代表各个证明系统的合约——但这会带来链上gas成本高的权衡。需要在效率和安全性之间找到平衡。

它如何与路线图的其他部分交互?

将活动转移到二层网络可以减少一层网络上的MEV(最大可提取价值)压力。

跨 L2 互操作性改进

我们要解决什么问题?

当前二层网络生态系统的一个主要挑战是用户难以导航。此外,最简单的使用方式往往会重新引入信任假设:中心化桥接、RPC客户端等。如果我们认真对待二层网络是以太坊一部分的想法,我们需要让使用二层网络生态系统感觉就像使用一个统一的以太坊生态系统。

这里有一个病态且危险的跨二层网络用户体验示例(我个人因链选择错误在这里损失了100美元)- 尽管这不是Polymarket的错,跨二层网络互操作性应该是钱包和以太坊标准(ERC)社区的责任。在一个运作良好的以太坊生态系统中,从一层网络发送代币到二层网络,或从一个二层网络发送到另一个,应该感觉就像在同一个一层网络内发送代币一样。

它是什么以及它是如何工作的?

有许多类别的跨二层网络互操作性改进。通常,提出这些改进的方法是注意到理论上,以rollup为中心的以太坊与一层执行分片是一回事,然后问当前以太坊二层网络生态系统在实践中与这个理想有何不足。以下是一些例子:

  • 链特定地址:链(一层网络、Optimism、Arbitrum…)应该是地址的一部分。一旦实施,跨二层网络发送流程可以通过将地址放入”发送”字段来实现,此时钱包可以在后台确定如何进行发送(包括使用桥接协议)。
  • 链特定支付请求:应该容易且标准化地创建形如”在Z链上向我发送Y类型的X代币”的消息。这有两个主要用例:(i) 支付,无论是个人对个人还是个人对商户服务,以及 (ii) dapps请求资金,例如上面的Polymarket示例。
  • 跨链交换和gas支付:应该有一个标准化的开放协议来表达跨链操作,如”我在Optimism上发送1 ETH给任何在Arbitrum上向我发送0.9999 ETH的人”,以及”我在Optimism上发送0.0001 ETH给任何在Arbitrum上包含此交易的人”。ERC-7683是前者的一种尝试,而RIP-7755是后者的一种尝试,尽管两者都比这些特定用例更为通用。
  • 轻客户端:用户应该能够实际验证他们正在交互的链,而不仅仅是信任RPC提供商。A16z crypto的Helios为以太坊本身做到了这一点,但我们需要将这种无需信任扩展到二层网络。 ERC-3668 (CCIP-read)是实现这一点的一种策略。

轻客户端如何更新其对以太坊头链的视图。一旦你有了头链,你就可以使用默克尔证明来验证任何状态对象。一旦你有了正确的一层网络状态对象,你就可以使用默克尔证明(如果你想检查预确认,可能还需要签名)来验证二层网络上的任何状态对象。Helios已经实现了前者。将其扩展到后者是一个标准化挑战。

  • 密钥库钱包:今天,如果你想更新控制你的智能合约钱包的密钥,你必须在该钱包存在的所有N条链上都进行更新。密钥库钱包是一种技术,允许密钥存在于一个地方(可能是在一层网络上,或者后来可能在二层网络上),然后可以从任何有该钱包副本的二层网络读取。这意味着更新只需要进行一次。为了高效,密钥库钱包需要二层网络有一种标准化的方式来无成本地读取一层网络;L1SLOADREMOTESTATICCALL是两个这样的提议。

密钥库钱包如何工作的简化图示。

  • 更激进的”共享代币桥”想法:想象一个所有二层网络都是有效性证明rollup的世界,它们每个时隙都向以太坊提交。即使在这个世界里,从一个二层网络移动资产到另一个二层网络”原生地”也需要提取和存款,这需要支付大量的一层网络gas费。解决这个问题的一种方法是创建一个共享的最小rollup,其唯一功能是维护每个二层网络拥有哪些类型和数量的代币的余额,并允许这些余额通过任何二层网络发起的一系列跨二层网络发送操作批量更新。这将允许跨二层网络转账发生,而无需为每次转账支付一层网络gas费,也无需像ERC-7683那样基于流动性提供者的技术。
  • 同步可组合性:允许同步调用发生在特定的二层网络和一层网络之间,或者在多个二层网络之间。这可能有助于提高去中心化金融协议的金融效率。前者可以在不需要跨二层网络协调的情况下完成;后者将需要共享排序基于rollup自动友好于所有这些技术。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

上述许多例子都面临着何时标准化以及在哪些层面上标准化的常见困境。如果过早标准化,你可能会固化一个劣质解决方案。如果标准化太晚,你可能会造成不必要的碎片化。在某些情况下,既有短期解决方案(属性较弱但易于实施),也有长期解决方案(”最终正确”但需要几年时间才能实现)。

这一部分的独特之处在于,这些任务不仅仅是技术问题:它们也是(甚至可能主要是!)社会问题。它们需要二层网络、钱包和一层网络的合作。我们能否成功处理这个问题,是对我们作为一个社区团结一致能力的考验。

它如何与路线图的其他部分交互?

这些提案大多是”高层”构造,因此不会对一层网络考虑产生重大影响。一个例外是共享排序,它对MEV(最大可提取价值)有重大影响。

在 L1 网络上扩展执行

我们要解决什么问题?

如果 L2 变得非常可扩展且成功,但 L1 仍然只能处理非常少量的交易,那么以太坊可能会出现许多风险:

  1. ETH 资产的经济状况变得更加危险,进而影响网络的长期安全。
  2. 许多L2受益于与L1上高度发达的金融生态系统的紧密联系,如果这个生态系统大大削弱,成为L2(而不是独立的L1)的动力就会减弱
  3. L2 需要很长时间才能拥有与 L1 完全相同的安全保证。
  4. 如果一个二层网络失败(例如由于恶意或消失的运营商),用户仍然需要通过一层网络来恢复他们的资产。因此,一层网络需要足够强大,至少能够偶尔处理二层网络高度复杂和混乱的清算。

出于这些原因,继续扩展 L1 本身并确保它能够继续适应越来越多的用途是很有价值的。

它是什么以及它是如何工作的?

扩展以太坊最简单的方法是直接提高gas限制。然而,这可能会导致L1层中心化,从而削弱以太坊L1最强大的特性之一:作为稳健基础层的可信度。关于多大程度的gas限制提升是可持续的,目前仍存在争议。这个问题还会随着其他使大区块更易验证的技术(如历史过期、无状态性、L1 EVM有效性证明等)的实施而变化。另一个需要持续改进的重要方面是以太坊客户端软件的效率,现在的效率已经比五年前高得多。一个有效的L1 gas限制提升策略应该包括加速这些验证技术的发展。

另一种扩展策略是识别特定功能和计算类型,在不损害网络去中心化或安全性的前提下降低其成本。例如:

  • EOF - 一种新的EVM字节码格式,更便于静态分析,允许更快的实现。EOF字节码可以被赋予更低的gas成本以反映这些效率。
  • 多维gas定价 - 为计算、数据和存储建立单独的基础费用和限制,可以增加以太坊L1的平均容量,而不增加其最大容量(从而避免产生新的安全风险)。
  • 减少特定操作码和预编译的 Gas 成本 - 从历史上看,我们曾经有过 一些 回合增加 气体 成本 对于某些操作 价格过低的 以避免拒绝服务攻击。我们拥有的更少,但可以做得更多的是 减少 运营的天然气成本是 价格过高。例如,加法比乘法便宜得多,但是 添加 和 我有 操作码目前是相同的。我们可以做 添加 更便宜,甚至更简单的操作码,例如 推 甚至更便宜。
  • EVM-MAXSIMD:EVM-MAX(”模运算扩展”)是一项允许更高效的原生大数模运算作为EVM单独模块的提案。除非特意导出,否则EVM-MAX计算的值只能被其他EVM-MAX操作码访问;这允许以优化格式存储这些值。SIMD(”单指令多数据”)是一项允许在一组值上高效执行相同指令的提案。这两者结合可以在EVM旁边创建一个强大的协处理器,可以用来更高效地实现加密操作。这对隐私协议和L2证明系统特别有用,因此可以帮助L1和L2的扩展。

这些改进将在以后关于 Splurge 的文章中更详细地讨论。

最后,第三个策略是 原生汇总 (或“enshrined rollups”):本质上,创建并行运行的 EVM 的许多副本,从而形成一个与 rollups 可以提供的模型等效的模型,但更原生地集成到协议中。

与现有研究有哪些联系?

还需要做什么,需要权衡什么?

L1 扩展有三种策略,可以单独或并行执行:

  • 改进技术(例如客户端代码、无状态客户端、历史记录过期) 让L1更容易验证, 进而 提高气体限制
  • 使特定操作更便宜,在不增加最坏情况风险的情况下增加平均容量
  • 原生汇总 (即“创建 EVM 的 N 个并行副本”,尽管可能为开发人员在部署副本的参数方面提供了很大的灵活性)

值得理解的是,这些是不同的技术,有不同的权衡。例如,原生rollups在可组合性方面有许多与普通rollups相同的弱点:你不能发送一个单一的交易在多个rollups之间同步执行操作,就像你可以在同一个L1(或L2)上的合约那样。提高gas限制会减少通过使L1更容易验证而可能获得的其他好处,如增加运行验证节点的用户比例和增加单独质押者。降低EVM中特定操作的成本,取决于具体实施方式,可能会增加EVM的总体复杂性。

任何 L1 扩展路线图都需要回答的一个大问题是: L1 和 L2 的最终愿景是什么?显然,这是荒谬的 一切 继续 L1:潜在的用例每秒有数十万个事务,这将使 L1 完全无法验证(除非我们采用本机汇总路线)。但我们确实需要 一些 指导原则,这样我们就可以确保我们不会造成这样的情况:我们将 Gas 限制提高 10 倍,严重损害以太坊 L1 的去中心化,并发现我们只是进入了一个 99% 的活动都在在 L2 上,90% 的活动都在 L2 上,因此结果看起来几乎相同,除了以太坊 L1 特殊之处的大部分不可逆转的损失。

一种关于 L1 和 L2 之间“分工”的提议观点, 来源

它如何与路线图的其他部分交互?

将更多用户带到L1意味着不仅要改善规模,还要改善L1的其他方面。这意味着更多的MEV(最大可提取价值)将留在L1上(而不是仅成为L2的问题),因此将更加迫切需要明确处理它。这大大增加了在L1上拥有快速时隙时间的价值。它也高度依赖于L1的验证(”the Verge”)进展顺利。

声明:

  1. 本文转载自[维塔利克·布特林)],所有版权归原作者所有[维塔利克·布特林]。若对本次转载有异议,请联系Gate Learn团队,他们会及时处理。
  2. 免责声明:本文所表达的观点和意见仅代表作者个人观点,不构成任何投资建议。
  3. Gate Learn 团队将文章翻译成其他语言。除非另有说明,否则禁止复制、分发或抄袭翻译文章。
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!