在以太坊生态中,Gas Limit 是一个至关重要的概念,它不仅是用户支付交易费用的单位,更直接决定了每个区块能容纳多少笔交易,当 Gas Limit 设置过高时,可能导致区块膨胀,影响网络同步效率;设置过低时,则会造成交易拥堵,用户需要支付更高的Gas费才能被打包,这个看似能左右网络“路况”的关键参数,究竟是由谁决定的呢?

以太坊的Gas Limit并非由某个中心化机构或个人决定,而是由一个动态的、社区驱动的共识机制来调节,我们可以从两个层面来理解这个决定过程:区块层面的Gas Limit(继承值)网络层面的Gas Limit(目标上限)

区块层面的决定者:区块生产者(验证者)

每个被创建的以太坊区块,都有一个属于自己的gasLimit字段,这个值并非凭空产生,而是直接继承自其父区块gasLimit

  1. 继承与微调: 当一个验证者(在PoS机制下)或矿工(在PoW机制下)准备打包一个新区块时,新区块的gasLimit默认会被设置为其父区块的gasLimit,这并不意味着它完全不能改变,验证者可以在父区块gasLimit的基础上进行有限的调整

  2. 调整规则: 以太坊协议规定了调整的幅度,以防止剧烈波动:

    • 最大增幅:新区块的gasLimit最多可以在父区块的基础上增加 parentGasLimit / 1024(即约0.1%),这确保了gasLimit不会在短时间内无限制地膨胀。
    • 最大减幅:同样,新区块的gasLimit最多可以减少 随机配图