ERC404 標准有啥創新之處?是一次資產發行新範式嗎?結合 @SmartLayer 的 TokenScript 會有妙用?接下來,我談談我的理解:
首先,需要說明 ERC404 目前只是一個 Experiment 實驗性標准,並沒有納入正式的以太坊 EIP 提案。Pandora 是基於該新實驗標准創建的首個代幣。ERC404 目標要解決原先 ERC20 同質化代幣標准,和 ERC721 非同質化代幣標准二者水火不相融的問題。
舉個例子,用戶同時持有 FT 代幣 和 NFT 代幣,當用戶選擇要賣出 NFT 代幣時,合約如何判斷用戶的意圖是賣 NFT 而非 FT,即使判斷對了,合約如何在存儲數據狀態區分更新不同的數據狀態而不出錯?是不是,很抽象?
通俗來說,智能合約在 ERC20 代幣標准下,只需要管理代幣的余額狀態就行,增加和減少余額的存儲數據邏輯簡單清晰,若讓智能合約在 ERC721 代幣標准下管理狀態余額也很簡單,Transfer 指向哪個 Token ID 就增減哪個 NFT。
現在要讓智能合約同時處理 ERC20 和 ERC721 就麻煩了:
合約先要判斷用戶 Transfer 調用的是 FT 還是 NFT,此外要改變 NFT 狀態時還得判斷到底選擇哪個 Token ID,由於 Uniswap 等這類智能合約並無法直接處理 NFT 交易,還需要給 FT 和 NFT 之間建立一層 Mapping 映射對應關系,進而實現交易 FT 的同時也完成了 NFT 的交易。
ERC404(實驗)標准的核心黑科技就在於此,它通過有損編碼方案讓 ERC20 代幣的數量和 ERC721 代幣的唯一 ID 能夠在合約存儲中使用相同的數據結構,同時又能保持它們的區分和獨立性。
比如,假設你有 2.9 個魔法豆(ERC20),同時又擁有 2 個魔法卡(ERC721,ID 101 和 ID 102),有損編碼要同時管理兩種類型的數據,可以直接把魔法豆的數量 2.9 作爲一個數據整體存儲,同時可以給魔法卡的 ID 號加一個特殊的標記,比如 1000000000000,這個標記甚至遠超 Token 的 Supply,這樣合約在調用數據時很容易區分开 ERC20 和 ERC721 了。
完成這一步後,要有效管理 FT 和 NFT 的共生關系需要給合約編寫一套 Mapping 邏輯關系,比如,你有 1 個 FT 代幣,合約會自動向你 mint 一個 NFT,當你持有 2 個 FT 代幣時,合約再自動增發 1 個 NFT,但當你 FT 余額不足 1 個時合約會將你的 NFT 銷毀掉。這一套對應關系不難理解。
那么,如何實現讓 NFT 代幣在 Uniswap 這種只支持 FT 代幣的協議中交易呢?答案:利用 Mapping 對應關系。讓 Uniswap 正常處理 FT 代幣就好,NFT 代幣自動會跟隨轉變歸屬狀態。比如,你想賣掉 NFT 代幣,可直接把 FT 代幣賣掉,合約會自動記錄你錢包裏的 FT 減少了 1 個,並銷毀掉你錢包裏的一個 NFT。
細心的朋友應該發現問題了,若用戶持有 2.9 個 FT 代幣,和 2 個 NFT 代幣,當用戶賣掉 1 個 FT 後,合約該銷毀兩個 NFT 當中的哪個呢?這其實是個相當復雜的問題,因爲合約無法判定賣掉的部分到底是哪個 FT 代幣,也就無法對應其相應的 NFT,嚴格來說這其實算 ERC404 實驗標准的一個「缺陷」。
但技術遇上 Tokenomics 產生了神奇的化學反應。
一個討巧的方法是,設計一套 NFT 稀有刷新機制,鼓勵用戶不停將疊加的 FT 代幣進行轉移,每轉移 1 次 FT 就相當於實現了一次 NFT 代幣的銷毀和新增發操作,也就等同於刷新了一次稀有度,這樣用戶就傾向於把 FT 代幣分开,然後以此來避免稀有 NFT 被銷毀,同時又能刷新新 NFT 稀有度。
你看,原本是一個技術邏輯 Bug,通過一層稀有度的運營設計,還真的可以有效化解。當然,用戶如果非要較真,要在一個錢包內疊加多個 FT 代幣,而且又要讓已有的 NFT 代幣根據自己意愿(非隨機)銷毀,怎么做呢?
現有做法有兩種,1)根據 Token ID 順序執行,很可能把稀有特性的 NFT 被銷毀掉;2)指定 Burn 接近 floor price 的 NFT,不過這其實是一層鏈外邏輯,很可能會因 oracle 喂價延遲問題導致銷毀非意愿。而且那個 NFT 接近地板價其實也要用戶提前掛單來定義,相當於又接入了 NFT 市場的數據。
與其這樣復雜,還不如直接讓用戶在錢包端編輯並選擇。那就必須得引入一種爲 FT 代幣實現可編程前端的 TokenScript 方案,這樣用戶可以在錢包端自主選擇當交易 FT 代幣的時候,優先銷毀哪個 NFT 代幣,保留哪個稀有度的 NFT 代幣,也正是我开篇提到的 @SmartLayer 目標要實現的功能。
關於 Smartlayer,其實和 ERC404 並沒關系,只不過 ERC404 目標要讓代幣具有對應 NFT 圖片的基礎功能,而 Smartlayer 則是一套融合了 ERC-5169 和 TokenScript 的標准,本質上是要達成 FT 代幣的可編程執行屬性。兩者在能力層面不謀而合,後者還要更復雜一些。
簡單來說:TokenScript 是一個开源框架,旨在爲數字代幣提供標准化的方式來定義代幣的行爲和交互邏輯,代幣發行者可以爲其代幣設計一套可編程的前端。比如,在 ERC404 場景下,用戶可以基於 Smartlayer 的前端選擇優先銷毀哪個 NFT,給稀有 NFT 標記避免被銷毀等個性化功能,又比如在更廣泛的遊戲場景下,可以喂養、撫摸自己錢包中的 NFT 寵物,爲其 NFT 增加升級、迭代等屬性。
原本我在研究 Smartlayer 所做的事情時,一些可編程代幣,智能代幣,Token 外接可執行腳本等等概念着實燒腦上頭,當看到 ERC404 標准代幣的出現時,有種豁然开朗的感覺,ERC404 實驗狀態中最後一環的 NFT 區分問題,不正可以用 Smartlayer 的這套智能代幣前端解決嗎?
讀完有沒有,「一文雙喫」的感覺,既大致明白了 Token404 標准下的 Pandora,又深刻認識了即將 TGE 的 Smartlayer。
事實證明,圍繞資產發行的創新每一次都會產生相當長時間的敘事發酵效應,無論是比特幣生態的銘文,還是這次以太坊生態的混合標准代幣或可編程代幣,在我看來都會持續衍生出形形色色的創新和玩法。我不確定 ERC404 的下一步會怎么演變,以及會不會和 Smartlayer 互通有無產生一些創新火花,但這種把原先水火不容的 Token 標准放置到一套智能合約下的管理辦法,確確實實稱得上是一次資產發行範式創新。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。