原文: 《NFT租賃提案EIP-5006步入最後審核!讓海外大型遊戲的鏈改成為可能》
內容概要
隨NFT租賃場景的EIP-4907被納入以太坊標準,NFT該如何應用的問題,正在從協議底層得到認可和解答。近期同樣由NFT 租賃市場Double Protocol 提案的針對1155型的NFT租賃標準EIP-5006 ,也已經步入最後審核階段(last call),如無意外將在2022-08-01結束審核。
雖然兩份提案出自同一團隊,但實現與用戶使用方式截然不同!這是為什麼呢?
特別說明! !此標準有風險,鑑權不完全,如需使用注意需重寫權限管理部分(見文末)
通過本文你將理解
為什麼需要豐富的NFT標準
三大主流資產標準的核心差異
5006將如何實現1155型NFT的租賃邏輯
新標準能為”大型遊戲鏈改”提供怎樣動能
1、背景
為什麼需要豐富的NFT標準呢?
721標準的NFT為什麼不夠用?
說句玩笑話,如今的gamefi可謂好玩的不賺錢,賺錢的不好玩。
常見的gamefi項目中,721標準的NFT協議只是起到確權和屬性功能的作用。如下列4中游戲內的NFT道具,猶如只為少數高氪玩家所用的屠龍刀或者深淵通行證。

但是要遊戲好玩,就不能只有屠龍刀這類高淨值的資產。如今大型遊戲豐富的玩法要做好鏈上改造,更是依賴千奇百怪的場景。 gamefi中要玩法升級,構建完善世界觀離不開各類道具屬性、功能、組合、升級、損耗、多種類數量等等特性,才能避免走向類似axie一般的玩法單一逐步枯竭的終局。
因此即使eip-4907為NFT除了所有者確權之外,帶來了用戶租賃的概念,這是個應用層很好的開始,見前文【源碼解讀】以太坊新標準EIP-4907是怎樣實現NFT租賃的?
但也依舊不能打破721標準下的NFT太過於精簡,無法在足夠宏偉的gamefi場景中得到很好應用的痛點。
而一款活得久的遊戲最小經濟模型,也往往需要3種玩法角色的互相作用達成一種穩定供給平衡。例如Ember Sword 土地項目中的三種角色
基礎生產者PvE:採集資源,打怪升級
挑戰愛好者PvP:贏得高淨值NFT和代幣獎勵
進階創造者UGC:提供藝術創作,做基礎物資與高級資產的連接人。

所以豐富協議基礎,是Gamefi乃至NFT走向應用價值的必經之路,而1155標準則是較早(2018-06-17)確定主打應用場景的NFT標準。
那咱們深入來聊聊最適合遊戲裡的NFT標準ERC1155,以及為他設計的提供租賃功能的EIP5006。
2、三大主流資產標準的核心差異
業界常說ERC1155等於ERC721+ERC20,要理解標準協議的差異,只需要看他核心存儲的數據是什麼
其實我們可以這麼理解,區塊鏈作為全球的底層賬本,確保了智能合約這種code is Law的能力,即是將規則代碼化,通過固定暴露的接口限定了任何人對他的使用方式,而智能合約裡定義的存儲數據,則是全球共享的數據庫。
2.1 概念普及:20和721是如何定義資產關係的?
其實標準ERC20協議,核心是管理了兩個對應關係,資產和授權關係,這裡只看資產關係
_balances :每個地址有多少Token餘額數量
下方則是代碼對數據存儲的定義,猶如一個Excel表格的行與列,Key與value
mapping(address => uint256) private _balances;同樣的ERC721則是管理了兩個資產上對應關係
_balances :每個地址有多少個NFT
_owners :每個NFT的ID對應的所有人地址
mapping(address => uint256) private _balances; mapping(uint256 => address) private _owners;所以常說NFT 是一個ID走天下,實現了具有唯一資產的確權性,確實畢竟他也只有一個ID。
詳細了解721協議及功能細節
見前文: 【源碼解讀】你買的NFT到底是什麼?
下圖為3大資產標準中合約的方法,都是圍繞資產關係與授權關係的管理

