erc6551

学习笔记web3

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个代币绑定账户的图中引入所有权循环。由于需要无限的搜索空间,链上防止这些循环是很难强制执行的,因此超出了本提案的范围。鼓励应用客户和账户实施采纳此提案的措施,以限制所有权循环的可能性。

优秀文章