自选
我的自选
查看全部
市值 价格 24h%
  • 全部
  • 产业
  • Web 3.0
  • DAO
  • DeFi
  • 符文
  • 空投再质押
  • 以太坊
  • Meme
  • 比特币L2
  • 以太坊L2
  • 研报
  • 头条
  • 投资

免责声明:内容不构成买卖依据,投资有风险,入市需谨慎!

伊斯坦布尔硬分叉或引发以太坊合约故障

2019-09-06 21:05:50
收藏

以太坊核心开发者会议:EIP 1884引发的争议与应对

在8月23日的以太坊核心开发者会议上,Martin Holst Swende对以太坊改进提案(EIP)1884的影响直言不讳。EIP 1884是第八次以太坊硬分叉中的六项改动之一。“是的,我们知道理论上这会破坏一些东西,”他在总结问题时说道。

在两周前讨论了EIP 1884之后,核心开发者们今天决定,测试网硬分叉将于10月2日左右进行,但他们拒绝为主网设定区块编号,以防破坏程度超出预期。

EIP 1884的实质与挑战

具体而言,EIP 1884将提高低价操作码(即智能合约中的指令)的Gas成本。这样做的理由很直接:随着以太坊网络规模的扩大,某些去中心化应用(dapp)使用的智能合约消耗了大量计算资源,但支付的Gas成本相对较低,无法弥补其消耗。

根据Swende撰写的EIP,这种差异带来了安全漏洞:“它可能被用于攻击,通过用低价操作填充区块,导致区块处理时间过长。”提案进一步指出这一改动的实际意义:“低价操作码会导致区块Gas限制的失衡,有时区块处理得很快,但其他Gas使用量相似的区块却处理得很慢……如果操作是平衡的,我们可以最大化区块[Gas限制],并拥有更稳定的处理时间。”

因此,提高Gas限制是合理的。然而,问题在于,某些合约的编码方式依赖于Gas成本保持不变。Swende指出,这并不是最佳实践。毕竟,2016年底取代The DAO的Tangerine Whistle硬分叉将某个操作码的Gas成本从50提高到了200。智能合约开发者理应假设成本可能会再次上涨。

潜在影响与开发者担忧

Swende还指出,EIP 1884实施后,默认功能(智能合约用于转移以太坊的一种方法)也可能失效,导致钱包无法使用或只能支付低于特定限额的款项。

在8月23日的会议上,Parity Technologies的Wei Tang表达了他的担忧。他在会议中以及随后的推文中提出,开发者应采取步骤避免在伊斯坦布尔硬分叉之前意外冻结合约。他主要推动了向后兼容性。

简而言之,应用向后兼容性将在一定程度上保留现有合约的当前Gas成本,同时将新合约的Gas成本调整为硬分叉后的费率。Tang表示:“向后兼容性是以太坊/EVM中可实现的功能。我们没有在伊斯坦布尔硬分叉中实现这一功能,主要是由于时间限制。”他指出,治理问题耗时较长,因此像EIP 1702这样更具实质性的、向后兼容的改动已被推迟到未来的硬分叉。

分歧与共识

核心开发者会议的组织者Hudson Jameson在推特上写道:“可以说,通过这一破坏性改动,‘我们正在撕开创可贴’,以便人们为更剧烈的变化做好准备,比如状态租金管理。”然而,Tang担心“创可贴”可能会撕掉一些“皮肤”。他认为伊斯坦布尔中的EIP大多是“简单的”,但他担心合约失效对公共关系的影响。他在会议中提到了2017年Parity Multisig黑客事件的阴影,该事件促使Parity提出硬分叉以解冻与冻结合约相关的钱包中50万枚ETH。

尽管安全问题一直是推动伊斯坦布尔硬分叉的部分原因,但Tang认为,不花时间追求向后兼容性也有其风险,可能会在网络攻击中显现出来。这可以通过开发看似无漏洞的智能合约,然后提出Gas成本变更使其失效来实现。“如果影响被隐藏,或者核心开发者被说服向后不兼容的变更是可接受的,”Tang表示,“那么恶意实体可能会破坏网络,或者窃取用户资金。”

在今天的会议上,EIP 1884的问题再次被提出,并在一定程度上达成了共识。在Tang重申他的观点后,Swende同意开发者应准备好纠正任何意外后果——但对于那些已经预见到这一变化的开发者所编写的合约,则无需负责。“我当然认为,如果我们破坏了某些东西,我们应该事后修复。是的,”Swende说。“但我认为,在所有情况下,如果只是‘哦,这很难,我们需要升级到新合约,这很麻烦’——我认为这不需要修复。我认为他们需要承受这种痛苦并坚持下去,因为他们需要改变合约的行为。”

展开阅读全文
更多新闻