2.2 ERC1155多重代幣標準-Multi Token Standard
1155即多重代幣標準,則是管理了1個“嵌套的”資產對應關係
依舊是使用_balances 作為名字,但他的結構則是NFT-ID 對應地址(所有者) 再對應token數量
比如愛死機NFT項目中
見前文: 當奈飛的NFT忘記了web2的業務安全
有9個NFT-ID,我mint得到了4號1個,那數據中會存儲,4號NFT中我的地址持有1個。
mapping(uint256 => mapping(address => uint256)) private _balances; 
這麼一看,其實1155簡直是天然適合應用型的NFT標準,因為一個ID可以被多人持有若干份
好比公司的股票發行1W份,分別給1k人持有,雖然持有量影響權益,但都可以叫股東。
好比mirror上鑄造的文章NFT,可以被多人mint走,其收益成為作者的創作收益。
2.3 小結
結合了上述的三種主流資產標準,目前大量遊戲都在將生態內的道具做了資產化。

並且現在越來越多的遊戲內出現了1155類型的NFT,應用在遊戲內UGC創作場景(如The SandBox和Voxels中的可穿戴裝備和部分消耗性裝飾品資產)
並且OpenSea的為了降低UGC創造新NFT的成本,特地設計基於1155標準的懶惰鑄造(Lazy Mint)特性的共享商店合約,讓創作的NFT只在確定有交易之後才在鏈上形成真正的鑄造,從而大幅度降低使用者成本
雖然筆者並不認同這種改變過多原始標準的設計
見前文: 【解密】OpenSea免費創造的NFT都沒上鍊竟能出現在我的錢包裡?
但是毫無疑問,從2年來每日交易次數來看,確實打開了低成本創作的想像空間。想必未來圍繞Dapp和鏈層之間潤滑劑的中間件相關產業會越來越豐富

雖然已經有場景在湧現,但如果從交易規模和總市值維度出發,參考研報數據如下,可以說應用型NFT相對於PFP(頭像類NFT)依舊處於萌芽階段。

