NFT的流行,从国际开放的公链到国内的联盟链上,都在持续。如果NFT对外表现的都是收藏品这些属性。而抛开这些外部的表现,回到承载NFT的链上,其表现的是链上的数据资产,而这些链上的数据是通过NFT协议表现出来的。
所以今天我们集中从市场上比较流行或昙花一现的四个NFT协议去看一下协议对数据属性表现的不同之处。
ERC-721是最基础的NFT协议,其定义的就是非同质化的特性,也就是唯一性,以及不可分割性,此外并没有对铸造有明确的说明,也代表着多种类型的数据资产都可能成为NFT的元数据。早期最有代表性的就是CryptoKitties。但像Dentraland上的道具土地等也可以基于ERC721标准发行。
ERC-1155的出现,是第一个对NFT的改版协议,由Enjin首席技术官WitekRadomski等人开发,其主要可用于游戏行业中道具的生成和处理。该标准的提出对nft在游戏行业的应用起到了极大的提升。在一定程度上融合了ERC-20和ERC-721的功能。
ERC-1155允许使用者在同一个智能合约中无限量地重复使用同质化或者非同质化的代币。是可以一次性铸造多种多量同质化及非同质化资产的以太坊标准。这个规则下,就可以批量转移代币资产,以及一次操作就可向不同对象转移多个代币资产,大大提高使用效率降低时间及gasfee成本。
例如,铸造数量1000个NFT道具,如果使用ERC721协议,需要提交1000次,需要支付1000次gas费,但是使用ERC-1155可以一次性提交铸造完成。
ERC-1155标准的规则,也意味着可以把想要交换的代币捆绑在一个合约中,不需要在ERC20和ERC721的合约间切换。
ERC721A出现的目的是为了在一次交易中铸造多个NFT,可以节省gas。代表项目是Azuki,经由Azuki自己开发的协议实现了合约铸造多个NFT的成本与铸造单个NFT的成本基本相同。
ERC721和ERC721A使用了相同的应用程序级逻辑,但优化3个部分:
1.从ERC721Enumerable中删除重复存储,降低了资源占用。
2.每个批次铸币请求更新所有者的余额一次,而不是每个铸币NFT。
3.每个批次铸币请求更新一次所有者数据,而不是每个铸币NFT。
ERC721R是为了ERC721和ERC1155标准打造的退款功能。协议在NFT智能合约中增加了去信任的退款协议设计,允许铸造在给定的期限内退还按成本铸造的NFT,并且收获相应的退款。
当用户在ERC721R集合中铸造NFT时,资金由购买时的智能合约持有。该智能合约可以设置特定时间区间,在该时间范围内,用户随时可将NFT发送给合约并获取自己的初始购买资金,合约在该时间内也不能提走用户的购买资金。
例如:一份含有ERC721R的智能合约,该合约设置了NFT购买的可退款时间为10天内,用户在该合约中花费0.5ETH购买了1枚NFT,两天之后,用户想拿回自己的ETH,随后在该合约归还NFT,获取自己的初始购买资金0.5ETH。本次操作中用户只会损失交易的gas成本。
不过,目前出现的ERC721R在代码层面有存在安全风险,主要存在于管理员地址的权限问题,当用户退款后,该用户的NFT会转移至refundAddress地址,也就是管理员地址,此时,管理员可以用NFT进行退款,或者铸造一个NFT进行退款,得到合约内部所有的ERC20资金。