状态到期:协议内 vs. 协议外

本文为机器翻译
展示原文

状态到期:协议内 vs. 协议外

状态增长仍然是主要的性能和去中心化瓶颈。它会导致节点同步时间延长,从而降低区块执行性能并增加存储需求。这与历史增长(旧区块/收据)不同,EIP-4444 允许客户端进行修剪。最近对状态访问模式的实证分析表明,状态使用情况高度不均衡——大多数交易只涉及一小部分热状态,因此移除冷状态有助于显著减轻节点负担。

状态过期机制的主要目的是减缓状态的增长速度(甚至保持恒定)。它建议将冷状态从活跃集合中移除,并在再次访问时要求提供复活证明。到目前为止,有两个阻碍因素导致我们无法顺利推出状态过期机制:

  1. 用户体验:用户如何检索复活的证据。
  2. 对过期状态对象进行廉价、强大的标记

随着我们迈向实时证明和无状态世界,状态到期机制究竟该如何运作尚不明确。因此,本文做了两件事:

  • 绘制真正需要状态的地图以及状态到期如何帮助实现当今和未来可行的路线图。
  • 通过具体的权衡比较协议内协议外的状态到期情况。

谁掌管国家?

今天(2025年)

TL;DR:大多数节点必须保持状态。

  1. 验证器:根据活动状态构建、执行并验证区块。实际操作仍假设区块处于完整状态。
  2. 建造者:协议外。少数实体构建了大部分区块(参见“谁赢得了区块建造拍卖? ”中的集中讨论)。它们维护状态以进行模拟和构建区块。
  3. RPC 节点:通常运行全节点。有些节点可能使用跟随者模式(例如Besu 的舰队模式),其中较轻的节点从受信任的全节点检索状态增量。

如果我们现在发布协议内状态到期:每个人都会从中受益——执行的活动状态更小、同步速度更快、状态读/写延迟更低、增加 gas 限制时的风险更小。

长期(ePBS + 无国籍)

TL;DR:只有构建器必须保持状态,而其他构建器可以是无状态的。

假设已确立的 PBS( EIP-7732 )和抗审查机制(例如FOCIL ),加上无状态性,即(a)区块中的 Verkle/Binary trie 见证或(b)区块执行 ZK 证明:

  1. 提议者/证明者——通过见证或证明进行验证。无需全局状态。理想情况下,仅有效性部分无状态(VOPS)可确保公共内存池的健康。
  2. 建造者:需要状态才能建造区块。使用 FOCIL(无需携带见证的交易),建造者预计可以访问完整的状态。
  3. 证明者:需要国家访问权限来检索用于生成证明的证人。
  4. RPC 节点:趋向于部分无状态( 本地节点优先),其中每个节点仅存储其关心的状态,但理想情况下仍为 VOPS。

在这个世界中,状态到期主要惠及构建者,他们承担了状态增长的大部分成本。如果没有到期,构建者必须提供越来越重的硬件,从而进一步加剧构建者的中心化。

如果证明者与构建者不同,那么它们可以是无状态的。但无状态证明者仍然需要从持有完整状态的节点检索状态见证,因此状态过期机制也能在实时证明的世界中降低成本并提高效率。

进还是出?

协议内状态到期

“协议内”是指到期规则在共识机制下生效。状态对象仅携带少量元数据,这些元数据会在状态访问(读取、写入或两者兼有)时更新。如果对象在访问时已过期,则必须将其恢复(通常通过交易)并附加见证信息。EIP -7736 (Verkle/二叉树的叶级到期)就是一个例子。

为什么它很好

1. 明确责任边界
如果您的状态已过期,有责任查找并提供证明。无需担心“我的旧状态由谁托管?”的问题。

2. 保持本地建设的可能
在无状态的世界里,较小的活跃状态能够保持本地构建者的活力,并抑制构建者的集中度。然而,不可否认的是,在目前的现状下,少数构建者生产了以太坊的大部分区块。

3. 剩余有状态节点的优势
在一个无状态证明者的世界里,如果大多数参与者都是无状态的,那么同步完整状态将极具挑战性,甚至完全不可能。因此,我们仍然应该预期一些节点会持有完整状态并以利他主义的方式提供服务(例如快照同步)。协议内到期规则可以减轻他们的负担。然而,这种对利他主义的依赖可以通过去中心化状态网络(例如Portal 网络)来缓解,该网络无需依赖利他主义的有状态节点即可保存和服务状态。尽管 Portal 本身就是一个利他主义系统。

