原作者:Vitalik Buterin,《状况到期和无状况路线图》(A state expiry and statelessness roadmap)

以太坊的状况规划正在迅速增长。目前仅状况巨细大约有 35 GB,假如包含一切 Merkle 证明在内,则超越 100 GB,并且每年大约添加一半。状况存储也是以太坊经济学的一个弱点:它也是仅有一种机制,使得参与者支付一次就可变成节点永久的负担。为了坚持以太坊的可扩展性和可持续性,咱们需求一些处理方案。

有两种途径的处理方案,并且已经存在很长时刻:弱无状况和状况到期:

  • 状况到期:从状况中移除最近没有被拜访过的状况(例如:上一次拜访还是去年),并需求见证人(witnesses)才干恢复过期状况。这会将每个人需求存储的状况削减到大约 20-50 GB。

  • 弱无状况:只需求区块提议者存储状况,并答应一切其他节点无状况地验证区块。在实践中实现这一点需求切换到 Verkle 树以削减见证人的规划。

本文档描述了同时施行这两个想法的多阶段提案。 事实证明,这比先后连续执行这两个处理方案要容易得多。 没有 Verkle 树的状况到期需求非常大的见证巨细来证明旧状况,而切换到没有状况到期的 Verkle 树需求就地转化程序(例如 EIP 2584‌),这简直与仅实现状况到期一样复杂。 但是,假如同时进行,这两项变革处理了彼此面对的应战:状况到期涉及每年创立一个新的状况树,答应 Verkle 树随着时刻的推移逐渐引入而无需就地转化,而 Verkle 树处理了 见证人规划的问题。

相关链接:状况到期和无状况思维的开展前史

  • 无状况客户端概念,开始的 ethresear.ch 帖子(2017 年):https://ethresear.ch/t/the-stateless-client-concept/172‌(另见 EthHub)

  • 状况租金(状况到期的前身),2015 年原始提案:https://github.com/ethereum/EIPs/issues/35‌

  • ReGenesis(Alexey Akhunov 的提议,能够说是状况到期 +前史到期的一种形式):https://medium.com/@mandrigin/regenesis-explained-97540f457807‌

  • Verkle 树:https://notes.ethereum.org/_N1mutVERDKtqGIEYc-Flw‌

  • 关于边界见证巨细的演示(Youtube):https://www.youtube.com/watch?v=qQpvkxKso2E‌

  • 状况巨细办理理论(2021 年 2 月):https://hackmd.io/@vbuterin/state_size_management‌

  • 复生抵触最小化状况边界:https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739‌

  • 无状况和状况到期的一些路径:https://hackmd.io/@vbuterin/state_expiry_paths

回忆:状况到期是如何作业的?

这是对此处提议的机制以及本文档中提议的内容的描述。 中心思维是每个时期都会有一个状况树(如:1 个时期 ~= 1 年),当新时期开始时,会为该时期初始化一个空状况树,任何状况更新都会进入该树。 在一段时刻内发生的一切写入都进入最新的树(因而新树和旧树可能存储相同的信息乃至彼此抵触;新树总是优先)。

V神发布以太坊状态到期和无状态路线图,同步实施以解决状态暴增问题

请注意,这些大约一年的状况到期时刻在前史上有时被称为“时期(epochs)”,但我正在切换到“周期(period)”一词以避免与信标链时期混淆。

坚持两个要害原则:

  • 只能修正最近的树(即当时周期对应的树)。 一切旧树都不再可修正; 旧树中的目标只能通过在新树中创立它们的副本来修正,并且这些副本替代了旧副本。

  • 全节点(包含区块提议者)估计只持有最新的两个树,因而只要最新的两个树中的目标才干在没有见证人的情况下被读取。 阅览较旧的树则需求提供见证人。

“见证(witness)”是一个简短的证明,它证明一个值或一组值位于树中的某个位置,能够由只要树根的人进行验证。 例如,能够做一个见证,证明账户 0x124f...89ab 的存储槽 123 在某个状况下包含值 50,任何具有该状况树根的人都能够验证该证明。

状况到期建立了一种混合状况机制:一致节点需求存储最近拜访或修正的状况,但能够运用基于见证的无状况客户端方法来验证较旧的状况。 也就是说,能够维护一个“归档节点”,它乃至能够存储前史状况树,或者是一个完全无状况的节点,它运用见证人来验证乃至最近的状况。 但是,gas 成本结构和默许网络格局是环绕节点存储最新的两个状况树的假定构建的。

路线图

这种转化路线图分阶段施行。这些阶段包含:

  • 周期 1 硬分叉:咱们从周期 1 开始施行一个硬分叉(之前的一切内容都是周期 0)。在此分叉之后,将有两个状况树:十六进制 Patricia 树(已冻住且不再可修改)和一个新的 Verkle 树(包含对状况的一切新修改/添加,以及已拜访的旧状况的副本)

原始 EIP:https://notes.ethereum.org/@vbuterin/verkle_tree_eip

  • 地址周期扩展:地址从 20 字节扩展到 32 字节,新的地址格局包含“地址周期”(以前称为“地址空间”)的概念。这答应新合约在不需求提供见证人的情况下填充新的存储槽。这能够在终究状况到期转化之前、周期 1 硬分叉之前或之后的任何时候完结。

VB 的提议:https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485

Ipsilon 团队提案:https://notes.ethereum.org/@ipsilon/address-space-extension-exploration

  • 周期2 硬分叉:咱们施行了开始周期 2 的硬分叉,并组织了未来阶段的开始。周期 0 十六进制 Patricia 树被替换为 Verkle 树,并且客户端只存储根,因而周期 0 树中的状况现在需求见证人来证明。在此之后,状况到期方案已全面施行。

原始 EIP:https://notes.ethereum.org/@vbuterin/state_expiry_eip

视野开拓

在几次诗社活动时,她既稳重又出语机智,并无槁木死灰状;同样,黛玉也显得活泼甚至调皮,常引起笑声一片。其中的原因就在于,贾府的那几个小青年有较高的文化修养,他们聚在一起时形成了与荣国府整体不同的博雅小氛围。在这个小氛围里,李纨与黛玉才如鱼得水,谈笑自若。-《荣国府的经济账》

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注