随着互联网的不断发展,程序员能够掌握和运用的技术也在不断的增加,而今天我们就一起来了解一下,游戏场景中关于NFT技术的应用与协议标准都有哪些。
1、NFT是什么
NFT全称为non-fungibleToken,中文名叫非同质化通证。我们常见的Token(如BTC,ETH等)都是同质化的,每个BTC之间没有任何区别(就像2张100元人民币一样),可以互换和分割。
2、NFT的主流协议标准
ERC721
ERC721协议诞生自cryptokitties,是早被以太坊社区认可的NFT协议,也是目前应用广的标准。它定义了NFT的四个关键元数据:ID(全局id),NAME(名称),SYMBOL(符号),URI(统一资源标识符),这些也成为了后来出现的各种NFT协议的元数据基础。ERC721协议接口与ERC20类似,能够实现NFT的发行、交易和授权,基本满足区块链业务的需要。
然而,ERC721协议有一个致命缺陷正制约着它的普及—一份合约只能发行一种NFT资产。加上Solidity也没有很好的方案能方便地统一管理不同合约的资产,这使得ERC721难以胜任复杂游戏的场景。
ERC1155
ERC1155是由Enjin提出的适用于游戏场景的NFT资产协议。它与ERC721不同的地方主要在以下三点:
可以在同一份合约内发行任意种类的NFT资产,且可以对不同种类的多份资产打包交易。这大大节约了用户在进行资产交易时的手续费开销,并且优化了体验。
通过idsplit方案可以同时表征FT(FungibleToken,例如BTC、ETH)和NFT。这在游戏场景里比较有用,例如表征一些可堆叠的消耗品(血药、蓝药等),它们本身也是同质化的。
移除了元数据中的NAME和SYMBOL字段,仅保留ID和URI。这降低了ERC1155本身的描述能力,而把描述资产的权力让渡给了上层,Dapp可以按需定制对URI字段的解析逻辑。对于游戏场景来说,通过牺牲去中心化来换取便利性和扩展性是值得的,这使得开发者针对不同的业务场景去复用NFT道具。
从设计上来看,ERC1155更看重NFT的轻量和互操作性。在Enjin对ERC1155的实现案例中,更是直接使用整个id字段来表征FT的种类,而对于id的具体含义则交由更上层的解析。
是EOSIO区块链上的NFT资产标准,源自社区团队,也是目前使用较为广泛的标准。保留了NFT的四大元数据字段:id,name,uri,symbol,并且可以在一份合约内发行任意种类和任意数量的NFT资产,是非常通用的NFT资产标准。然而,它的缺陷在于数据较为冗余,且无法在单次合约调用中批量转移NFT。
是THEOASIS协议的一部分,后者是由DegameLabs实验室自研的一套适用于游戏的跨游戏、跨合约NFT资产转移协议。我们吸取了以上三种NFT资产协议的经验,制定了一种新的通用资产协议。开发者可以利用发行任意种类、任意数量的FT和NFT。
所发行的资产仅有三个元数据:UUID,URI与SYMBOL。URI承载着NFT资产含义解析的重任。我们设计了一套简洁的、针对游戏场景的URI格式,能大化、丰富的描述NFT资产的相关信息。
与ERC1155一样,将更具体的NFT资产描述能力让渡于更上层,但它为上层提供了更丰富的元信息,在具备自描述能力的同时保证了扩展性。该部分设计文档可见Github。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。