以太坊执行层优化:状态树与虚拟机

本文讨论了以太坊未来执行层的重要升级,主要集中在状态树和虚拟机(VM)的改进。状态树将从十六进制的Keccak MPT转换为更高效的二叉树,以提高证明效率和客户端验证。虚拟机方面,提议用RISC-V等更优的VM替代EVM,旨在提升执行效率、证明友好性和协议简洁性,以解决当前瓶颈。

现在,执行层变更。我已经讨论过 账户抽象 (account abstraction)、多维 Gas (multidimensional gas)、BALs 和 ZK-EVMs。我在这里也谈到了一个我认为非常有价值的短期 EVM 升级:向量化数学预编译 (vectorized math precompile)(基本上,同时对数字列表执行 32 位或潜在的 64 位操作;原则上,这可以将许多哈希、STARK 验证、FHE、基于格的抗量子签名等加速 8-64 倍);可以将其视为“EVM 的 GPU”。https://firefly.social/post/x/2027405623189803453… 今天我将重点关注两件大事:状态树变更和 VM 变更。状态树变更在此路线图中。VM 变更(即 EVM -> RISC-V 或更好的东西)是更长期的,并且仍然更具非共识性,但我坚信,一旦状态树变更和长期状态路线图(参见 https://ethresear.ch/t/hyper-scaling-state-by-creating-new-forms-of-state/24052… )完成,它将成为“显而易见的事情”,所以我会在这里阐述我的理由。这两者之间的共同点是:

  • 如果我们想要高效证明,它们是必须解决的巨大瓶颈(树 + VM 占比超过 80%)
  • 对于各种 客户端证明 (client-side proving) 用例来说,它们基本上是强制性的
  • 它们是“深层”变更,许多人望而却步,认为采取渐进主义更为“务实” 我将为这两者提出论据。

二叉树

状态树变更(由 @gballet 和许多其他人研究)是 https://learnblockchain.cn/docs/eips/EIPS/eip-7864,它将从当前的 hexary keccak MPT 切换到基于更高效哈希函数的二叉树。这具有以下优点:

  • Merkle 树分支缩短 4 倍(因为二叉树是 32log(n),而 hexary 是 512log(n)/4),这使得 客户端分支验证 (client-side branch verification) 更可行。这使得 Helios、PIR 等通过数据带宽节省 4 倍成本
  • 证明效率。3-4 倍的提升来自更短的 Merkle 树分支。除此之外,哈希函数变更:可以是 blake3 [可能比 keccak 快 3 倍] 或 Poseidon 变体 [快 100 倍,但需要更多安全工作]
  • 客户端证明 (Client-side proving):如果你想要与以太坊状态组合的 ZK 应用程序,而不是像今天这样构建自己的树,那么以太坊状态树需要对证明者友好。
  • 相邻槽位的访问成本更低:二叉树设计将存储槽位(storage slots)分组为“页面”(例如,64-256 个槽位,即 2-8 kB)。这使得存储在一次性加载和编辑大量数据时,在原始执行和证明者中都能获得与代码相同的效率优势。区块头和最初约 1-4 kB 的代码和存储都位于同一页面中。今天的许多 dapps 已经从最初的几个存储槽位加载大量数据,因此这可以为它们节省每笔交易 >1 万 gas。
  • 降低访问深度的方差(从大合约加载与从小合约加载)
  • 二叉树更简单
  • 有机会添加我们最终需要的任何用于 状态过期 (state expiry) 的元数据位

从宏观上看,二叉树是一个“综合方案”,它使我们能够吸取过去十年关于如何构建良好状态树的所有经验,并实际应用它们。

VM 变更

另请参见:https://ethereum-magicians.org/t/long-term-l1-execution-layer-proposal-replace-the-evm-with-risc-v/23617…

随着时间的推移,协议因更多特殊情况而变得更复杂的一个原因是,人们对“使用 EVM”存在一种潜在的恐惧。如果一个钱包功能、隐私协议或任何其他功能可以在不引入这个“可怕的 EVM 东西”的情况下完成,人们会明显松一口气。对我来说,这非常令人遗憾。以太坊的全部意义在于其通用性,如果 EVM 不足以真正满足这种通用性的需求,那么我们应该正面解决这个问题,并创建一个更好的 VM。这意味着:

  • 在原始执行方面比 EVM 更高效,以至于大多数 预编译 (precompiles) 变得不必要
  • 比 EVM 更高效地进行证明(今天,证明者是用 RISC-V 编写的,因此我提议直接让新 VM 成为 RISC-V)
  • 客户端证明者 (client-side-prover) 友好。你应该能够通过客户端对例如当你的账户被特定数据调用时会发生什么进行 ZK 证明
  • 最大程度的简洁性。一个 RISC-V 解释器只有几百行代码,这才是区块链 VM“应该有的感觉”

这仍然更具推测性和非共识性。如果我们只做 EVM + GPU,以太坊当然会没问题。但一个更好的 VM 可以让以太坊变得美好而伟大。一个可能的部署路线图是:

  1. NewVM(例如 RISC-V)仅用于 预编译 (precompiles):今天 80% 的 预编译,加上许多新的 预编译,将成为 NewVM 代码块
  2. 用户获得部署 NewVM 合约的能力
  3. EVM 退役并转变为用 NewVM 编写的 智能合约 (smart contract)

EVM 用户将体验完全的向后兼容性,除了 gas 成本的变化(这将被未来几年的扩展工作所掩盖)。我们将获得一个更高效的证明者、更简单、更清晰的协议。

  • 原文链接: x.com/vitalikbuterin/sta...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Vitalik Buterin
Vitalik Buterin
https://vitalik.ca/