织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

柏林升级中 EIP-2929 提高 Gas 开销有何意义?

时间:2021-04-25 21:18来源:未知 作者:admin 点击:
原文标题:《Vitalik:柏林升级里,EIP-2929 提高 gas 开销有何意义?》 撰文: Vitalik Buterin 翻译:ETH 中文站 摘要 是的,某些操作码调用将需要更多的 gas 开销,但必须这样做来提高安全

原文标题:《Vitalik:柏林升级里,EIP-2929 提高 gas 开销有何意义?》
撰文: Vitalik Buterin
翻译:ETH 中文站

摘要

  • 是的,某些操作码调用将需要更多的 gas 开销,但必须这样做来提高安全性。
  • 但另一方面,一直以来应该更便宜的操作 (存储后加载相同的 slot) 最终会变得更便宜。
  • 另一个重要裨益是,适度提高 gas limit 现在变得更安全。现在限制 gas limit 提高的主要原因更多在于状态大小问题。

柏林硬分叉中引起 gas 开销变化的 EIP 有:EIP 2565 (降低 ModExp 求模求幂运算的 gas 开销 )、EIP 2929 (提高 SLOADCALL 的 gas 开销)、以及 EIP 2718 和 2930,用以支持受 gas 开销增加影响的合约的兼容性,以及为未来的升级铺垫。

目前,这些 EIP 中最重要的是 EIP-2929。它的核心内容是:SLOAD 的 gas 开销从 800 增加到 2100,CALL 的 gas 开销 (包括 STATICCALLDELEGATECALL 和其他操作码) 以及外部合约查询 (BALANCEEXTCODESIZE 等) 从 700 增加到 2600,但这种情况仅会在地址和存储 slot 在交易里首次被访问时发生。

这样做的目的是进一步提高对 DoS 攻击的抵御能力:早期的研究显示,以太坊协议目前最大的 DoS 漏洞在存储访问,而且是有可能可以创建一些区块对大量账户作简单重复的访问,处理时间可能长达 80 秒。解决办法是一个简单的快速修复:使这些操作持续更长的时间 (存储访问需要磁盘访问) 以消耗更多的 gas,最终 DoS 问题会被削弱大概 3 倍。与此同时,客户端团队进行了一些出色的工作——实现磁盘存储缓存、减少存储加载所需的数据库查询次数、以及更长远地堵住这个漏洞。

gas 开销重新定价加上这些客户端的改善使得现有的区块链更安全,也使得提供 gas limit 比现在更加安全。在 EIP-2929 后,避免大幅 gas limit 提升的主要原因实际上不再是 DoS 攻击问题,而是状态大小的增加 (这两方面互相影响:当存储负载变大后存储加载消耗的 gas 会更多)。因此,状态过期和无状态会变得非常重要,甚至可以说是“合并” 后的首要任务。

这次的重新定价产生的第二大长期裨益是无状态验证的见证大小理论上最大能减少 3 倍。对于代码读取,我们还需要一次重新定价 (类似于:每访问 31 字节代码需要 500 gas),但这一点可以在未来实现。

请注意:这份 EIP 只增加每笔交易第一次访问的 gas 开销。往后的访问实际上是更便宜的 (任何情况下都是 100 gas)。另外,对预编译的调用一直只消耗 100 gas,包括首次调用。这样做有带来以下正面影响:

  • 在同一个 slot 里,任何 SLOAD (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容