扩展路线图中倾向于本地节点的调整

文章讨论了在提高以太坊L1 gas limit的同时,如何保证普通用户能够运行全节点,从而实现信任、抗审查和保护隐私地读取链上数据。文章提出了短期、中期和长期解决方案,包括:优先推出EIP-4444以减少磁盘空间需求、构建分布式历史存储解决方案、调整gas价格使存储更昂贵执行更便宜以及引入新型的部分无状态节点,用户可以根据自己的需求配置节点存储的状态部分,从而实现本地访问和隐私保护。

特别感谢 Micah Zoltu, Toni Wahrstätter, Justin Traglia 和 pcaversaccio 的讨论

在对提高 L1 gas limit 的最常见批评中,除了对网络安全的担忧之外,还有一点是它使运行一个全节点变得更加困难。

尤其是在专注于解绑全节点的路线图中,解决这个问题需要理解全节点的作用

历史上,人们认为全节点用于验证链;请参阅此处了解我关于如果普通用户无法验证会发生什么情况的阐述。如果这是唯一的问题,那么 ZK-EVM 就可以解锁 L1 扩容:唯一的限制是保持区块构建和证明成本足够低,以至于两者都可以保持 1-of-n 的抗审查性和竞争性市场。

然而,实际上这并不是唯一的考虑因素。另一个主要担忧是:拥有一个全节点很有价值,这样你就可以拥有一个本地 RPC 服务器,你可以用它以无需信任、抗审查和保护隐私的方式读取链。本文档将讨论对当前 L1 扩容路线图的调整,以实现这一点。

为什么不通过 ZK-EVM + PIR 来实现无需信任和隐私就停止呢?

我上个月发布的隐私路线图侧重于 TEEs + ORAM 作为短期补丁,以及 PIR 作为长期解决方案。这与 Helios 和 ZK-EVM 验证一起,将允许任何用户连接到外部 RPC,并完全确信 (i) 他们获得的链是正确的,并且 (ii) 他们的数据隐私受到保护。因此,值得问一个问题:为什么不在这里停下来呢?这些高级加密解决方案难道不会使自托管节点成为过时的遗物吗?

在这里,我可以给出一些答复:

  • 完全无需信任的加密解决方案(即单服务器 PIR)将是昂贵的。目前,开销高得不切实际,即使经过多次效率改进,也可能仍然昂贵。
  • 元数据隐私。哪个 IP 地址在什么时间发出请求的数据,以及请求的模式,本身就足以揭示有关用户的很多信息。
  • 审查漏洞:由少数 RPC 提供商主导的市场结构将面临强大的压力,要求取消平台或审查用户。许多 RPC 提供商已经排除了整个国家/地区。

由于这些原因,继续确保更容易运行个人节点是有价值的。

短期优先级

  • 优先全面推出 EIP-4444,一直到最终状态,即每个节点仅存储约 36 天的数据。这大大降低了磁盘空间需求,这是阻止更多人运行节点的主要问题。在此之后,节点的磁盘空间需求将是 (i) 状态大小,(ii) 状态 Merkle 分支,(iii) 36 天的历史记录。
  • 构建分布式历史存储解决方案,每个节点可以存储一小部分早于截止日期的历史数据。使用纠删码来最大化鲁棒性。这确保了“区块链永远存在”的属性,而无需依赖中心化提供商给节点运营商带来沉重负担
  • 调整 gas 价格,使存储更昂贵,执行更便宜。尤其重要的是增加创建状态的 gas 成本:(i) 新存储槽的 SSTORE,(ii) 合约代码创建,(iii) 向尚未有余额或 nonce 的账户发送 ETH。

中期优先级:无状态验证

一旦我们启用无状态验证,就可以运行一个具有 RPC 功能的节点(即存储状态的节点),而无需存储状态 Merkle 分支。这进一步减少了约 2 倍的存储需求。

一种新型节点:部分无状态节点

这是一个新想法,对于即使在 L1 gas limit 增长 10-100 倍的情况下也允许个人节点运行至关重要。

我们添加了一种节点类型,它可以无状态地验证区块,并验证整个链(通过无状态验证或 ZK-EVM),并保持部分状态是最新的。该节点能够响应 RPC 请求,只要所需数据位于状态的该子集中即可;其他请求将失败(或者必须回退到外部托管的加密解决方案;是否这样做应该是用户的选择)。

partial_statelessness.drawio\ partial_statelessness.drawio776×341 19.9 KB

要保存的状态的确切部分将取决于用户选择的配置。一些例子可能是:

  • 除已知为垃圾邮件的合约之外的所有状态
  • 与所有 EOA 和 SCW 以及所有常用 ERC20 和 ERC721 代币和应用程序关联的状态
  • 与过去两年中访问过的所有 EOA 和 SCW、一些常用的 ERC20 代币以及一组有限的精选交换、defi 和隐私应用程序关联的状态

该配置可以由链上合约管理:用户可以使用 --save_state_by_config 0x12345...67890 运行其节点,并且该地址将以某种语言指定节点将保存并保持最新的地址、存储槽或以其他方式过滤的状态区域的列表。请注意,用户无需保存 Merkle 分支;他们只需要保存原始值。

这种类型的节点将提供用户需要关心的状态的直接本地访问的好处,以及对该状态的访问的最大程度的完全隐私。

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

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展