最近关于提高以太坊区块 Gas 上限的讨论非常多。有些人基于摩尔定律主张增大区块大小,有些人基于个人直觉,有些人则只是在随意散布消息,还有些人担心其他链如 Solana 会在用户广泛采用方面超越以太坊。
接下来,我想展示一些图表和数据,这可能有助于我们做出一个在不影响以太坊去中心化的前提下最大化 Gas 上限的决策。
从最初讲起
与比特币不同,以太坊没有固定的区块大小限制,而是依赖于一种灵活的区块大小机制,这种机制由某种单位 "gas" 来衡量。在以太坊中,Gas 是一个衡量执行操作(如交易或智能合约)所需计算量的单位。以太坊中的每项操作都需要一定数量的 Gas 来完成,每个区块都有一个 Gas 上限,这决定了一个区块可以包含多少操作。
自那时起,以太坊的区块 Gas 上限保持不变,截至 2024 年,仍然是每个区块 3000 万 Gas。
我们准备好增加区块大小了吗?
最近,一些人对以太坊的 Gas 上限表示担忧,并要求将其增加。在 Reddit 上的最新以太坊基金会 AMA 中,Vitalik 表示考虑了将 Gas 上限增加 33% 至 4000 万的想法。他的推理基于摩尔定律,该定律指出微芯片上的晶体管数量大约每两年翻一番,从而使得计算能力相应增加。这一原则表明,网络性能,包括处理和执行交易的能力,也可以随时间增加。
来自以太坊基金会的研究人员 Dankrad 和 Ansgar 也支持在评估 Dencun 升级后的情况后增加 Gas 上限的想法。此外,以太坊基金会的 Pari 发表了一篇帖子,探索潜在的 Gas 上限增加途径。像 Geth 的 Peter 和 Marius 这样的其他人则对增加 Gas 上限表示担忧,特别是在没有适当的工具/监控到位的情况下。这些担忧主要和这些问题相关:加速状态增长、同步时间和重组块率。
区块大小是什么?
区块的大小可以通过两种方式衡量:
Gas 使用量
区块大小(以字节为单位)
虽然这两种衡量方式相关联,但必须独立考虑。
例如,一个包含许多非零 calldata 字节的区块在字节大小上可能很大,而实际的 Gas 使用量 (每非零字节需要 16 Gas) 可能仍然相对较小。
像以太坊这样的区块链,提高区块 Gas 上限是最直接和明显的扩容方式。更高的上限意味着更多的数据空间。然而,这也意味着需要每个运行全节点的人传播和下载更大的区块。如上图所示,“最坏情况(即前面通过计算得出的最大区块大小)”下的区块大小与区块 Gas 上限的增加大致呈线性关系。通过创建塞满尽可能多的非零字节 calldata 交易的区块,就可以达到这样的最大区块大小。
接下来,让我们看看另一个影响因素 —— 以太坊的定价机制。在当前的例子中,具体就是目前被设定为 16 Gas 的非零字节 calldata 的开销: