本文在此將會把目光聚焦在與 NFT 相關的並且處於 Last call 和最近 Final 階段的 EIP 提案。
作者:zf857.eth,R3PO
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-4955 元數據標準擴展
該 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 的互操作性。
NFT 租赁使用扩展 从 EIP-4907 到 EIP-5006
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 函数,可以便捷地批量管理租赁状态。主要代码如下图所示:
EIP-4907 和 EIP-5006 标准的核心价值
不管是 ERC-721 还是 ERC-1155 标准代币都需要这样一种新效用。即” 使用 “ 令牌的人可能与拥有令牌的人不同(如在租赁中)。因此,为 “ 所有者 “ 和 “ 使用者 “ 设置不同的角色是有必要的,这样 “ 使用者 “ 就不能采取所有者可以采取的行动(例如,转移所有权)。EIP4907 和 EIP-5006 的提出明确了 NFT 的权利分配,有利于解决 NFT 流动性短缺。有了双重的 “ 所有者 “ 和 “ 使用者 “ 角色,就能实现 NFT 的所有权和使用权的分离,这是解决 NFT 流动性短缺问题的关键基础设施,为一些链上的使用场景如租赁提供了技术支持。使得管理 NFT 贷款人和借款人可以和不可以对 NFT 做什么(换句话说,他们的权利)变得非常容易。例如,对于转让所有权的权利,项目只需要检查采取该行动的地址是代表所有者的地址(owner)还是用户(user),如果是用户(user),则阻止该交易。此外,所有者可以控制谁是用户,其他项目也很容易将自己的权益明确分配给所有者或用户。
与此同时,在无许可互操作性的基础上,该标准使得第三方协议更容易管理 NFT 的使用权,而无需获得 NFT 发行方或 NFT 应用的许可。一旦一个项目采用了额外的用户角色,任何其他项目都可以直接与这些功能互动,并实现他们自己的交易类型。例如,使用该标准的 PFP 类 NFT 可以被整合到一个租赁平台,用户可以租用 NFT 30 天,同时也可以整合到一个抵押贷款平台,用户可以使用 NFT,同时最终通过分期付款购买 NFT 的所有权。这一切都将在不需要原始 PFP 项目的许可下完成。
EIP-4907 与 EIP-5006 的推出无疑将进一步明确 NFT 扩大应用价值的方向,将会涌现更多丰富的玩法、应用场景和衍生品。例如租赁 NFT 的普及将会让 GameFi 生态玩法更加丰富,资金周转率会大幅提升。像 Axie 等大型 Gamefi 中真正能够贡献在线时长的这些海量基础玩家们,需要一种比较低信任成本的方式(非强制性转移型租赁)去租到游戏里的装备或资源权益等。很多 NFT 将更具有实用性。像是元宇宙中的虚拟土地可以被 “ 使用 “,代表游戏资产的 NFT 可以在游戏中被 “ 使用”。在某些情况下,所有者和使用者可能并不总是相同。可能有一个 NFT 的所有者,将其出租给一个 “ 用户”。一个 “ 用户 “ 应该能够对 NFT 采取的行动将不同于 “ 所有者”(例如,” 用户 “ 通常不能出售 NFT 的所有权)。在这些情况下,有单独的角色来识别一个地址是代表 “ 所有者 “ 还是 “ 用户”,并相应地管理执行行动的权限,是非常有意义的。
EIP-5007 给 NFT 赋予时间属性
该提案建议在 ERC-721 代币标准基础上增加一个新的属性,包含初始时间到期时间(startTime, endTime)。从而使得 NFT 在链上的时间管理更简单高效。一些 NFT 有明确的使用期限,在该期限之外不能使用。对于不包含时间信息的传统 NFT,如果你想把一个令牌标记为无效或在特定时间启用,你需要主动提交交易– 这个过程显然既麻烦又昂贵。并且其时间函数的接口不一致,会给第三方开发平台带了一些困难,而通过引入这些函数(startTime, endTime),就可以实现在链上自动启用和禁用 NFT。主要代码如下图所示:
这个功能还可以给 NFT 带来很多新的使用场景,比如以 NFT 为媒介的访问服务或基于 NFT 的订阅内容应用,因为 EIP-5007 将允许开发者在设定的时间段后自动撤销对服务或内容的访问。除此之外协议的扩展也可以应用于数字艺术或收藏品,其中 NFT 的价值可能随着时间的推移而减少。指定到期时间的能力可以帮助防止 NFT 随着时间的推移变得 “ 陈旧 “ 或贬值。
另外值得一提的是,如果到期时间没有得到正确执行,或如果恶意行为者试图篡改到期日字段,拟议的解决方案可能会产生安全问题。因此我们认为可能还需要额外的措施,以确保到期日得到正确执行,并确保 NFT 所有者不会被不公平地锁定其资产。
EIP-5496 NFT 多权益管理扩展
EIP-5496 提出了对 EIP-721 代币标准的扩展,允许 NFT 的多权益管理。该提案定义了一个扩展 EIP-721 的接口,为 NFT 提供可共享给多人的权益。权益可以是链上的(投票权、要求空投的许可)或甚至是链上以外的(网上商店的优惠券、当地餐馆的折扣、进入机场贵宾室)。每个 NFT 可能包含许多权益,而权益的持有者可以将该权益转让给其他人。权益可以是不可共享的或可共享的。可共享的权益可以被克隆复制,提供者可以根据传播路径调整细节。也可以为每个特权设置过期时间。主要代码如下图所示:
具體的權益數據管理過程使用了兩個結構體做雙層嵌套,首先定義了 PrivilegeRecord,裡面存儲了使用者位址(address user)和到期時間(expiresAt)兩個字段,然後又定義了 PrivilegeStorage,裡面存儲了最新一次的到期時間(LastExpiresAt),並用 mapping 的方式去將權益 ID 和 PrivilegeRecord 進行了綁定。 這種權益 ID 化的方式非常聰明,權益 ID 化後對於驗證權益會非常的方便,不需要特別的去逐字匹配校驗權益,只需要校驗權益 ID 即可,權益的內容變通常比較頻繁,將權益內容放在鏈下,只將權益 ID 放在鏈上,專案方對於權益進行改變時則不需要花 gas 費。 但權益 ID 化之後問題是無法直觀的看到這個 NFT 到底都有什麼權益,可能還需要第三方產品去單獨做一個權益內容的設置和查詢功能去索引到對應 ID。 主要代碼如下圖所示:
該協定可以達到即時有效地管理附加在 NFT 上的權益。 許多 NFT 的功能不僅僅是作為個人資料圖片或藝術收藏品,它們可能在不同的場景中具有真正的效用。 例如,一家時裝店可能會給自己的 NFT 持有者打折; DAO 成員 NFT 持有者可以對如何使用他們的國庫的提議進行投票; 一個 DApp 可能會創建一個空投事件來吸引某一群人,比如一些藍籌 NFT 持有者來認領; 雜貨店可以在鏈上發行其會員卡(作為 NFT),當會員在雜貨店購物時給予某些特權,等等。 作為發行方對於 NFT 的權益賦能可能會有很多,而擁有 NFT 的人不一定想使用他們的權益,而傳統的 EIP-721 協定只支援記錄 NFT 的擁有權和轉讓過程,NFT 的權益是不被記錄在鏈上的,EIP-5496 的擴展將允許商家/專案將權益寫入鏈上,並授予特定人群,並且權益擁有者可以獨立管理每個權益,從而對於專案方和 holder 均具有權益的管理能力 ,釋放了 NFT 在權益實用性領域的價值,促進了 NFT 大型實際應用落地的可能。
EIP-5606 多元宇宙 NFT
EIP-5606 定義了一個介面為數字資產(如可穿戴設備和遊戲中的物品)創建一個 Multiverse NFT(多元宇宙 NFT)標準,同時可以索引這種資產在每個平臺上的委託的 NFT。 這些平臺可以是 metaverses,Gamefi 或 NFT 市場。 該標準還允許在多元宇宙 NFT 中對這些委託 NFT 進行「捆綁」和「解綁」,因此持有者可以單獨或作為捆綁物進行交易。 主要代碼如下圖所示:
EIP-5606 引入的多元宇宙 NFT 概念,它代表了一个跨越多个平台的数字资产。多元宇宙 NFT 合约定义了一种新的代币,保持了独特的数字资产与其相关的平台对应物之间的关系(EIP 将它们称为委托代币)。该标准引入了 bundle 捆绑物的简单概念。捆绑物本质上是一组由唯一的 ID 号(多元宇宙代币 ID)标识的委托 NFT。DelegateData 结构包含每个平台上的委托 NFT 代币的信息。它包含的变量有:contractAddress、tokenId、数量,以区分 NFT(遵循 ERC-721 标准或 ERC-1155 标准)。捆绑和解绑函数接受一个 DelegateData 结构数组,因为需要满足部分捆绑和解绑。他们还需要委托 NFT 的单独的 token ID 来有选择只有多元宇宙 NFT 的所有者(或具有 bundler 角色的地址)可以调用捆绑函数。
在 web3 生态系统中,NFT 已经发展到代表多种类型的独特和不可替代的资产。一种类型的资产包括一组相互关联的 NFT。例如,如果一个品牌在不同的平台上发布了一款新的运动鞋,它将在每个平台上被铸成一个单独的 NFT。然而,实际上,它是同一款运动鞋。NFT 缺乏跨平台的互操作性成了一个亟待解决的问题。创建一个多元宇宙 NFT 标准,允许在不同的平台上对数字资产进行索引和所有权,这将是实现跨平台的互操作性和真正的所有权的第一步。在这个方向上,EIP-5606 提案是解决 NFT 和跨平台 “ 真正 “ 所有权的互操作性方面的第一个切实的尝试。
EIP-6150 层级化 NFT 标准诞生
EIP-6150 该协议在 EIP-721 的基础上进行延伸。它提出了一个类似文件系统的多层分层 NFT 结构。本协议在 EIP-721 及合约基础上添加了获取父 NFT 或子 NFT 以及 NFT 是叶节点还是根节点的新接口,并且保持它们之间的层次关系。所谓 NFT 之间的层级关系是指所有的 NFT 将组成一个分层关系树。每个 NFT 都是树上的一个节点,可能是根节点或叶节点,也可能是父节点或子节点。主要代码如下图所示:
本提案中先对 Minted 事件进行了标准化,以表明在铸造一个新节点时的父子关系。在每一个一个分层树中,本提案规范了函数 parentOf 用于查询指定 tokenId 的 NFT 的父节点 NFT,规范了函数 childrenOf 来查询出指定 tokenId 的 NFT 的所有子节点 NFT。以此来方便查询上层和下层节点。此外函数 isRoot 和 isLeaf 则分别可查询指定 tokenId 在整个 NFT 层级树中是不是根节点或叶子节点。
另外值得一提的是本提案非常周密的添加了三个可选的扩展接口
可枚举扩展(IERC6150Enumerable)
本提案将三个函数标准化,作为支持涉及子节点的可枚举查询的扩展。每个函数都有 param parentId,为了兼容,当 parentId 指定为 0 时意味着查询根节点。
销毁节点扩展(IERC6150Burnable)
层级关系的转移扩展 (IERC6150ParentTransferable) 在某些情况下,比如文件系统,一个目录或一个文件可以从一个目录移动到另一个目录。所以本提案增加了 ParentTransferable 扩展来支持这种情况。
访问控制(IERC6150AccessControl)
在一个层次结构中,通常有一个以上的账户有权限操作一个节点,比如铸币厂的子节点,转移节点,燃烧节点。本建议增加了一些标准功能来检查访问控制的权限。
由于目前的 NFT 几乎都是扁平化的,不同 NFT 之间不存在关联关系。而层级化标准的 NFT,则可以将所有 NFT 串联起来组成树状结构,就像文件系统一样。层级化的 NFT 可用于多种不同的应用场景,比如:组织架构、社交关系图谱、电商商品类目结构以及层级评论系统等等。
可以说,任何具有层级结构的场景都可以适用这个 EIP-6150 协议标准。层级结构的 NFT 在去中心化社交、去中心化电商等领域都将可能产生广泛应用。在以太坊生态系统内,单个智能合约可以是根,管理每个目录/类别作为单独的 NFT 和 NFT 的层次关系。每个 NFT 的 tokenURI 可以是另一个合同地址,网站链接,或任何形式的元数据。只需要一个合约来管理和操作分层关系,在不远的未来,随着以太坊的数据可用性解决方案和外部无权限数据保留网络的发展,用于管理组织结构的链上公司将成为可能,从而实现完全去中心化的应用。
以上就是近期以太坊 NFT 协议的最新内容,截止本稿之前,EIP-5007 与 EIP-5496 还处在 Last Call 阶段,EIP-4955、EIP-5006 、EIP-5606 、EIP-6150 协议已经由 Last Call 转到 Final 阶段。总体的来说这些新协议的通过对于 NFT 在创新性以及实用性角度是做出很大贡献的,如今 NFT 已经过去了 PFP 的阶段,而 Web3 的征途是星辰大海,创新无时无刻不在上演,NFT 的下一个叙事到底要由什么开启,我们从这些协议中可以窥见 NFT 的未来正越来越朝向更实际,更具有应用性的方向发展。在不远的未来 NFT 技术本身将改变游戏、保险、房地产买卖、付费广告、投票、社交平台、视频媒体…… 我们生活的方方面面. NFT 将不仅仅是加密的 “一部分”。在接下来的几年里,它们将可能成为加密领域中唯一与现实世界紧密相关的实际应用。
References:
EIP-4955:
https://eips.ethereum.org/EIPS/eip-4955
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4955.md
EIP-5006
https://eips.ethereum.org/EIPS/eip-5006
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5006.md
EIP-5007
https://eips.ethereum.org/EIPS/eip-5007
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5007.md
EIP-5496
https://eips.ethereum.org/EIPS/eip-5496
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5496.md
EIP-5606
https://eips.ethereum.org/EIPS/eip-5606
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5606.md
EIP-6150
https://eips.ethereum.org/EIPS/eip-6150
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6150.md
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。