一文探究Farcaster市场表现
一文读懂「图币二象性」代币Pandora:资产的发行新范式?
原文作者:Haotian(X:@tmel0211)
如何理解「图币二象性」创新代币 @Pandora_ERC 404 ?其让 FT 和 NFT 拥有共生关系,以此来解决 NFT 流动性差的难题。技术角度看,让 FT 和 NFT 两种原生矛盾 Token 能被混合应用,新奇且有趣。
ERC 404 标准有啥创新之处?是一次资产发行新范式吗?结合 @SmartLayer 的 TokenScript 会有妙用?接下来,我谈谈我的理解:
首先,需要说明 ERC 404 目前只是一个 Experiment 实验性标准,并没有纳入正式的以太坊 EIP 提案。Pandora 是基于该新实验标准创建的首个代币。ERC 404 目标要解决原先 ERC 20 同质化代币标准,和 ERC 721 非同质化代币标准二者水火不相融的问题。
举个例子,用户同时持有 FT 代币 和 NFT 代币,当用户选择要卖出 NFT 代币时,合约如何判断用户的意图是卖 NFT 而非 FT,即使判断对了,合约如何在存储数据状态区分更新不同的数据状态而不出错?是不是,很抽象?
通俗来说,智能合约在 ERC 20 代币标准下,只需要管理代币的余额状态就行,增加和减少余额的存储数据逻辑简单清晰,若让智能合约在 ERC 721 代币标准下管理状态余额也很简单,Transfer 指向哪个 Token ID 就增减哪个 NFT。
现在要让智能合约同时处理 ERC 20 和 ERC 721 就麻烦了:
合约先要判断用户 Transfer 调用的是 FT 还是 NFT,此外要改变 NFT 状态时还得判断到底选择哪个 Token ID,由于 Uniswap 等这类智能合约并无法直接处理 NFT 交易,还需要给 FT 和 NFT 之间建立一层 Mapping 映射对应关系,进而实现交易 FT 的同时也完成了 NFT 的交易。
ERC 404 (实验)标准的核心黑科技就在于此,它通过有损编码方案让 ERC 20 代币的数量和 ERC 721 代币的唯一 ID 能够在合约存储中使用相同的数据结构,同时又能保持它们的区分和独立性。
比如,假设你有 2.9 个魔法豆(ERC 20),同时又拥有 2 个魔法卡(ERC 721 ,ID 101 和 ID 102),有损编码要同时管理两种类型的数据,可以直接把魔法豆的数量 2.9 作为一个数据整体存储,同时可以给魔法卡的 ID 号加一个特殊的标记,比如 1000000000000 ,这个标记甚至远超 Token 的 Supply,这样合约在调用数据时很容易区分开 ERC 20 和 ERC 721 了。
完成这一步后,要有效管理 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,严格来说这其实算 ERC 404 实验标准的一个「缺陷」。
但技术遇上 Tokenomics 产生了神奇的化学反应。
一个讨巧的方法是,设计一套 NFT 稀有刷新机制,鼓励用户不停将叠加的 FT 代币进行转移,每转移 1 次 FT 就相当于实现了一次 NFT 代币的销毁和新增发操作,也就等同于刷新了一次稀有度,这样用户就倾向于把 FT 代币分开,然后以此来避免稀有 NFT 被销毁,同时又能刷新新 NFT 稀有度。
你看,原本是一个技术逻辑 Bug,通过一层稀有度的运营设计,还真的可以有效化解。当然,用户如果非要较真,要在一个钱包内叠加多个 FT 代币,而且又要让已有的 NFT 代币根据自己意愿(非随机)销毁,怎么做呢?
现有做法有两种, 1)根据 Token ID 顺序执行,很可能把稀有特性的 NFT 被销毁掉;2)指定 Burn 接近 floor price 的 NFT,不过这其实是一层链外逻辑,很可能会因 oracle 喂价延迟问题导致销毁非意愿。而且那个 NFT 接近地板价其实也要用户提前挂单来定义,相当于又接入了 NFT 市场的数据。
与其这样复杂,还不如直接让用户在钱包端编辑并选择。