erc6551
# ERC6551
为nft绑定一个账户,然后可以发送相关资产到这个账户,只有这个nft的拥有者才可以操作这个账户
# EIP 以太坊潜在新功能或流程提出建议的标准
- EIP-1559(gas销毁)
- EIP-1014(CREATE2指令)
# ERC 以太坊征求意见稿
erc是eip其中一个分类,更加侧重于应用层 如ERC20,ERC721,ERC6551
# 特点
- TBA (Token Bound Accounts)
- 可组合性,可拓展性
- 支持账户抽象
# 注册
createAccount - 给定 implementation 地址部署一个ERC-721代币绑定账户 account - 一个只读函数,根据 implementation 地址计算ERC-721代币绑定账户地址
# 实现原理
注册合约 aaount方法,在创建账户之前就可以把这个地址计算出来 createAccount
- 代币绑定账户(TAB)合约
# 安全考虑
欺诈
- nft和代币捆绑销售过程中,持有者可以转移资产,但可以通过nonce变化来解决
解决
- 将当前代币绑定账户的nonce附加到市场订单上。如果账户的nonce自订单下达以来发生了变化,请视为该报价无效。此功能需要在市场层面上得到支持。
- 在完成订单时,附上一份资产承诺清单,这些资产预计会保留在代币绑定账户中。如果自订单下达以来,任何已承诺的资产已从账户中移除,请视为该报价无效。这也需要由市场实施。
- 通过外部智能合约将订单提交到分散市场,该合约在验证订单签名之前执行上述逻辑。这样可以实现安全的转账,无需市场支持。
- 在代币绑定账户实现中,实施一个锁定机制,防止恶意所有者在账户被锁定时提取资产
所有权循环 将owner转移到tba里面 如果创建了所有权循环,所有存放在代币绑定账户中的资产可能会变得无法访问。最简单的例子是将ERC-721代币转移到其自己的代币绑定账户中。如果发生这种情况,ERC-721代币和存储在代币绑定账户中的所有资产将永久无法访问,因为代币绑定账户无法执行转移ERC-721代币的交易。 可以在任何具有n>0个代币绑定账户的图中引入所有权循环。由于需要无限的搜索空间,链上防止这些循环是很难强制执行的,因此超出了本提案的范围。鼓励应用客户和账户实施采纳此提案的措施,以限制所有权循环的可能性。
# 优秀文章
编辑 (opens new window)
上次更新: 2024/12/19, 23:13:33