如何理解「圖幣二象性」創新代幣@Pandora_ERC404?其讓FT和NFT擁有共生關係,以此解決NFT流動性差的難題。技術角度來看,讓FT和NFT兩種原生矛盾Token能被混合應用,新奇又有趣。
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標準放置到一套智能合約下的管理辦法,確確實實稱得上是資產發行典範創新。
Note:ERC404標準仍處於實驗階段,可能還會存在不少邏輯迭代,本文僅做科普幫助大家初步理解,不作為該類技術標準的最終解釋內容。更多內容,我會進一步跟進分析。