4.可预测的用户体验界面
钱包可以针对单一到期规则,而不是拼凑的构建器策略。

为什么很难

1. 复活用户体验
钱包需要强大的多对象恢复流程(例如批量证明),以避免状态恢复过程中的多次跳跃。方案越精细(例如插槽级别 vs. 账户级别),用户体验就越难。

2. 谁托管过期状态?
状态过期并不意味着状态对象永远消失。我们仍然需要状态服务基础设施——理想情况下是去中心化的。依赖可信证明提供者在短期内或许是可以接受的,前提是该方案能够真正精简对约 99.99% 用户无用的状态。然而,这样做的代价是,较少的冷状态往往会被精简。

3. 复杂性和 DoS 攻击
必须存储到期元数据,这会增加存储开销。到期方案越细粒度,此开销就越高。恢复的复杂性也取决于方案:例如,多树到期方法中的恢复比EIP-7736等叶级设计更复杂。用户还需要承担恢复过期状态的额外成本。

超出协议状态到期

协议外意味着共识不会改变。节点可以采用社会协调的到期策略(例如链上或链下注册表)。节点可以丢弃状态,并期望用户提供自己的证明——但链不会强制执行。

为什么它很好

1. 降低以太坊协议的复杂性
构建者可以灵活地确定到期规则并快速迭代。策略可以通过社交或链上配置进行协调。这可能比分叉更容易。

2. 更快的迭代和可逆性
构建者可以更有创意地测试不同的修剪方案。如果策略适得其反,回滚将立即在本地进行。错误的到期设置会降低构建者的服务质量(例如,错过 MEV、延迟增加),而不是造成全局共识风险或全链 DoS 攻击。

3. 生态系统可堆肥性
为去中心化状态网络和商业见证服务创造了明确的需求。两者可以在延迟、覆盖范围和价格方面展开竞争,而无需协议耦合。提供有效见证的协议外费用可以作为侧边市场进行试点。

4. 过渡到协议内
实际使用情况可能会影响最终的协议内到期时间(如果需要)。这也比从一开始就进行协议内操作更容易。

5.统一访问层(当DA较强时)
如果存在一个快速、无需许可的状态网络,那么协议外方案就显得尤为重要。任何无状态或部分无状态节点都可以按需获取见证信息。节点无需分叉即可获得大部分到期收益,而钱包则使用一条简单的、以证明为中心的访问路径。

为什么很难

1. 用户体验和数据可用性不一致
不持有特定状态的构建器会要求用户提供见证。这反映了协议内的用户体验负担,但无法保证任何构建器仍然持有您的状态。如果策略基于社会共识,应用工具必须跟踪多条规则,这会使用户体验更加复杂。

2. 谁托管过期状态?
与协议内状态过期问题相同。然而,在协议内的情况下,所有权定义明确(即你的状态由你负责)。而在协议外的情况下,所有权定义不太明确,因此数据永久丢失的可能性更高。

3. 审查向量
如果“我们不控制你的状态”是一项可接受的政策,那么外部压力可以将其武器化以排除特定的合同,从而有效地将其转变为审查攻击。

4. Builders + FOCIL 细微差别
如果纳入列表中的交易不包含见证,构建者实际上需要访问完整状态,因此协议外到期的动机就会降低。如果证明性能更佳,构建者可以采用热冷状态隔离。

如果包含列表中的交易确实带有见证,则构建器可以是部分无状态的,但这会成为另一条协议内规则,从而降低用户体验,因为现在所有交易都必须带有见证(又称强无状态)。

5.同步状态
当操作员进行协议外修剪时,状态可用性在对等点之间是不一致的。同步完整状态可能会更加困难,甚至不可能。

国家复兴的挑战

一般来说,任何形式的状态过期(无论是进入还是退出)都必须处理恢复问题。以下是一些挑战:

复活跳跃

假设你想向一个长期闲置的账户发送 1 个ETH和一些Dai 。首先,账户查询显示该账户已过期,因此交易失败。你需要获取一个证明并恢复该账户。接下来, Dai转账会触及代币的存储,而这些存储也已过期。你必须获取额外的证明并恢复这些存储。这种反复的交互就是“复活跳跃”问题。

协议内过期的情况更糟,因为每次复活通常都需要提交一笔交易。一笔交易涉及的过期对象越多,跳数和费用就越高。协议外过期也面临同样的发现/获取循环,但跳数是在链下(没有额外的交易),但仍然会增加额外的延迟。

