EIP 的全称是以太坊改进提案 (Ethereum Improvement Proposals),以太坊社区中的任何人都可以创造一个 EIP。以太坊改进提案编写准则在 EIP-1 中提供。以太坊改进提案的创作者负责在社区内建立共识并记录不同意见。
从历史上看,大多数以太坊改进提案的创作者通常是应用程序或协议开发者,因为提交高水平的以太坊改进提案需要很强的技术能力,EIP 经过初审后会按照时序给予一个编号,并经由下图所示的审核流程进行讨论。
EIP 有很多种类型,其中包括有 Core、Networking 、Interface 、ERC、Meta、Informational,每一类解决的问题都不一样,我们耳熟能详的 ERC-20、ERC-721、ERC-1155,属于应用级的标准协议,目前绝大多数 NFT 产业应用都是围绕着这几种主流协议展开的。EIP 就像是一部以太坊的编年史,记录了其诞生至今所有的发展脉络,同时也有着预见整个以太坊生态前进方向的能力,见微知著,一个 EIP 的改动可能蕴含着颠覆整个行业的巨大机会。本文在此将会把目光聚焦在与 NFT 相关的并且处于 Last call 和最近 Final 阶段的 EIP 提案。
该 EIP 建议规范 NFT 元数据 (metadata) 的模式,为 EIP-721 和 EIP-1155 标准 NFT 的 JSON 模式中添加一个新字段命名空间 (namespaces)。主要代码如下图所示:
EIP-4955 采用了直接扩展 EIP-721 元数据的方式,背后的想法是为了向后兼容。使得那些不能修改元数据响应(schema)的现有项目,能够创建一个新的智能合约,基于 tokenId 返回更新的元数据模式。鉴于以太坊上的大多数项目都使用不可升级的合约。如果这个 EIP 需要对这些合约进行全新的实现,就必须重新部署。这样既浪费时间又浪费钱。而利用 EIP-721 现有的元数据字段,可以最大限度地减少必要的变化数量。
有许多项目需要自定义 NFT 属性。每个项目可能有自己的方式来渲染 NFT,因此他们需要不同的元数据值。例如像 Decentraland 或 TheSandbox 这样的元宇宙项目,他们需要不同的 3D 模型来渲染 NFT,基于每个项目的视觉/引擎。像 Cryptopunks、Bored Apes 等 NFTs 项目可以创建每个项目所需的 3d 模型。
有了新字段命名空间 (namespaces),每个项目方或者供应商都可以通过 namespaces 来直接调用 NFT 资产 (如上图代码所示),这将允许开发人员在单个智能合约或应用程序中使用多个 NFT 元数据时避免命名冲突。并且 NFT 的元数据将允许钱包、市场、元宇宙等 NFT 相关应用程序与任何 NFT 互相操作。这项提案对需要支持多种元数据模式的 NFT 市场很有用,即使多个卖家使用不同的元数据模式,该 EIP 将使得市场运营商能够确保元数据密钥是唯一的同时自由储存特定的 JSON 数据。该建议的解决方案甚至可以有更广泛的应用,如大型 Gamefi 和元宇宙中的大量 NFT 可以通过自定义元数据来呈现不同属性,同时可以避免命名冲突,极大的提高了 NFT 的互操作性。
EIP-5006 该提案是由 NFT 租赁市场 Double Protocol 提出针对 ERC-1155 型 NFT 的租赁标准,这个标准是对 ERC-1155 标准的延伸。该提案建议在 NFT 元数据中增加一个额外的新字段用户(user),可以被授予代表资产用户(user)而不是所有者的地址(owner)。
早在去年 6 月 29 日,同样由 NFT 租赁市场 Double Protocol 推出的 EIP-4907 正式通过以太坊审核,成为了第一个可租赁 NFT 的 ERC 标准。EIP-4907 作为 ERC-721 的扩展,增加了一个用户信息(UserInfo)变量,变量包涵用户(User)地址以及 “出租到期时间(userExpires)”, 当时间超过出租时间,租赁关系中止。主要代码如下图所示:
不同于 EIP-4907 对于 ERC-721 的简单扩展,EIP-5006 中基于 ERC-1155 的特殊数据结构 (ERC-1155 本身是一种多重代币管理标准,他的 ID 可以对应多个地址以及 token 数量),增加了 Userrecord 以及 usableBalance 函数,可以便捷地批量管理租赁状态。主要代码如下图所示:
