CIP-131(Retain Whitelist on Contract Deletion)详细介绍


CIP编号:131
标题:在合约删除时保留白名单
作者:Chenxing Li(@ChenxingLi
状态:最终版
类型:规范改变
创建日期:2024-01-11


本文是整理好的CIP-131中文介绍,供大家交流讨论。

CIP-131详情链接:https://github.com/Conflux-Chain/CIPs/blob/master/CIPs/cip-131.md

内容

此 CIP 旨在解决 Conflux 区块链中发现的有关合约删除时清除合约白名单功能的漏洞。目前,当一个合约被删除并由新合约在同一地址替换时,新合约不需要继承前一个合约的白名单。然而,由于解决现有漏洞面临技术挑战且此功能的使用有限,该提案建议删除此功能。

摘要

在最近对 Conflux 执行层重构的过程中,发现了两个与“在删除合约时清除合约白名单”功能有关的漏洞。在现有的Conflux MPT(Merkle Patricia Tree)版本中修复这些漏洞具有挑战性。

该功能最初引入时存在争议,旨在改善用户在极端情况下的体验,特别是当一个合约被终止并在同一地址部署另一个合约时,新的部署者可以避免继承旧合约的白名单。

此 CIP 建议删除此功能。当一个合约被删除时,它的白名单将被保留。

动机

鉴于解决此功能带来的错误行为的难度较大,我们建议将其移除,主要有以下 3 个原因。

首先,目前没有生态项目依赖于该功能,这表明它的移除不会对当前的运营产生不利影响。

其次,以太坊社区对消除类似的“终止合约”操作码的考虑,表明此类功能可能会过时。

第三,即使没有此功能,在同一地址的合约重新部署时“继承义务(如白名单)”仍然是合理的。

规格说明

在给定的区块编号之后,合约删除时不会移除白名单。

后向兼容性

此改动将改变原有系统规范。

版权

此提案遵守CC0 协议,所有版权及相关权利不设限。