可能的缓解措施

  1. 针对全状态预言机预先模拟交易,以枚举在提交用户交易之前必须复活的所有账户和存储槽。
  2. 减少到期粒度(例如,帐户或合约级别与插槽级别),以消除需要复活的不同对象的数量。
  3. 批量恢复:支持单个捆绑证明,以原子方式恢复多个账户/槽位,并设置明确的字节上限以控制 DoS 风险。Blob 可以降低交易成本,但由于它们是瞬态的,因此恢复负载必须永久存储在其他地方,并向所有人开放。

哪里可以得到状态?

  1. RPC 提供程序
    为国家提供证据的第三方基础设施(商业或公共)。

    • 优点
      • 如今已广泛普及
      • 可以提供保证数据可用性的服务级别协议 (SLA)
      • 自然地有动机保留完整状态,以便“出售”对过期状态的访问权
    • 缺点
      • 信任与审查风险:RPC 提供商可以选择或被迫审查某些状态,从而拒绝状态复活
      • 用户付费来检索状态(除了协议内状态到期的复活交易)
  2. 客户端托管提供商
    EL 客户端团队可以托管过期状态的静态文件/快照,这些文件在定义的有效期内有效,类似于区块数据的纪元文件。当规范链进入新的过期期限时,这些文件会刷新。Erigon 和 Reth 在其状态同步架构中使用了类似的快照机制。

    • 优点
      • 提高社区信任度和透明度
      • 可以协调状态文件和响应格式以最大限度地减少复活延迟
    • 缺点
      • EL 客户团队的额外基础设施和维护负担
      • 这仍然需要信任团队持有所有过期状态。如果状态不可用,用户必须回退到 RPC 提供程序或从其他地方获取。
  3. 利他主义的 snap 同步同伴
    依靠提供状态块(Snap 同步)的对等节点来组装证明所需的账户/槽位。这建立在一个假设之上:即使状态过期,仍然有拥有完整状态的节点会无私地处理 Snap 请求。

    • 优点
      • 今天已经生效
      • 避免依赖特定的可信提供商
    • 缺点
      • 随着更多节点修剪过期状态,假设可能会失败。也就是说,新创建的节点无法再进行快照同步。
      • 随着全状态节点数量的减少,复活的用户体验会下降。在最坏的情况下,用户必须回退到受信任的提供商
  4. 去中心化国家网络
    无需许可的网络,存储完整状态,并提供状态证明。Portal 网络的状态网络就是一个这样的例子。

    • 优点
      • 抗审查
      • 内置复制功能可降低状态丢失的风险
    • 缺点
      • 截至今天,尚无生产级部署
      • 参与在很大程度上是利他的,没有激励措施,这可能会限制负载下的可靠性
  5. 通过彩虹质押激励节点持有部分状态
    将状态服务视为彩虹质押“非捆绑角色”(重度 vs 轻度)中的轻度服务。运营者承诺存储部分状态并提供可验证的见证,而委托人则为这些运营者分配权重。

    • 优点
      • 去中心化
      • 协调激励措施:持续的、协议原生的奖励,以保持状态可用,减少对利他主义的依赖
    • 缺点
      • 目前仍处于研究阶段,需要对运营商选择和奖励核算进行具体的设计

方案五是最佳的长期方案,但实施起来需要时间。方案二在短期内更为现实。

下一步是什么?

如果我们重视独立开发者和可预测的用户体验,那么协议内状态过期仍然是更安全的长期支撑点。在当今世界,状态过期显然有所帮助。但用户体验负担和数据无法恢复的风险使得立即启用不太可能。

短期内,我们应该尝试非协议方案。将非协议方案视为解决相同问题且不承担共识风险的原型,同时探索实际问题(例如状态可用性)并不断迭代解决方案。如果非协议到期方案被证明可靠且用户友好,我们可以考虑在以后将其纳入——前提是真正需要它。

结束语

尽早发布状态到期信息可带来立竿见影的益处——更小的活跃状态、更快的同步速度、更安全的 Gas 空间。在无状态的未来,这些益处大部分将归于构建者、证明者和少数有状态提供者——而这些正是中心化压力集中的地方。从协议外到期开始,可以快速抓住这些优势,暴露风险(见证可用性、DoS 攻击、用户体验),并让我们能够在没有共识风险的情况下进行迭代。

最重要的是,服务于状态的基础设施至关重要。随着我们走向无状态和状态失效,网络需要公开、可靠、无需许可的方式来持续检索状态和见证信息。

底线:网络不能允许永久丢失状态。

进一步阅读

致谢

特别感谢 Guillaume、Carlos 和 Ignacio 审阅本文。


来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论