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 標準代幣都需要這樣一種新效用。即”使用”令牌的人可能與擁有令牌的人不同(如在租賃中)。因此,為”所有者”和”使用者”設置不同的角色是有必要的,這樣”使用者”就不能採取所有者可以採取的行動(例如,轉移所有權)。 EIP 4907 和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 層級樹中是不是根節點或葉子節點。
另外值得一提的是本提案非常周密的添加了三個可選的擴展接口:
-
可枚舉擴展(IERC 6150 Enumerable)
本提案將三個函數標準化,作為支持涉及子節點的可枚舉查詢的擴展。每個函數都有param parentId,為了兼容,當parentId指定為0 時意味著查詢根節點。
-
銷毀節點擴展(IERC 6150 Burnable)
層級關係的轉移擴展(IERC 6150 ParentTransferable)在某些情況下,比如文件系統,一個目錄或一個文件可以從一個目錄移動到另一個目錄。所以本提案增加了ParentTransferable擴展來支持這種情況。
-
訪問控制(IERC 6150 AccessControl)
在一個層次結構中,通常有一個以上的賬戶有權限操作一個節點,比如鑄幣廠的子節點,轉移節點,燃燒節點。本建議增加了一些標準功能來檢查訪問控制的權限。
由於目前的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
來源:星球日報