AIP-45 提议了一种机制,允许 Aptos 用户将拥有的任何对象单方面转移到一个全局销毁地址,从而解决用户账户上出现不希望的内容的问题。这使得用户能够通过将不需要的数据的所有权转移到安全销毁地址,来管理与其账户关联的数据。此提案旨在缓解接收未经请求内容的问题,并已选择为一种安全手段,可以在不破坏其他应用程序的情况下删除与用户账户关联的内容。
作为对象的副产品,用户可能会获得与他们在 Aptos 上的账户地址相关联的不良且无法移动的内容。目前,Aptos 上的大多数应用程序通常会将与账户关联的所有 数字资产 和 可替代资产 同时展示给账户持有人和那些查看账户的人。由于对象可以被渲染为不可删除的,也被称为 灵魂绑定,用户可能会成为不想要的空投的受害者。为了缓解这个问题,我们建议利用一种机制,允许用户单方面将任何拥有的对象转移到一个全局销毁地址。
作为这个 AIP 的结果,用户将能够通过将不想要的数据的所有权转移到一个安全的销毁地址,从而管理与他们在 Aptos 上的账户相关联的数据,以此来移除不想要的数据与他们账户之间的直接链接。为了做到这一点,所有的对象都将能够被转移到销毁地址。
如果我们延迟实施这个,用户将需要等到他们的应用程序采用允许列表框架来渲染内容。
这仅仅是一种缓解措施,受害者不能选择不接收未经请求的内容,也不能自动移除这些内容。销毁也不会导致销毁者收到退款,但这样做的成本预计可以忽略不计,也就是转移数字资产的成本。
这将影响以下各方:
请注意,由于这使得主要可替代资产存储的所有者可以更改,因此主要可替代资产可以访问一个特殊的 unburn
函数,以便原始所有者调用 primary_fungible_store::transfer
或 primary_fungible_store::withdraw
时可以声明所有权。
选择销毁地址解决方案是因为它提供了一种安全的手段来删除与用户帐户相关联的内容,而不会潜在地破坏其他应用程序。
请注意,当前的提案是使用 unburn
函数来允许 primary_fungible_store
回收意外转移的对象。这可以改为调用 primary_fungible_store
的一个替代调用,它明确具有 unburn
,但这要求钱包或其他应用程序采用 unburn
功能。检查所有权的成本应该可以忽略不计,因为在提取资产之前必须检查所有权。
销毁地址定义为 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
,或者说是最大的有效无符号 256 位数字。在接受此 AIP 后,将为销毁地址保留一个特殊的 Aptos 名称。
以下新函数将被添加到 aptos_framework::object
中:
`public entry fun burn<T: key>(owner: &signer, object: Object<T>)`
// 这将验证 `owner` 是否是对象的实际所有者,然后将 `ObjectCore::owner` 字段更新为销毁地址。
This will verify that the `owner` is the actual owner of the object and then update the `ObjectCore::owner` field to the burn address.
`public(friend) entry unburn<T: key>(original_owner: address, object: Object<T>)`
// 这将验证当前所有者是否是销毁地址,然后将 `ObjectCore::owner` 字段更新为 `original_owner`。
This will verify that the current owner is the burn address and then update the `ObjectCore::owner` field to the `original_owner`.
在 aptos_framework::primary_fungible_store
中,函数 transfers
和 withdraw
将在转移之前检查存储所有权,如果所有者是销毁地址,则调用 object::unburn
。
彻底的 Move 单元测试,包括:
TransferRef
的所有者回收资产。DeleteRef
删除已销毁资产的能力。已经对接收不需要的资产的现状分享了很多看法。坦率地说,除了 movekevin,没有人想要一个 noob noob。
这允许 灵魂绑定 的资产有效地解耦。因此,用户可能会声明多个 灵魂绑定 的资产。当然,灵魂绑定 的资产可能需要由一个索引器来监控,该索引器会识别出用户可能已经收到了一件物品,即使它不再附加到他们的帐户上。
未来是一个完全在链上管理的去中心化允许列表。
这将在 1.7 分支剪切之前可用,如果需要该功能,则可以包含在更早的升级中。
最低限度的期望是,这应该作为 1.7 框架更新的一部分发布。
这引入了对系统的最小更改,并且不暗示任何已知的安全风险。
- 原文链接: github.com/aptos-foundat...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!