以太坊协议正面临长期发展的关键挑战:区块链数据的自然膨胀与功能复杂性的持续累积。本文将深入探讨以太坊创始人Vitalik提出的“The Purge”阶段,解析其如何通过系统性优化实现协议的精简化与可持续进化。
协议膨胀的双重挑战
任何区块链协议都面临两个核心挑战:
- 历史数据增长:所有交易记录与历史账户数据需由客户端永久存储,导致同步时间与存储需求随时间持续增加
- 功能复杂性累积:新功能添加容易而旧功能移除困难,导致协议代码日益复杂
以太坊需在保持区块链持久性特质的同时,有效遏制这两种趋势。用户需要确信其部署的智能合约、NFT或数字资产在多年后仍可安全访问,这正是协议简化需要维护的核心价值。
The Purge 的核心目标
The Purge阶段聚焦两个关键方向:
- 通过减少节点永久存储全历史数据的需求,显著降低客户端存储要求
- 通过消除非必要功能持续降低协议复杂度
历史数据过期方案
问题现状与解决思路
目前完全同步的以太坊节点需约1.1TB磁盘空间,其中绝大部分是历史数据。即使gas限制不增加,节点规模每年仍将增长数百GB。
解决方案的核心洞察在于:网络只需对最新区块达成共识,任何历史数据都可通过Merkle证明由单个参与者提供并验证。这为分布式存储模式创造了可能性——类似Torrent网络的工作机制,每个节点仅存储部分数据,但整体网络仍能保持数据的完整性与可访问性。
实施路径与现有研究
以太坊已开始向非全历史存储模式转型:
- 共识区块仅存储约6个月
- Blob数据存储约18天
- EIP-4444提案旨在为历史区块引入一年存储期
长期目标是建立协调机制:每个节点在特定时期(如18天)内存储全部数据,之后由分布式节点网络共同维护历史数据。纠删码技术可进一步提升数据健壮性。
现有研究包括EIP-4444规范、Portal网络技术规范以及分布式存储解决方案的探讨。👉查看实时技术文档
剩余挑战与权衡
主要工作在于构建具体的分布式历史存储解决方案。最简单方案是引入现有Torrent库或以太坊原生Portal网络。启用EIP-4444需协调所有客户端同时升级。
关键权衡在于如何平衡数据可用性保障与实施复杂度:
- 最严谨方案要求验证者通过加密证明存储特定比例历史数据
- 温和方案则设定自愿性存储标准
状态数据过期策略
问题本质与解决方案
即使解决历史存储问题,状态数据(账户余额、合约代码与存储)仍以每年约50GB的速度增长。状态过期比历史过期更复杂,因为EVM假设状态对象一旦创建就永久存在。
目前有两类主流解决方案:
部分状态过期方案
- 将状态分块存储,仅保留最近访问的数据块
- EIP-7736提案基于Verkle树的“茎叶”设计,将相邻数据存储在相同茎下
- 若数据六个月未被访问,则仅存储32字节承诺而非完整数据
基于地址周期的状态过期
- 使用不断增长的状态树列表而非单一状态树
- 地址包含周期编号,只能在该周期或之后被访问
- 完整节点仅需存储最近两个周期的状态树
地址空间调整挑战
实施完整状态过期需扩展地址空间至32字节,包含版本号、周期号和哈希值。这带来严重向后兼容性问题,因为现有合约均基于20字节地址设计。
替代方案是禁止部分地址范围用于新格式,但这会降低反事实地址的安全性——从2^80哈希需求降至2^56,使得碰撞攻击可行。
未来路径选择
四种可能发展方向:
- 完全依赖无状态客户端,仅专业节点存储状态
- 实施部分状态过期,接受低速率状态增长
- 实施完整状态过期并扩展地址空间
- 实施完整状态过期并收缩地址空间
值得注意的是,地址空间问题迟早需要解决,因为当前2^80的碰撞阻力已面临算力威胁。
功能清理与简化
简化必要性
协议简单性是安全性、可访问性和可信中立性的基础。复杂性的默认累积趋势需要通过两种方式遏制:
- 停止非必要更改使协议固化
- 主动删除功能降低复杂度
具体简化机会
EVM外部简化
- RLP到SSZ编码转换:所有数据类型迁移至更高效的SSZ结构
- 删除旧交易类型:精简交易处理逻辑
- LOG改革:移除复杂度高但使用率低的bloom过滤器
- 取消信标链同步委员会:使用SNARK直接验证共识
- 数据格式协调:创建统一区块和状态数据格式
- 删除信标链委员会:执行分片通过L2和blob实现
- 删除混合字节序:统一使用大端字节序
EVM内部简化
- 简化gas机制:优化存储读写成本与内存定价规则
- 删除预编译:移除使用率低但增加复杂性的预编译合约
- 删除gas可观察性:使EVM执行无法感知剩余gas量
- 静态分析改进:限制动态跳转以提升可分析性
实施流程与权衡
功能简化的核心权衡在于简化程度与向后兼容性的平衡。建议建立标准化流程:
- 启动功能删除讨论
- 分析影响范围并确定最小破坏方案
- 正式EIP提案并确保基础设施支持
- 最终移除功能
整个过程应持续数年,并明确各阶段状态。
常见问题
The Purge阶段的主要目标是什么?
The Purge旨在通过历史数据过期和功能清理两个方向,降低以太坊节点的存储需求与协议复杂度,确保网络长期可持续性。
历史数据过期会降低数据安全性吗?
不会。分布式存储模式通过纠删码和多重备份机制,可在降低单个节点负担的同时保持整体数据安全性与可访问性。
状态过期会影响现有合约运行吗?
优化方案都考虑向后兼容性。部分状态过期仅影响长期未访问的数据,基于地址周期的方案则通过巧妙设计确保现有合约继续正常运行。
普通用户需要为这些变化做什么准备?
大多数用户无需主动操作。但开发人员应关注协议演进方向,避免依赖即将被移除的功能,并及时测试合约在新协议下的兼容性。
功能清理如何选择删除目标?
基于功能使用率、安全风险与维护成本的综合评估。极少使用且维护成本高的功能优先考虑移除,同时提供过渡方案。
这些变化会影响交易费用吗?
长期看,协议简化可能降低节点运营成本,从而为降低交易费用创造空间。但具体影响需结合市场机制综合评估。
结语
The Purge阶段代表以太坊协议发展的关键转折——从功能累积转向精简化设计,从无限增长转向可持续模式。通过历史数据过期、状态管理优化和功能清理的系统性实施,以太坊将为长期发展奠定坚实基础。这一过程需要社区共识与协作,确保在保持区块链核心价值的同时,实现技术架构的现代化演进。👉探索更多技术细节