autorenew
通过代码分块解锁以太坊可扩展性:深入解析 EIP-2926

通过代码分块解锁以太坊可扩展性:深入解析 EIP-2926

大家好,区块链爱好者们!如果你对区块链技术的细节感兴趣,肯定听说过以太坊正在不断努力变得更快更高效。其中一个在以太坊社区引起热议的新进展是​​代码分块​​,这是最近由 Stateless Consensus 线上线程重点介绍的一个概念。让我们一起来剖析它,看看这一创新将如何塑造以太坊的未来吧!

什么是代码分块?为什么它很重要?

试想以太坊是一座繁忙的城市,每个智能合约都是一栋建筑,而城市的“状态”(关于这些建筑的所有数据)需要不断检查以验证交易。当前,在以太坊的 Layer 1 (L1) 实时证明交易时,需要大量计算资源,尤其是处理整个​​字节码​​(让智能合约运行的代码)时。这会导致速度变慢和资源浪费。

这时候,​​代码分块​​登场了!该技术将合约字节码拆分成更小的31字节区块,并用​Merkle 树​​(一种通过加密证明链接数据的方法)来组织。这个想法最早在 2020 年的 EIP-2926 中提出,它使以太坊只需处理交易中实际用到的代码部分。就像检查建筑中有人使用的房间,而不是每个角落都要巡查一样!

Ethereum Research Logo

代码分块解决了什么问题?

如果没有代码分块,每次交易发生时,以太坊必须在证明中包含所有访问合约的完整字节码——包括未使用的部分。对于实时证明来说,这种低效非常显著。举个例子, @ignaciohagopian 曾发动一个巧妙的攻击,通过反复调用多个合约的 EXTCODESIZE 函数,导致 eth_proofs 中一些证明器宕机,代价仅约25美元的 ETH。真是惊人!

而使用代码分块,以太坊能显著缩减证明大小。仅包含执行过程中实际访问的区块,让流程更快且更经济,同时不损失安全性。

促进无状态客户端的发展

代码分块的一个最大亮点是支持​​无状态客户端​​。这些节点不需要存储整个以太坊状态即可验证区块,而是通过“见证”(一个只包含必要数据的精简证明)来完成验证。更小的证明尺寸意味着这些见证即使在低速网络也能快速传输,使以太坊对更多用户更加友好。

数据揭秘:到底有多少代码被真正使用?

为了验证这一点, @ngweihan_eth 分析了合并后以太坊大约10万区块(区块号15,537,394至22,000,000)。结果显示,平均每个区块仅访问了合约字节码的​22.8%——不到四分之一!按31字节区块拆分时,约​**29.6%​的区块被使用,而在这些区块内,​68.9%**​的字节被实际执行。换句话说,每个区块大约有21个字节发挥了实际作用。

字节访问比例分布图 区块访问比例分布图 区块效率分布图

这些数据表明,大量未使用的代码拖累了系统效率。代码分块能够大幅减少浪费,提升性能。

权衡与未来优化

调整区块大小可以微调这一过程。更小的区块(例如15字节)可能提升利用率,但会带来更深的 Merkle 树和更多的哈希运算,增加复杂度。这需要权衡!另外,当前操作如 code-sizecode-copy 会强制加载完整字节码,但 EIP-2926 计划通过在账户字段中加入代码大小来解决,降低成本。

这对 Meme Token 及更广泛领域的意义

Meme Insider,我们致力于让你了解可能影响 meme 代币及更广泛加密领域的技术动态。通过代码分块实现的高效以太坊扩展,有望降低 Gas 费,加快交易速度,使 meme 币的发行和流通更便捷。此外,支持无状态客户端意味着更多节点能加入网络,增强去中心化——这对 meme 代币社区来说绝对是个利好!

深入探索

想要更深入了解细节?点击 这里 查看完整分析、图表和更多数据。代码分块是个改变游戏规则的技术,我们也期待以太坊未来的发展。你怎么看?准备好见证它的实际应用了吗?欢迎在下方留言分享你的想法!

你可能感兴趣