如何理解“图币二象性”创新代币 @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标准还处于实验阶段,可能还会存在不少逻辑迭代,本文仅做科普帮助大家初步理解,不作为该类技术标准的最终解释内容。更多内容,我会进一步跟进分析。