Vitalik: 柏林升级里 EIP-2929 提高 gas 开销有何意义?

摘要

是的,某些操作码调用将需要更多的gas开销,但必须这样做来提高安全性。

但另一方面,一直以来应该更便宜的操作(存储后加载相同的slot)最终会变得更便宜。

另一个重要裨益是,适度提高gaslimit现在变得更安全。现在限制gaslimit提高的主要原因跟多在于状态大小问题。

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

Vitalik Buterin:区块链和加密货币间存在“紧密联系”,以至于“缺一不可”:11月21日消息,以太坊联合创始人Vitalik Buterin在接受海峡时报采访时表示,考虑到新加坡对加密资产类别持怀疑态度,新加坡在加密货币监管方面的善意尝试可能不会奏效。V神说他很欣赏新加坡对加密行业的支持愿意,但这一切可能都是徒劳的。V神表示:“世界各地的监管机构都希望支持新兴技术,但同时也觉得加密货币‘奇怪和可怕’。由于对加密货币缺乏理解和恐惧,监管机构试图将区块链作为一种独立于加密货币的技术来对待。新加坡的情况就是如此。”V神表示,区块链和加密货币之间存在“紧密联系”,以至于“缺一不可”。

V神称加密社区通常喜欢支持有权势的人,这是愚蠢的。他重申了他对萨尔瓦多去年“自上而下”采用比特币的批评,称这是加密社区做错的一个例子。他说,比特币社区对这一消息感到高兴,却忽视了该国的严峻现实。尽管萨尔瓦多总统Nayib Bukele的政府“不太民主”,不善于“尊重人民的自由”,但该社区还是支持萨尔瓦多。此外,V神设为监管机构可以设置护栏,社区可以“教育用户”。但“可以阻止多少不良活动终究是有限度的”,因为区块链系统的性质要求它对所有人开放。[2022/11/21 22:12:29]

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

VitalHu部署基于区块链的冠状病筛查工具:金色财经报道,加拿大技术公司VitalHub Corp于4月8日宣布首次部署一种基于区块链的冠状病筛查工具DOCit。该工具将由滑铁卢地区名为Sunny Side Home的长期护理机构使用。该工具旨在部署和配置任何筛查或重复任务,从而为护理提供者、运营人员以及国家、省或地区卫生当局制定报告标准。[2020/4/9]

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

动态 | OKB上线新加坡币星交易所及去中心化交易所ViteX:本周,OKB先后上线新加坡币星交易所及去中心化交易所ViteX,并借助他们在新加坡、俄罗斯、东南亚及欧美地区的影响,拓宽海外用户。本月以来,随着价格的增长,OKB市场活跃度明显提高。此前韩国2家交易所,Bitribe和BW也已支持OKB币币交易。

截至目前,OKB开启美元、欧元、韩元、越南盾、印尼卢比等法币通道,并已上线50余个交易所,覆盖了全球141个国家和地区的百万用户。[2020/2/26]

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

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

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

在同一个slot里,任何SLOAD后的SSTORE(或者SSTORE后的SLOAD)都会变得更便宜。这是因为第一次存储读取或写入以及支付了访问存储slot的gas费了,因此该存储slot已经“预热了”,第一次读取和写入都会更便宜;这样,我们需要支付的gas不是800+5000,而是2100+2900(大约),减少了大约800gas。这可能使采用ERC20协议标准代币的转发更便宜。

Self-calling变得更便宜

对预编译的调用变得更便宜(这对于低gas开销的预编译来说特别有价值,这些预编译需要倍调用非常多次,比如ECADD)

添加第一次访问规则是因为当一个账户或存储slot被第二次访问时,该账户或存储slot应该已经在内容里有缓存了,因此就不需要进行昂贵的磁盘访问了。当然,对同一个数值的两次访问也只需要一次的见证条目。

来源|?r/ethereum

作者|VitalikButerin

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-6:80ms