当ERC721被官方认可时,新的标准1155和998已经在路上了...
ERC系列是基于EIP( Ethereum Improvement Proposals)以太坊优化提案的类型之一,主要是面向应用层的标准。其他的EIP类型包括核心层(Core)、网络协议(Networking)、接口(Interface)、元(Meta)等等。本文将介绍四个ERC提案,他们分别是:目前最流行且被官方正式接受的ERC-20和ERC-721,极具潜力的ERC-1155和正在构建中的ERC-998。
ERC-20
ERC-20是在2015年11月份推出的,是目前最为常用的标准化代币规则,规则中包括了6个操作函数和2个事件函数。ERC-20是同质化代币(Fungible token,缩写为FT),所有的代币单位价值都是一样的且可以分割。此外任何 ERC-20 代币都能立即兼容以太坊钱包以及支持以太币的钱包,交易所可以很容易地整合这些代币,绝大多数ICO都使用了ERC-20代币。
ERC-721
ERC-721是非同质化代币(Non-Fungible Token,缩写为NFT)的标准接口,它包含了10个操作函数和两个事件函数。ERC-721在2017年底首先被CryptoKitties游戏所使用,CryptoKitties的火爆让人们意识到了ERC-721的重要价值。ERC-721是非同质化代币,也就意味着每个Token都是不一样的,都有自己的唯一性和独特价值,当然这也就意味着它们是不可分割的,也同时具有了可追踪性。ERC-721代表了对资产的所有权,为物品或记录的代币化提供了可能,开劈了一个巨大的市场,比如现实世界的房屋(房屋是不可移动,占据特定空间的资产,具有唯一性)和独一无二的艺术品;虚拟世界中的收藏物品,如以太坊上的各种收藏游戏中各种独一无二的收藏品;金融交易中的借贷交易记录。
ERC-1155
ERC-1155是由Enjin的CTO Witek Radomski提出的在一个智能合约中定义多物品/代币的标准接口,主要服务于区块链游戏中的虚拟道具。
在之前关于Enjin的报道《游戏道具上链的价值——且看Unity+Enjin》中,我们曾看到Enjin在道具上链的方向上做了很多文章,包括实现下述功能:
绑定物品和白名单
任何的游戏物品都可以定义成绑定物品、临时可交易物品或永久可交易物品。绑定物品将会绑定给获得这个物品的人,当然物品创建者或开发者也可以定义一个白名单,白名单里的玩家有以下权限选项:
可以发送物品给任何玩家,可以从任何玩家那里接收物品
只可以发送物品给任何玩家
只可以从任何玩家那里接收物品
只能从特定的玩家哪里接收或发送物品
物品供给模型
对于游戏中的任何物品,总的数量供给一定是遵循某个模型或算法规律的(尤其对于稀有的物品而言)。Enjin提供了一些供给模型给开发者,辅助他们决定物品的供给方式。
目前可选的单个物品供给模型有:
固定供给数量
每年按%增加
每年按数量增加
无限供给
通缩供给 - 即被溶解的物品不会再产生,总量只会减少不会增加
自定义智能合约供给
最后一种是指,开发者完全可以自己写智能合约来实现想要的物品供应逻辑。
Token打包
玩家拥有的任何物品Token都可以被合并打包成一个“Token包”,Token包也有自己独立的id。概念听起来有点抽象,其实在这个机制下,游戏开发者可以轻松实现装备的升级和打孔镶宝石等游戏玩法,我们类比一下暗黑中的镶钻机制,一件有两个孔的武器,和两个完美的宝石,这是三个token,当我们把这两个宝石镶嵌进武器中,就变成了一个token包——也就是新的武器。
同时,这个机制下也可以使得复杂交易简单化,比如玩家A和玩家B想交易20个物品,如果是一个个交易需要进行20次交易,如果可以将20个物品token打包,只需进行一笔交易后在解包,效率和体验就提升了很多。更简单的理解就是,把东西装进一个背包,一次性交易背包中所有的物品。
之前我们很好奇Enjin是通过什么样的方式来实现这些特性,现在随着ERC-1155的提出,其实也就是以上特性的落地方案。
ERC-20和ERC-721两者对游戏道具的交易并不方便,只适合处理物品种类很少的游戏,面对一个拥有成百上千种物品的大型游戏就显得力不从心,因为各种物品所具备的功能和属性不一样,每种物品都需要部署单独的智能合约,这就会造成游戏中的Gas费十分高昂。但部署信息的冗余度又很高,这又造成了极大的浪费,成熟的游戏绝不会让玩家为这种浪费埋单。所以ERC-1155究竟做了一些什么事情呢?
ERC-1155用了一种新的方式来定义代币,物品将被储存的一个中央智能合约,并占用极少的空间仅用来互相区分。
原子交换——交易多个物品
在现有的代币设计逻辑下,需要多个步骤才能完成一次原子交换——在不需要第三方中介的情况下用一种代币去交易另一种。
在当前规则下,由于每一种ERC-20和ERC-721代币都是在独立的合约里,交换两种代币总共需要4次交易,每增加一个额外的代币类型,都需要一次额外的“许可(Approval)”操作。如下图
而通过一些设计,ERC-1155可以满足,不管要交易多少类型的将它们分组在一起,只需将其捆绑一起经过两个步骤即可,解决了现有标准的低效率问题。如下图
多次交易打包
先想象一下,如果你去超市买东西,整个购物车里面的东西,你需要每个商品单独结账一次,这会是多么蛋疼的体验。
其实现在ERC-20和ERC-721的交易体验就是这样的,非常低效。
使用ERC-1155,你可以仅使用一次交易,就能一次性把多个物品发送给一个或者多个接收方,这能有效的减少Gas费用和以太坊的拥堵。
Transfer, approve, melt和trade这几个函数都可以接受数组形式的变量,可以让用户再一币交易中完成100-200次的批量操作。
综上,ERC-1155融合了ERC-20和ERC-721各自的特性和优点,开发者可以给自己的游戏创建几千种不同类型的道具。根据需要,每一个物品可以有自己独立id或者是像ERC-20代币一样可以同质化。
Github地址
https://github.com/ethereum/EIPs/issues/1155
Ropsten测试合约
https://gist.github.com/coinfork/e87fb5aced1209af124804c4f81fe48a
ERC-998
ERC-998是由Matt Lockyer在今年4月15日提出的一种名叫可组合非同质化代币(Composable NFTs,缩写为CNFT)的构想。它的结构设计是一个标准化延伸可以让任何一个NFT可以拥有其他NFT或FT。转移CNFT时,就是转移CNFT所拥有的整个层级结构和所属关系。简单来说就是ERC-998可以包含多个ERC-721和ERC-20形式的代币。
举个例子,假如CryptoKitties游戏中,还有猫咪饼干和猫咪服装两种玩法,猫咪饼干是一种ERC-20的代币,猫咪服装是ERC-721类型。如果你给自己的某只猫咪穿上了衣服,给它分了一些饼干,其实这两个新物品是属于猫咪的。但是在现有的ERC-721之下很难体现这种从属关系。
如果需要交易整只猫咪和它所拥有的物品时,需要对于猫咪本身、猫咪的衣服以及猫咪饼干分别做交易。那么ERC-998所做的事情就是建立一个相应的以ERC-721猫咪为父token,ERC-20饼干, ERC-721服装为子token的新代币。设想我们现在要卖掉这只猫,现在把它们整合成一个新的个体,只需要对这个整体进行合理构建和交易就可以,这在所有权和交易行为上都会得到极大的简化。
另外一个例子,之前ERC-721在房屋交易中表示的是房子这个抽象的整体,但其实一栋房子是一整套东西的集合体,比如独一无二的土地使用权(ERC-721),量产的电视(ERC-20)。如果你是楼盘开发商,你会扔掉电视因为你看重的只是房子的土地使用权,这些都需要更细化的token来表示。这时就可以用到ERC-998规则为父token(房子)添加各种子token(房内物品)来完整的表示这个房子,新的整体token依然还是不可分割的NFT,且包含了房子对其中物品的所有权关系,所有人都会喜欢这种明明白白表现所属权和一次性交易一整个token的方式。
ERC-998的结构中包含两种映射关系,父tokenID映射到子token合约地址。当子token是NFT/FT时,子合约地址映射到对应的子tokenID/余额。 也就是说对于子ERC-721 token,ERC-998会追踪tokenID,而对于ERC-20 token,ERC-998会追踪token数量。 这种内部记账将有助于确保不拥有父token的人无法转移子token。
经过两个月的开发,ERC-998有了很多功能:
添加NFT子token
添加FT子token
转移NFT子token
转移FT子token
查看拥有的token
追踪token
Matt和其他社区开发者还在持续优化接口协议,减少Gas,安全性,回撤可扩展性,命名规则,标准化等问题。现在ERC-998还并没有正式成为以太坊的EIP,但已经得到了不少社区大神的注意和反馈。
Github地址
https://github.com/mattlockyer/composables-998
以太坊上的信息越来越多,链上资产的属性也越来越复杂,现有的ERC-20和ERC-721是不可能支撑一个拥有庞大道具库的游戏正常运行和交易的。ERC-998和ERC-1155这些富有新意的想法也许是一些解决方案,或者至少他们可以给开发者们带来更多的思路去优化现有的方案。
参考文章:
1.https://medium.com/coinmonks/introducing-crypto-composables-ee5701fde217
2.https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226
量子链QTUM全球黑客马拉松已经开始!
点击阅读原文,查看最全的DApp排行
对DappReview感兴趣?
想上船一起见证DApp的机遇和发展?
DappReview
最深度Dapp评测、技术分享、行业干货
每周最新最快的Dapp指南,最前沿的底层生态解析
游戏Dapp开发方向和真知灼见
汇集了我们从小到大近3000游戏涉猎的结晶