深入解析 ERC-6551 底层原理_比特币:POE

撰文: @0xCygaar 翻译:MetaCat

本文是对 ERC-6551 如何使任意 NFT 拥有任何类型加密资产的简要说明。

让我们从大多数 NFT 的实际情况开始。

以太坊上的 NFT 只是智能合约中的数据条目,这些条目告诉你谁拥有 NFT、谁可以转移 NFT,以及 NFT 的元数据是什么样的。以下是返回有关给定 NFT 信息的函数:

获取给定 NFT 的 Owner

获取给定 NFT 的 tokenURI

金色晨讯 | 4月28日隔夜重要动态一览:21:00-7:00关键词:Visa,马斯克,欧洲投资银行

1.Visa首席执行官:Visa正大举进入加密货币领域;

2.美国商会前官员担任Cash Cash比特币政策负责人;

3.马斯克:比特币通过了特斯拉的压力测试;

4.FBI:涉及加密货币的商务电子邮件入侵不断增加;

5.美国蒙茅斯县通过出售查获的比特币获利250%;

6.Coinbase与DCG入选《时代周刊》年度百大影响力企业名单;

7.欧洲投资银行将在以太坊注册数字债券;

8.富国银行表示,将关注客户对加密货币的需求和愿望;

9.穆长春:数字人民币可控匿名的特征有助于维护金融安全;

10.以太坊2.0质押地址余额超过400万枚。[2021/4/28 21:05:35]

金色晨讯 | 3月7日隔夜重要动态一览:21:00-7:00关键词:印度财长、Mark Cuban、刺激法案、BTC锚定币、推特CEO

1. 印度财长:政府鼓励对加密货币进行实验

2. Mark Cuban:达拉斯小牛队已完成超2万个狗狗币交易

3. 美国众议院将于下周二就参议院版本的经济刺激法案进行投票

4. 以太坊上BTC锚定币总发行量为17.40万枚

5. 报告:比特币钱包Electrum被注入恶意代码

6. 推特CEO推文NFT报价升至100万美元,由孙宇晨报价[2021/3/7 18:22:18]

获取给定 NFT 被 approve 的钱包地址

金色晚报 | 1月2日晚间重要动态一览:12:00-21:00关键词:反、蚂蚁金服、南京市委、以太坊升级、加密征税法案

1.“区块链行业应用反标准”起草小组正式成立。

2.蚂蚁金服已申请新加坡数字银行牌照。

3.南京市委一号文件:推动产业协同发展强链。

4.广东上线中小企业融资平台,发放全国首笔无抵押区块链贷款。

5.腾讯发布白皮书指出区块链、数字货币成A股炙手可热概念。

6.陈纯院士:中国区块链赋能各行业亟需解决四项核心技术。

7.韩国加密征税法案有望在2020年上半年出台。

8.国际货币基金组织建议菲律宾央行收集跨境加密货币交易数据。

9.以太坊主网已激活缪尔冰川升级,继续推迟难度炸弹600天。[2020/1/2]

金色晨讯 | 12月28日隔夜重要动态一览:21:00-7:00关键词:瑞士、天津、无锡、互金协会、 以太坊开发者

1. 瑞士总统:Libra需要进行修改才能获得批准。

2. 天津市委常委:要运用区块链等科技手段实现“一网统管”。

3. 无锡数字经济实施意见中重点任务包括培育区块链等三大前沿产业。

4. 互金协会:开放银行应综合运用区块链等新一代数字技术,实现监管科技的升级。

5. 兰州市与北京中软国际签约,合作框架协议内容涵盖区块链等领域。

6. 澳本聪:没有私钥访问权限,无法归还比特币。

7. CipherTrace CEO:几乎每家日本银行都采用Ripple的XRP。

8. 美国检察官办公室拒绝保释以太坊开发者Virgil Griffith。[2019/12/28]

当你 mint NFT 时,你只是设置数据条目所有者的值(钱包地址)。当你转移 NFT 时,你只是改变了所有者的值(钱包地址)。下面两张图是 ERC721 合约中所有权设置相关代码:

ERC721 合约中的 mint 函数

ERC721 合约中的 transfer 函数

大多数 NFT 合约就是这么简单。正如我们在上面看到的,没有代码能够使这些 NFT 拥有其他 NFT、ETH 或 ERC20 代币。

智能合约无法更改,那么 ERC-6551 如何让任何 NFT 拥有其他资产呢?

答案是:注册表 + 合约钱包。

智能合约钱包(CA 钱包)只是一个可以接收 NFT、ERC20 或 ETH 并另外执行任意交易的智能合约。这些合约钱包都有自己的地址(就像所有智能合约一样)。

如果你不熟悉注册表,你可以将它们视为存储信息的单个智能合约。ERC-6551 注册表包含:说明哪些 NFT 映射到哪些智能合约钱包的信息,它还使用代理创建智能合约钱包(了解即可并不重要)。

注册表合约代码?

https://vscode.blockscan.com/polygon/0x02101dfB77FDE026414827Fdc604ddAF224F0921

例如,Azuki #4567 可能映射到位于地址 0x243F4E0d556EFD1006c52E85A6ddFb6748A4C0b7 的智能合约钱包。一个 NFT 可以控制多个合约账户,但每个合约账户只属于一个 NFT,详见下图:

好了,我们现在有了一个注册表,可以为 NFT 创建钱包并将 NFT 和钱包关联在一起,这款 NFT 绑定钱包现在可以作为普通钱包使用。这个钱包可以转移 ETH、购买 NFT 或 Swap ERC20 代币,当然必须由 NFT 所有者发起交易。

我想重申一下,这些与 NFT 绑定的钱包是智能合约。它们与多签钱包类似,必须有人调用合约上的函数才能让钱包执行某些操作。对于 ERC-6551 钱包,NFT 所有者将在钱包上调用 executeCall 来启动交易。

那么这些 NFT 绑定钱包有什么特别之处?当控制 NFT 的所有者发生变化时,钱包的控制权也同步变化。控制 NFT 意味着你控制 NFT 绑定钱包中的一切,NFT 将从单一资产转变为捆绑的资产包。

TL;DR :ERC-6551 使所有 NFT 能够通过使用注册表和智能合约钱包来拥有一个钱包。注册表创建合约钱包并将该合约钱包关联到 NFT。合约钱包可以拥有其他资产,只有 NFT 的所有者才能在此钱包上执行交易。

MetaCat

个人专栏

阅读更多

金色早8点

Odaily星球日报

金色财经

Block unicorn

DAOrayaki

曼昆区块链法律

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-16:261ms