禁用对象销毁

AIP-99提案旨在禁用Aptos区块链上用户拥有的对象的安全销毁功能,以降低复杂性并避免意外后果。虽然新对象将无法被销毁,但先前已销毁的对象仍然可以被恢复。此举旨在简化与Soulbound对象相关的逻辑,并为开发者提供更清晰的开发环境,例如更容易实现资产的白名单功能。

AIP-99 - 禁用用户自有对象的安全销毁

摘要

安全销毁最初在 AIP-45 中描述,它允许用户 tombstone 他们的对象并移除 不可删除对象的直接链接,也称为 灵魂绑定 对象到账户。此 AIP 旨在禁用安全 对象销毁,因为它导致了额外的复杂性,有时还导致了意想不到的后果。尤其是,当销毁地址管理对象,而所有者是原始所有者时,这种行为变得 不太清晰。被销毁对象的所有者仍然可以取消销毁并恢复他们的tombstoned对象。

目标

作为此 AIP 的结果,用户仍然可以取消销毁他们已销毁的对象,但将无法销毁任何新的 对象。这将减少复杂性和一些相关的有趣的极端情况。

如果我们延迟实施,可能会有更多已销毁的对象,由于围绕已销毁对象的细微行为,这会增加新协议的风险。

范围外

由于用户无法选择不接收未经请求的内容,因此这将删除之前的缓解措施。钱包或其他 平台将需要提出一种标准化的方式来隐藏不需要的项目。

此外,我们目前不会阻止取消销毁现有的已销毁对象。

动机

这里的目的是移除销毁以防止混淆,以及围绕 灵魂绑定 对象更改所有者的复杂性。 围绕已销毁对象存在一些细微的行为,移除此功能可以防止这些行为。 最初,这主要是为了能够隐藏不需要的 灵魂绑定 NFT。但是,灵魂绑定 对象有更多的用例 (例如,主要的可替代资产存储),这会使围绕它们的功能复杂化。移除此 功能简化了构建者的情况,并且可以更容易地完成诸如可替代资产上的允许列表之类的事情。

如果我们不接受此提案,围绕 灵魂绑定 对象的一些功能将需要额外的复杂性,甚至可能无法绕过销毁。

影响

这会影响以下各方:

  • 计划销毁拥有的 灵魂绑定 对象的用户
  • 使用 burnunburn 功能的智能合约开发者

这不会影响以下各方:

  • 已经销毁拥有的 灵魂绑定 对象的用户。他们仍然可以取消销毁它们。

替代解决方案

没有其他替代解决方案。

规范

所有对 aptos_framework::object::burn 的调用现在都将中止,错误代码为 EBURN_NOT_ALLOWED = 10。此外,该 函数将被标记为 #[deprecated],并且所有输入都将以 _ 为前缀,以标记为未使用。

module aptos_framework::object {
    #[deprecated]
    public entry fun burn<T: key>(_owner: &signer, _object: Object<T>) {
        abort EBURN_NOT_ALLOWED
    }
}

取消销毁将仍然保持不变,并允许用户在已销毁对象上调用。

以下新函数将添加到 aptos_framework::object

module aptos_framework::object {
    #[test_only]
    public fun burn_object<T: key>(owner: &signer, object: Object<T>) {}
}

这将包含 aptos_framework::object::burn 的先前实现,用于测试已销毁 对象。

参考实现

完整的实现已在此处完成,带有 Move Prover 规范 https://github.com/aptos-labs/aptos-core/pull/14443

测试(可选)

所有现有的 Move 单元测试,都带有新的 #[test_only] 函数,以确保 unburn 仍然正常工作,以及

  • Move Prover 规范检查新的销毁中止行为
  • Move Prover 规范检查测试专用行为是否与之前的销毁行为匹配
  • Move 单元测试检查新的销毁中止行为

风险和缺点

之前的 AIP-45 捕获了拥有此 AIP 的主要风险,包括拥有不需要的 灵魂绑定 NFT。此外,如果任何智能合约围绕 burn 函数构建,它们可能会停止工作。

但是,考虑到 burn 本质上只是将对象移动到带有 Tombstone 的不同地址,因此应该 几乎没有与删除此功能相关的风险。

这仍然允许用户 unburn 已经销毁的对象,这意味着用户仍然可以访问他们之前 销毁的项目。

安全考虑

此 AIP 的结果应该比允许 burn 更安全。销毁将对象移动到由销毁 地址拥有的状态,这可能会导致一些围绕按所有者列入允许列表的不良副作用。通过确保对象始终 由原始所有者拥有,它应该可以缓解那里的任何问题。

未来潜力

未来是钱包应该提供自己的允许列入显示的资产,或者提供一个去中心化的 允许列入钱包中显示的资产的列表。

时间线

建议的实施时间线

预计这应作为批准后的下一个版本的一部分发布。

建议的开发者平台支持时间线

  • aptos.dev 网站的任何文档中显式删除 burn

建议的部署时间线

  • 建议将其作为 Aptos 1.20 版本的一部分进行部署。

开放性问题(可选)

  • 原文链接: github.com/aptos-foundat...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
aptos-foundation
aptos-foundation
江湖只有他的大名,没有他的介绍。