3、EIP-5006 將如何實現1155型NFT的角色租賃?
3.1 簡述721極簡的租賃實現
回溯之前對721標準下角色租賃實現的解讀,
見前文: 【源碼解讀】以太坊新標準EIP-4907是怎樣實現NFT租賃的?
可以發現,之所以如此迅速通過以太坊基金會的審核,來自於簡約而不簡單的實現方式
核心原理是在前文提及的721標準的核心數據之外,額外增加了一個關聯屬性,即指定ID的用戶和過期時間,其他的代碼則是提供了三個接口:
設置承租人 User 的地址與到期時間
查詢NFT-ID當前的User
查詢NFT-ID 當前的租賃到期時間
必須強調的是,毫無任何強制性手段來限制這個user該怎麼用,即不涉及租賃收益計算,也不為nft定價做價值衡量,甚至是這個user可以理解為被租用戶還是藉貸抵押品,都不做標准上定義。
唯一的強制性只在防止BUG上,當我賣掉自己的NFT那麼之前的授權將失效。
都不定義,所以剩下的問題就交給共識,代碼裡只存放最底層規則,即user是他
3.2 1155的租賃實現大不相同
租賃功能面對721標準:一個ID對應一個user和expires到期時間很合理,但1155標準:他這個ID的所有者可不只一個,所以EIP-5006仿照1155的數據結構,額外增加了3種數據來表示嵌套的資產角色租賃關係。
最終呈現出來的特點是:
1:不再考慮被租賃的時間!等於是無限期,也完全由owner來控制時間
2:由於租賃無限期,因此所有者需要再次合約交互才能來消除掉租賃狀態。
3:賣出NFT之前,如果超過租出去導致凍結的數量,則需要先消除租賃的部分
通過源代碼可見,他最核心數據是_allowances:
代表著每個NFT-id的每個所有者,分別有哪些租賃用戶分別租了多少。
基本等於是在原始的1155核心數據上,再嵌套一層補充上租賃者和出租量的數據。
/** mapping(tokenId => mapping(owner => mapping(user => amount))) */ mapping(uint256 => mapping(address => mapping(address => uint256))) private _allowances;為了使用,提供了4個接口來管理1155的租賃關係
setUser:設置某個NFT-id下的某個所有者,設置多少個token數量給某個用戶
balanceOfUser :查詢哪個NFT-ID的哪個用戶租賃到多少
balanceOfUserFromOwner:查詢某個NFT-ID的某所有者下的某個用戶租賃到多少個
frozenAmountOfOwner:查詢某個NFT-ID的所有者其持有的token,已經被租出去多少個了(要凍結掉防止重複出租)
整體來說,不失優雅
雖然使用上和4907差異有所差異(無過期時間)影響了使用成本,也導致所有者更高的應用成本,但依舊是收斂最小的強制性,僅通過對owner的frozen數據的管理來防超額出租的BUG。
3.3 風險點特別說明
此標準目前的實現是有風險的,因為在標準中,對setUser函數定義為公開且為虛函數(表示他可支持繼承重寫)但函數內並未明確限制, ”誰“有權可以去修改”誰的“租賃關係,導致任意用戶可修改任意租賃關係,因此如有項目想使用5006,需要注意繼承後重寫此setUser設置租賃用戶函數。
4、能為大型遊戲的鏈改提供怎樣動能?
當然如果排除他權限上的風險,那可以想像EIP-5006一旦定為標準,將再次掀起NFT走向應用上的熱潮,為何這麼判斷呢?
ERC-4907 的核心價值是為鏈上”原生租賃“提供了技術支撐,實現了NFT 的所有權和使用權的分離,是解決NFT流動性短缺問題的重要基礎設施。
EIP-5006 的核心價值則是將進一步強化圍繞”用戶創作應用場景上“所有權和使用權的分離,明確NFT擴大應用價值的方向,將會湧現更多豐富的玩法、應用場景和衍生品。
正如本文背景部分所述,好的生態內不能只有官方一級發售屠龍刀,好的生態裡,必須引導創作者UGC經濟在整體生態內形成”生產>加工>消費“的循環。
721型NFT的定義往往只來自於官方,極致的稀有度讓所有權的作用遠超過使用權。
而1155型的NFT再結合原生租賃5006的推出,將會讓GameFi生態裡重資產的資金周轉率會大幅提升。因為真正能夠貢獻在線時長的這些海量基礎玩家們,可以用一種比較低信任的方式(非強制性轉移型租賃)去租到遊戲裡的裝備或資源(活動入場權益)等。
這將帶來游戲的DAU和用戶體驗的上升。
目前看Land類型的遊戲,top5中4家已經支持UGC創作,部分使用1155做資產標準。

同時,各類圍繞遊戲內置可視化編輯器輔助UGC的gamefi項目也在井噴而出。
實用性NFT協議的豐滿,有了更多用鏟子的人,自然就會有更多賣鏟子做鏟子的人。而市場的痛點和需求點倒逼各類NFT應用層的協議豐富起來。

最後,對比採用強制性限制的租賃標準,參見前文: EIP-5058 能否防止NFT項目方提桶跑路?這種4907和5006的依賴於社會共識的標準將最終佔領市場
code is Law 代碼即是法律,法律威嚴神聖不可侵犯,在區塊鏈的世界,也應該堅持如此,一旦確定規則就原則上不允許反悔。
總之做好定義,剩餘的放心交給社會共識吧
再次強調
當前合約代碼有風險(不算BUG),筆者向項目方提Issues,項目方回复已確認此風險,提交了新修復提案,如使用項目方使用請務必注意權限問題。

引用:




