火爆的Pandora和它背后的ERC-404

一、背景介绍

2024年春节前夕,一个名叫 Pandora 的项目突然引起了市场的关注。2月2日部署合约后短短两周时间,其总市值就超过了1.5亿美元。

在其出色的造富效应之后,市场上也涌现了一大批仿盘,这时候笔者才发现Pandora并不是一个普普通通的代币,其背后的团队提出了一个新的代币标准,即ERC-404。

二、ERC-404是什么

我们可以在项目团队的Github上看到对ERC-404的原始介绍:

ERC404 is an experimental, mixed ERC20 / ERC721 implementation with native liquidity and fractionalization. While these two standards are not designed to be mixed, this implementation strives to do so in as robust a manner as possible while minimizing tradeoffs.

ERC-404 为一种结合了 ERC-20 和 ERC-721 标准的代币。它既可以提供ERC-20的流动性,又做到了将NFT碎片化的处理。

  1. ERC-404的新特性

在之前的文章中,笔者已经分析过ERC-20和ERC-721标准的具体内容(juejin.cn/post/723878... ,ERC-20是同质化代币,白话来说就是币和币之间没有差异,比如我们钱包里有若干10块钱,购买物品时抽出哪一张10块钱进行支付本质上没有差异。而ERC-721是非同质化代币,每一枚代币都有其特定的意义,常用它来做数字头像、数字徽章、数字艺术品等等。两者之间有着天然的差别,那么ERC-404是如何结合二者,创造出新的特性呢?

结合项目团队在Github上开源的ERC-404代码,我们不难看到它带来的新特性。

首先它的特别之处在于用户mint一个Token的时候,这个用户的钱包地址中同时获得了一个对应的NFT.

js 复制代码
function _mint(address to) internal virtual {
        if (to == address(0)) {
            revert InvalidRecipient();
        }

        unchecked {
            minted++;
        }

        uint256 id = minted;

        if (_ownerOf[id] != address(0)) {
            revert AlreadyExists();
        }

        _ownerOf[id] = to;
        _owned[to].push(id);
        _ownedIndex[id] = _owned[to].length - 1;

        emit Transfer(address(0), to, id);
    }

如果此后,用户将其持有的Token进行转移,比如A钱包转移给B钱包,那么此转移过程伴随着A钱包里NFT的销毁,和B钱包里对应个数的NFT的mint。转移的Token数量可以不是整数,但创造和销毁的NFT数量是取整的。其内部方法如下:

js 复制代码
function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        uint256 unit = _getUnit();
        uint256 balanceBeforeSender = balanceOf[from];
        uint256 balanceBeforeReceiver = balanceOf[to];

        balanceOf[from] -= amount;

        unchecked {
            balanceOf[to] += amount;
        }

        // Skip burn for certain addresses to save gas
        if (!whitelist[from]) {
            uint256 tokens_to_burn = (balanceBeforeSender / unit) -
                (balanceOf[from] / unit);
            for (uint256 i = 0; i < tokens_to_burn; i++) {
                _burn(from);
            }
        }

        // Skip minting for certain addresses to save gas
        if (!whitelist[to]) {
            uint256 tokens_to_mint = (balanceOf[to] / unit) -
                (balanceBeforeReceiver / unit);
            for (uint256 i = 0; i < tokens_to_mint; i++) {
                _mint(to);
            }
        }
				emit ERC20Transfer(from, to, amount);
        return true;
    }

可以看到,在完成一次代币转移时,无需用户做任何额外操作,就可以实现同质化代币和非同质化代币的同时变化。

细想一下,ERC-404代币标准的创新之处在于它巧妙地把ERC-20的代币数量和ERC-721的tokenId从数据结构上做了关联。随着每次代币的产生、转移、销毁,也就是代码中对应的mint方法,transfer方法和burn方法中,下面这三个映射关系都同步变化,实现了token数量和tokenId的持有者信息的同步联动。

js 复制代码
  	/// @dev Owner of id in native representation
    mapping(uint256 => address) internal _ownerOf;

    /// @dev Array of owned ids in native representation
    mapping(address => uint256[]) internal _owned;

    /// @dev Tracks indices for the _owned mapping
    mapping(uint256 => uint256) internal _ownedIndex;

2. 新的可能性

NFT交易缺乏流动性问题一直是困扰其发展的一大难题,之前也出现过一些解决NFT流动性问题的方案,但从简便适用、应用推广等方面都有所欠缺。ERC-404的出现恰好可以解决NFT流动性的问题,也为NFT碎片化合集的玩法打开了新思路。

业内称ERC-404标准是一次创新性的图币结合的实践,依托于此的Pandora在市场上的表现令人眼前一亮。目前Pandora既可以以NFT的形式在OpenSea和BLUR等NFT交易市场上进行交易,也可以以ERC-20代币的形式在Uniswap上灵活交易。

举个例子,用户A在Uniswap上购买了1个Pandora,除了收到代币之外,用户A还会收到一个新铸造出的Pandora NFT Replicant,如果这个NFT Replicant恰好有更高的稀有属性,用户A可以选择在NFT交易市场以更高的价格出售此NFT Replicant。出售就意味着把这个token id的NFT转移给购买者。

另一种情况,如果这个用户A获得的NFT Replicant并不是他想要的,他可以通过继续在Uniswap上进行交易或者通过_transfer()转账的方式将这1个Pandora转移到其他钱包,假设用户A选择了从他的a钱包转移1个Pandora给自己的另一个钱包b,那么此时a钱包减掉1个Pandora,同时销毁这个token id的NFT Replicant,钱包b收到1个Pandora,同时新铸造出来另一个token id的NFT Replicant。由此在忽略gas费用的情况下,用户A可以通过不断进行转账操作,来获得他想要的NFT Replicant,这也是一种"开盲盒"式获得稀有NFT资产的玩法。

三、风险问题

正如其项目团队所说,目前ERC-404仍是试验性质的代币标准,虽然 ERC-404 使用了"ERC"标准架构,但事实在 Ethereum Improvement Proposals 中并没有 404 的 ERC 标准。在上线之处,各个合约审计团队给出的合约审计结果也都有风险提示。如果后面得不到Ethereum 基金会和V神的认可,ERC-404的发展前景将会受到严重影响。

除此之外,在应用ERC-404进行交易时,也会发现它仍有些欠缺之处。比如当拥有多个代币时,无法在Uniswap上指定出售哪一个代币,如果出售后销毁的是高稀有度的NFT Replicant,那将不是用户期望发生的。另外也有一些玩家和开发者指出,通过transfer来刷NFT稀有度,将很容易被恶意操控,如果链上的NFT稀有度算法是公开的,那么交易者可以选择不在链上铸造某个id的 NFT,或者故意操作失败导致回滚交易。在 Pandora 频繁的销毁与铸造生成 NFT 中,稀有度判定算法或仍是可预测的,并没有从根本上解决关于稀有度被操纵的问题。

乐观来看,ERC-404仍处于早期阶段,其发展和完善仍然值得我们共同期待。

四、参考资料

  1. ERC-404的1.0版本:github.com/Pandora-Lab...
  2. ERC-404的2.0版本:github.com/Pandora-Lab...
  3. ERC-404 赛道探讨:创新实验还是短期炒作?foresightnews.pro/article/det...
  4. 以太坊新试验代币标准 ERC-404:图币结合新探索 存在哪些风险? www.wublock123.com/index.php?m...
相关推荐
BSV区块链1 天前
关于BSV区块链覆盖网络的常见问题解答(上篇)
网络·区块链
荔家大少1 天前
区块链媒体推广:15个数字解读未来-华媒舍
大数据·区块链·媒体
0x派大星2 天前
Solidity 存储和内存管理:深入理解与高效优化
web3·区块链·智能合约·solidity
0x派大星2 天前
Solidity智能合约中的事件和日志
web3·区块链·智能合约·solidity
_.Switch3 天前
Python Web WebAssembly 与 Python 的协同工作
前端·python·安全·架构·区块链·智能合约·wasm
CertiK3 天前
CertiK《Hack3d:2024年第三季度安全报告》(附报告全文链接)
安全·web3·区块链
Sui_Network3 天前
Sui主网升级至V1.34.2
运维·服务器·物联网·架构·区块链
杏酸雪菲期权4 天前
期权卖方怎么选择权利金高的品种,期货VIX高低对行情有什么影响
区块链
CertiK4 天前
Techub专访顾荣辉教授:解密CertiK的安全战略路线
安全·区块链·web3.0
苏格拉真没有底4 天前
Web3.0 应用项目
区块链