來源:鏈上觀
如何理解“圖幣二象性”創(chuàng)新代幣 @Pandora_ERC404?其讓FT和NFT擁有共生關(guān)系,以此來解決NFT流動性差的難題。技術(shù)角度看,讓FT和NFT兩種原生矛盾Token能被混合應(yīng)用,新奇且有趣。
ERC404標(biāo)準(zhǔn)有啥創(chuàng)新之處?是一次資產(chǎn)發(fā)行新范式嗎?結(jié)合 @SmartLayer的TokenScript會有妙用?接下來,我談?wù)勎业睦斫猓?/p>
首先,需要說明ERC404目前只是一個Experiment實驗性標(biāo)準(zhǔn),并沒有納入正式的以太坊EIP提案。Pandora是基于該新實驗標(biāo)準(zhǔn)創(chuàng)建的首個代幣。ERC404目標(biāo)要解決原先ERC20 同質(zhì)化代幣標(biāo)準(zhǔn),和ERC721非同質(zhì)化代幣標(biāo)準(zhǔn)二者水火不相融的問題。
舉個例子,用戶同時持有FT代幣 和NFT代幣,當(dāng)用戶選擇要賣出NFT代幣時,合約如何判斷用戶的意圖是賣NFT而非FT,即使判斷對了,合約如何在存儲數(shù)據(jù)狀態(tài)區(qū)分更新不同的數(shù)據(jù)狀態(tài)而不出錯?是不是,很抽象?
通俗來說,智能合約在ERC20代幣標(biāo)準(zhǔn)下,只需要管理代幣的余額狀態(tài)就行,增加和減少余額的存儲數(shù)據(jù)邏輯簡單清晰,若讓智能合約在ERC721代幣標(biāo)準(zhǔn)下管理狀態(tài)余額也很簡單,Transfer指向哪個Token ID就增減哪個NFT。
現(xiàn)在要讓智能合約同時處理ERC20和ERC721就麻煩了:
合約先要判斷用戶Transfer調(diào)用的是FT還是NFT,此外要改變NFT狀態(tài)時還得判斷到底選擇哪個Token ID,由于Uniswap等這類智能合約并無法直接處理NFT交易,還需要給FT 和NFT之間建立一層Mapping映射對應(yīng)關(guān)系,進而實現(xiàn)交易FT的同時也完成了NFT的交易。
ERC404(實驗)標(biāo)準(zhǔn)的核心黑科技就在于此,它通過有損編碼方案讓ERC20代幣的數(shù)量和ERC721代幣的唯一ID能夠在合約存儲中使用相同的數(shù)據(jù)結(jié)構(gòu),同時又能保持它們的區(qū)分和獨立性。
比如,假設(shè)你有2.9個魔法豆(ERC20),同時又擁有2個魔法卡(ERC721,ID 101 和ID 102),有損編碼要同時管理兩種類型的數(shù)據(jù),可以直接把魔法豆的數(shù)量2.9作為一個數(shù)據(jù)整體存儲,同時可以給魔法卡的ID號加一個特殊的標(biāo)記,比如1000000000000,這個標(biāo)記甚至遠(yuǎn)超Token的Supply,這樣合約在調(diào)用數(shù)據(jù)時很容易區(qū)分開ERC20和ERC721了。
完成這一步后,要有效管理FT和NFT的共生關(guān)系需要給合約編寫一套Mapping邏輯關(guān)系,比如,你有1個FT代幣,合約會自動向你mint一個NFT,當(dāng)你持有2個FT代幣時,合約再自動增發(fā)1個NFT,但當(dāng)你FT余額不足1個時合約會將你的NFT銷毀掉。這一套對應(yīng)關(guān)系不難理解。 那么,如何實現(xiàn)讓NFT代幣在Uniswap這種只支持FT 代幣的協(xié)議中交易呢?答案:利用Mapping對應(yīng)關(guān)系。讓Uniswap正常處理FT代幣就好,NFT代幣自動會跟隨轉(zhuǎn)變歸屬狀態(tài)。比如,你想賣掉NFT代幣,可直接把FT代幣賣掉,合約會自動記錄你錢包里的FT減少了1個,并銷毀掉你錢包里的一個NFT。 細(xì)心的朋友應(yīng)該發(fā)現(xiàn)問題了,若用戶持有2.9個FT代幣,和2個NFT代幣,當(dāng)用戶賣掉1個FT后,合約該銷毀兩個NFT當(dāng)中的哪個呢?這其實是個相當(dāng)復(fù)雜的問題,因為合約無法判定賣掉的部分到底是哪個FT代幣,也就無法對應(yīng)其相應(yīng)的NFT,嚴(yán)格來說這其實算ERC404實驗標(biāo)準(zhǔn)的一個“缺陷”。
但技術(shù)遇上Tokenomics產(chǎn)生了神奇的化學(xué)反應(yīng)。
一個討巧的方法是,設(shè)計一套NFT稀有刷新機制,鼓勵用戶不停將疊加的FT代幣進行轉(zhuǎn)移,每轉(zhuǎn)移1次FT就相當(dāng)于實現(xiàn)了一次NFT代幣的銷毀和新增發(fā)操作,也就等同于刷新了一次稀有度,這樣用戶就傾向于把FT代幣分開,然后以此來避免稀有NFT被銷毀,同時又能刷新新NFT稀有度
。你看,原本是一個技術(shù)邏輯Bug,通過一層稀有度的運營設(shè)計,還真的可以有效化解。當(dāng)然,用戶如果非要較真,要在一個錢包內(nèi)疊加多個FT代幣,而且又要讓已有的NFT代幣根據(jù)自己意愿(非隨機)銷毀,怎么做呢? 現(xiàn)有做法有兩種,1)根據(jù)Token ID順序執(zhí)行,很可能把稀有特性的NFT被銷毀掉;2)指定Burn接近floor price的NFT,不過這其實是一層鏈外邏輯,很可能會因oracle喂價延遲問題導(dǎo)致銷毀非意愿。而且那個NFT接近地板價其實也要用戶提前掛單來定義,相當(dāng)于又接入了NFT市場的數(shù)據(jù)。 與其這樣復(fù)雜,還不如直接讓用戶在錢包端編輯并選擇。那就必須得引入一種為FT代幣實現(xiàn)可編程前端的TokenScript方案,這樣用戶可以在錢包端自主選擇當(dāng)交易FT代幣的時候,優(yōu)先銷毀哪個NFT代幣,保留哪個稀有度的NFT代幣,也正是我開篇提到的 @SmartLayer目標(biāo)要實現(xiàn)的功能。
關(guān)于Smartlayer,其實和ERC404并沒關(guān)系,只不過ERC404目標(biāo)要讓代幣具有對應(yīng)NFT圖片的基礎(chǔ)功能,而Smartlayer則是一套融合了ERC-5169和TokenScript的標(biāo)準(zhǔn),本質(zhì)上是要達成FT代幣的可編程執(zhí)行屬性。兩者在能力層面不謀而合,后者還要更復(fù)雜一些。 簡單來說:TokenScript是一個開源框架,旨在為數(shù)字代幣提供標(biāo)準(zhǔn)化的方式來定義代幣的行為和交互邏輯,代幣發(fā)行者可以為其代幣設(shè)計一套可編程的前端。比如,在ERC404場景下,用戶可以基于Smartlayer的前端選擇優(yōu)先銷毀哪個NFT,給稀有NFT標(biāo)記避免被銷毀等個性化功能,又比如在更廣泛的游戲場景下,可以喂養(yǎng)、撫摸自己錢包中的NFT寵物,為其NFT增加升級、迭代等屬性。 原本我在研究Smartlayer所做的事情時,一些可編程代幣,智能代幣,Token外接可執(zhí)行腳本等等概念著實燒腦上頭,當(dāng)看到ERC404標(biāo)準(zhǔn)代幣的出現(xiàn)時,有種豁然開朗的感覺,ERC404實驗狀態(tài)中最后一環(huán)的NFT區(qū)分問題,不正可以用Smartlayer的這套智能代幣前端解決嗎? 以上 讀完有沒有,“一文雙吃”的感覺,既大致明白了Token404標(biāo)準(zhǔn)下的Pandora,又深刻認(rèn)識了即將TGE的Smartlayer。 事實證明,圍繞資產(chǎn)發(fā)行的創(chuàng)新每一次都會產(chǎn)生相當(dāng)長時間的敘事發(fā)酵效應(yīng),無論是比特幣生態(tài)的銘文,還是這次以太坊生態(tài)的混合標(biāo)準(zhǔn)代幣或可編程代幣,在我看來都會持續(xù)衍生出形形色色的創(chuàng)新和玩法。我不確定ERC404的下一步會怎么演變,以及會不會和Smartlayer互通有無產(chǎn)生一些創(chuàng)新火花,但這種把原先水火不容的Token標(biāo)準(zhǔn)放置到一套智能合約下的管理辦法,確確實實稱得上是一次資產(chǎn)發(fā)行范式創(chuàng)新。
Note:ERC404標(biāo)準(zhǔn)還處于實驗階段,可能還會存在不少邏輯迭代,本文僅做科普幫助大家初步理解,不作為該類技術(shù)標(biāo)準(zhǔn)的最終解釋內(nèi)容。更多內(nèi)容,我會進一步跟進分析。