EIP-2929提升部分操作码的Gas开销是为了提高对DoS攻击的抵御能力,同时,适度提高GasLimit变得更安全。
原文标题:《Vitalik:柏林升级里,EIP-2929提高gas开销有何意义?》
摘要
是的,某些操作码调用将需要更多的gas开销,但必须这样做来提高安全性。
但另一方面,一直以来应该更便宜的操作(存储后加载相同的slot)最终会变得更便宜。
另一个重要裨益是,适度提高gaslimit现在变得更安全。现在限制gaslimit提高的主要原因更多在于状态大小问题。
Vitalik:因FTX的中心化性质,其崩溃是不可避免的:11月12日消息,以太坊联合创始人Vitalik Buterin表示,FTX的巨大崩溃是不可避免的,因为它的中心化性质。在被问及FTX和其他加密货币公司今年的崩溃时,V神说:“今年我们看到了大量这样的事情,因为它们的模式从根本上说是坏的”。
Buterin指出,FTX的营销类似于“1930年代独裁者”的“个人主义风格”,这与加密货币精神完全相反。(decrypt.co)[2022/11/12 12:54:33]
柏林硬分叉中引起gas开销变化的EIP有:EIP2565(降低ModExp求模求幂运算的gas开销)、EIP2929(提高SLOAD与CALL的gas开销)、以及EIP2718和2930,用以支持受gas开销增加影响的合约的兼容性,以及为未来的升级铺垫。
以太坊创始人Vitalik提倡加密货币广泛采用社交恢复型钱包:1月11日消息,以太坊创始人VitalikButerin发布博文章提倡加密货币行业应采用一种社交恢复型钱包(socialrecoverywallets),这种新型智能合约钱包可更好的提升加密货币的安全保护。社交恢复型钱包工作原理主要有两部分,第一,只有一个签名密钥可用于批准交易;第二,至少有3个(或更多)监护人,其中大多数可以配合更改帐户的签名密钥。如果用户丢失了签名密钥,那么社交恢复功能就会启动。用户可以直接与监护人联系,要求他们签署一项特殊交易,以将钱包合同中注册的签名公钥更改为新的签名。目前,已实现社交恢复功能的两个主要钱包是Argent钱包和Loopring钱包。不过,这两个钱包都存在两大问题,分别是依赖中继器来解决交易,以及高交易费,但可以通过将生态系统移至第2层协议解决,例如ZKrollups。[2021/1/11 15:51:02]
目前,这些EIP中最重要的是EIP-2929。它的核心内容是:SLOAD的gas开销从800增加到2100,CALL的gas开销(包括STATICCALL、DELEGATECALL和其他操作码)以及外部合约查询(BALANCE、EXTCODESIZE等)从700增加到2600,但这种情况仅会在地址和存储slot在交易里首次被访问时发生。
动态 | Vitalik Buterin 反驳 Tuur Demeester 对以太坊的批评:以太坊创始人 Vitalik Buterin 在 Reddit 上逐条点评和反驳了 Adamant Capital 创始人 Tuur Demeester 此前对以太坊做出的批评。Vitalik Buterin 称,这些批评意见无视以太坊在研究和开发方面取得的进展,忽视了以太坊社区在过去一年中规模的扩张和专业度的提升。此前,Tuur Demeester 连发 50 条推文,历数他眼中以太坊的种种短板,认为以太坊最多是一个科学实验,其目前市值已经跌至 130 亿美元,依然估值过高,这一系列推文引发大量讨论。[2019/1/1]
这样做的目的是进一步提高对DoS攻击的抵御能力:早期的研究显示,以太坊协议目前最大的DoS漏洞在存储访问,而且是有可能可以创建一些区块对大量账户作简单重复的访问,处理时间可能长达80秒。解决办法是一个简单的快速修复:使这些操作持续更长的时间(存储访问需要磁盘访问)以消耗更多的gas,最终DoS问题会被削弱大概3倍。与此同时,客户端团队进行了一些出色的工作——实现磁盘存储缓存、减少存储加载所需的数据库查询次数、以及更长远地堵住这个漏洞。
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应该已经在内容里有缓存了,因此就不需要进行昂贵的磁盘访问了。当然,对同一个数值的两次访问也只需要一次的见证条目。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。