最近,ERC-6551 的讨论热度日增,从「为 ERC-721 赋予新的场景」到「NFT 利用 ERC-6551 炒作」,甚至是「ERC 集成后的实施」等话题都广受关注。然而,我认为,重点并非在于这个标准本身,而是我们要理解,ERC 在以太坊上代表了什么?它是社区正当性的来源吗?
在这里,我就不详细讨论 ERC-6551 的背景了。简单来说,它是一套智能合约标准,可以让NFT持有其他资产,进而创造更多用户场景。
热知识 1:ERC 实际上是应用层标准,并不直接涉及以太坊协议本身。
以太坊改进提案 EIP 在 EIP-1 中清晰地定义为三个大类:标准化 EIP、元 EIP 和信息性 EIP。
其中标准化 EIP 是最常见的,它包括:核心改进(Core)、网络层改进(Networking)、接口层改进(Interface)、应用层标准(ERC)。
具体说来,ERC-6551 标准定义了「注册表」智能合约和账户实现接口,以及两者的参考实现。例如,ERC-6551 定义的注册表智能合约只需要包含创建账户和读取账户地址两个接口,具体如何实现,ERC-6551 给出了参考。
比如,以太坊最常用的代币标准是 ERC-20,它定义了一些基本接口,开发者可以根据自己的需求实现接口的功能,或者直接使用 OpenZeppelin 的开源标准合约。
热知识2:具体的 EIP 或 ERC 提案是有规定写法的(参考 EIP-1 文档),不是 ERC XXX 或 ERCXXX,而是ERC-XXX。而对于非ERC类的EIP,也是同样的 EIP-XXX。
比如 ERC-20、ERC-6551、EIP-3540。
因为 ERC-6551 是一个可以通过智能合约实现的标准,即使在它出现之前,开发者也可以实现类似的功能。然而,有了这个标准,我们就有可能构建一个更大的生态系统,比如钱包和交易市场如何支持。
如果没有 ERC-4337,每个钱包自己实现账户抽象的智能合约也不是不可以,但是就不具备跨钱包和跨应用的可组合性了。如果没有 ERC-20,每个开发者也都可以自己实现代币发行,但是钱包就需要一个个代币接入,带来不必要的额外开发量。
然而,这并不意味着「成为ERC标准」就是成为行业标准的必经之路。因为相较于「Final 状态的 ERC」,「社会共识」和「事实标准」更为重要。
有些人可能认为行业标准必须经过以太坊基金会或 EIP 编辑团队的审查并更改为 Final 状态,才能成为行业标准。但事实上,有些已经成为「行业标准」的可能鲜有人问津,而有些未被标准化的「实践」可能会因为逐渐形成社会共识而成为事实标准。
例如,NFT 就是一种这样的例子,它先有了应用,然后才出现了 ERC 的标准。ERC-721 直到 2018 年 1 月才提交,同年 6 月才更改为 Final 状态,然而,CryptoKitties这个游戏早在 2017 年底就上线了,它也是被公认为第一个使用 ERC-721 标准的应用。
因此,这个逻辑不应是「因为ERC-721成为了标准,所以有了生态和正统性」,而应该是「因为有非同质化代币的需求,CryptoKitties 解决了这个问题,形成的 ERC-721 能解决这个需求,社区因此开始采用这个标准」。这就解释了为什么后来会有更多的非同质化代币标准如 ERC-1155,以满足更多个性化的需求。
总结起来,以下两种可能性都存在,但后者可能更符合实际情况:
1. 拟定标准=>生态
2. 有需求=>提出解决方案=>制定标准=>生态
无论是哪种,核心都是解决用户需求,并且使解决方案能够广泛地被接受和使用,这才是引入新标准的真正目的。
感谢科普,目前看到写EIP ERC 的区别,包括6551实质最简洁清晰的文章