以太坊Glamsterdam升级恐让旧合约失效,开发者提两套修正草案


以太坊下一次大型升级Glamsterdam 调高了建立与存取链上资料的Gas 费用,可能让部分已上线、无法修改的智能合约失效。两名开发者11 月8 日各自向以太坊改进提案库提交草案,Leo Glisic 的EIP-8488主张旧合约沿用现行费率,Giulio Rebuffo 的草案则让所有人付新价,但合约内部仍照旧规则运作。

EIP-8037 把建立新帐户的Gas 从2.5 万调到18.36 万

问题出在Glamsterdam 纳入的EIP-8037与EIP-8038。 Gas 是以太坊替每一步运算计价的单位,两项提案提高了新增与读写链上状态的收费,目的是控制状态膨胀,让网路之后能安全调高区块的Gas 上限。

依EIP-8037 规格,建立一个新帐户的费用从25,000 单位调到183,600 单位,约为7 倍;部署合约的基本费也比照新帐户,从32,000 单位调到183,600 单位,还不含程式码储存与执行费用。

许多合约写死了「呼叫别的合约要给多少Gas」,费用一变,原本够用的额度可能不够,呼叫就会失败。这类合约上线后多半无法更新。

Hoodi 测试网10 月喊卡,资安研究员:现有版本不该上线

这个风险已经拖慢升级进度。资安公司ChainSecurity 10 月示警后,以太坊基金会把原定10 月26 日在Hoodi 测试网的升级延后(相关报导)。

据CoinDesk 报导,资安研究员pcaversaccio 在X 上表示,Glamsterdam「以目前的形式就是不该上线」,他说两周前已向核心开发者提出Gas 调涨的问题。

匿名开发者banteg 则说,以太坊官方的repricing-impact分析已列出约20 万个受影响合约,但他发现方法上有多处问题,实际漏算的更多,而且会影响数个知名协议的部署与运作,「不只是一些乱用操作码的开发者」。

EIP-8488:旧合约永久沿用旧费率,新合约改用V2 操作码

Glisic 的EIP-8488 把以太坊虚拟机的指令集拆成两套。升级后新部署的合约只能使用V2 操作码,套用EIP-8037 与EIP-8038 的新费率;已部署的旧合约则无限期沿用Glamsterdam 之前的收费。

草案也在V2 里拿掉GAS、GASLIMIT 这类让合约读取剩余Gas 的操作码,避免新合约再把费用假设写死。可升级的协议换掉实作合约时会自然转到新规则,网路可以随V2 占比提高,逐步调高Gas 上限。

Rebuffo 草案:同一笔交易跑两个计量器

Rebuffo 的草案让每笔交易从同一个Gas 上限开出两个计数器。一个照旧规则计算,决定合约在执行时看得到、可以分配的Gas;另一个照新规则计算,决定使用者实际付的手续费。

如果计费那一侧的Gas 不够,整笔交易会直接中止,合约无法拦截。草案写明,确切的收费表、退还规则与区块计算方式都还没定,「这个设计还没有任何执行层客户端实作,也没跑过共识测试」,目前只是供讨论。

两份草案都没有时程,下个开发网最快11 月中旬

两份提案都还是草案,Rebuffo 的版本连提案编号都尚未分配,也都没有设定目标日期。依10 月29 日共识层开发者会议(ACDC #190)的会议摘要,Glamsterdam 下一个开发网最快11 月16 日至20 日上线,这个时程是在两份草案出现之前排定的。

本文链接地址:https://www.wwsww.cn/ytf/42381.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。