BlockBeats 消息,4 月 8 日,针对昨日 Gemholic 项目资金被卡的问题,zkSync 发布在社交媒体上发文表示称,项目方想分享有关更好地支持遗留 Solidity 功能的更新,transfer() 和.send() 将可完全像在 EVM 中一样工作。该解决方案不涉及任何类型的重组或再生。这将是一个正常的协议升级。此外,在 zkSync Era 上,value>0 的调用通过 MsgValueSimulator 系统合约,消耗一些 gas。这就是为什么在 zkEVM 上不提供 gas 而调用 transfer 会失败的原因。因此作出以下更改:对没有最低 gas 需求的 MsgValueSimulator 的调用现在至少需要 2*64*pubdata_bytes + K ergs。其中,需要 pubdata 来传输值,并且 K 将被选择得足够高以处理传输。在 MsgValueSimulator 结束时,将确保至少花费 2*64*pubdata_bytes + K'来处理 transfer(如果花费的 ergs 更少,则退款将退还给调用者)。K - K'将是 zkSync Era 津贴。为了防止重入,zkSync 将确保存储写入成本至少为 K - K'ergs。这种方法与以太坊非常一致:当 value>0 并授予一些津贴时,向用户收取更多费用。实际上,这意味着津贴将启用一次且仅支持一个存储更新,除此之外别无其他(与 EVM 完全相同)。此更改可能会略微影响交易成本的估计和退款后的实际交易成本。但是,未来估计费用与实际费用之间的差距将大大缩小。zkSync 补表示,上述更新需要一些时间才能实施,并会在下一次协议升级时经过多次测试、审计和社区审查后部署。
领取专属 10元无门槛券
私享最新 技术干货