ERC-1155:以太坊的最终令牌标准

6 个月前 · 原创文章

就在一年前的2018年6月17日,我将ERC-1155多令牌标准第一个版本推到了以太坊的Github存储库,并开启了一个评论和反馈问题。

从那时起,该标准获得了大量的支持,包括来自社区的50多个修订和400条评论,他们提供了宝贵的意见,并帮助将ERC-1155塑造成有史以来最强大的以太网标记标准。

今天,我很自豪地分享ERC-1155已经进入最终状态,并已成为官方的以太坊令牌标准。

现在它已被以太坊社区封为“最终”,因此ERC-1155不再有任何变化。它是铸造可替换和不可替换资产的新标准,开发社区可以开始构建集成ERC-1155资产的应用程序,并完全相信当前标准是面向未来的。

ERC-1155将继续留在这里。

以太坊改进建议

几年前,以太坊社区同意向以太坊生态系统引入新的改进建议。社区成员在以太坊GitHub页面上提出了一个问题,并描述了一个有益于区块链及其周边社区的新功能,流程或标准。

在Enjin,我们自2017年以来一直在内部构建我们称之为“单片令牌合同”的东西。我们意识到现有的ERC-20和ERC-721令牌标准对于我们设想的各种游戏项目都不够灵活。

最终,我们意识到这种结构对于游戏和其他行业都有一些令人难以置信的好处和用例,如果我们希望这些新令牌成为现实,我们必须将其标准化

创建一个标准意味着更大的以太坊社区将开始支持这种新的令牌,它将为使用标记化区块链资产的钱包,交易所,游戏和新项目的更快采用铺平道路。


ERC-1155在一份智能合约中实现了无数可互换和不可替代的令牌。

一个智能合约,许多代币

虽然ERC-20和ERC-721令牌需要为每个新的“类”令牌部署新的智能合约,但ERC-1155背后的核心概念是单个智能合约可以管理无限数量的令牌。

可以把它想象成一台自动售货机,里面装着各种各样的苏打水,果汁,甚至小吃。客户使用单个安全接口(插入硬币,按下按钮)与机器交互,机器分配他们选择的商品。同样地,为游戏制作的ERC-1155合同可以包含各种各样的物品,从武器和盔甲到健康药水,魔法卷轴等等。

这些项目中的每一项都可以是“可替代的”,可以提供多份副本。虚拟代币用于可分割货币(大多数ERC-20代币),它们对于不需要区分的可堆叠物品也非常有用,例如一束弓箭。

独一无二的令牌被称为不可替代的令牌(NFT)。这种结构允许每个令牌拥有自己独特的参数,历史,并反映现实世界。视频游戏中的宠物龙可以是NFT并且具有其自己的唯一名称,功率级别以及游戏中的丰富历史。

批量转移

使用ERC-1155,可以在一次交易中发送多个令牌 -  大大节省了天然气成本,并且无需在单次转移中等待每个块。

使用ERC-1155的项目也可以使用相同的基本设计构建原子交换,允许用户将一种令牌换成另一种令牌,绝对安全,不涉及欺诈,也不涉及中间方。

进一步优化

一些作者的进一步实验成就了更多的优化和燃料的显著改善!

Sandbox开发人员Ronan Sandford能够在一个区块中铸造超过1,500个令牌,同时保留ERC-1155实施的真正所有权。

https://twitter.com/wighawag?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1136975353065496576%7Ctwgr%5E393039363b74776565745f6d65646961&ref_url=https%3A%2F%2Fblog.enjincoin.io%2Fmedia%2F2e4beee6891cf03347060f9b0d0568e8%3FpostId%3Da83fce9f5714


Horizon Games的开发人员Phillippe Castonguay能够使用一种名为Balance Packing的技术(在一个ID中存储16个低分辨率令牌),与常规传输相比,可节省80-90%的燃料。

Phillippe还能够通过ERC-1155令牌实现每秒超过155个资产的传输速度!

https://twitter.com/PhABCD/status/1134489086880862208  


数据经济

ERC-1155多令牌标准的主要特征是在单个智能合约中实例化的多个令牌。这意味着“创建”新的令牌类型可以像调用将新ID添加到可用令牌池的函数一样简单。

相比之下,使用ERC-20和721标准创建新的令牌类型意味着编辑代码并将全新的合同部署到以太坊区块链上的地址。部署合同需要花费大量的天然气(ETH),因为数据存储在世界共享的区块链上自然是昂贵的。大多数ERC-20合同都基于完全相同的代码,编辑了几行,使得其余的代码变得不必要。这意味着以太坊的25,000多个节点中的每一个节点都会变得杂乱无章,冗余的代码将永远留在那里!

每次启动新令牌时,还需要通知每个新的ERC-20或ERC-721合同地址的操作开销。一百个新的代币将意味着要签约的100个新合同 - 每个钱包和每个必须知道甚至存在的令牌的软件。

因此,虽然前两个标准适用于狭窄的使用案例 - 无论是单一货币还是单一类NFT - 绝大多数创作者都将受益于ERC-1155能够即时创建新令牌并代表不止一个“类型”没有重复相同的合同。

严格的规则使令牌可靠

ERC-1155令牌标准的一个令人难以置信的特性是由令牌必须遵循的严格规则集实现的。

ERC-1155令牌是第一种可以通过简单地将令牌发送到地址来执行确定性智能合约功能的令牌

这是巨大的。

只需将令牌发送到DEX交换地址,交易所就可以立即将另一个令牌返回给发件人的地址。类似地,区块链游戏一旦从用户接收到ERC-1155令牌就可以执行游戏功能。令牌可以被包装,转换,制作或托管,无需访问ABI或直接与智能合约交互。

这种功能最初是在ERC-223中提出的,但该标准未能成功。ERC-721还实现了“safeTransferFrom”,但是存在致命的问题,即并非严格要求所有传输,这意味着用户可以永久丢失其令牌,并且合同作者在发送令牌时不能依赖于保证执行。

在ERC-1155中做出这一严格规定的决定意味着智能合约和令牌的可靠网络现在可以开始构建这种强大的功能。用户需要做的就是将他们的令牌发送到一个地址,以触发一系列令人敬畏的事件。

元数据

去年ERC-1155标准的主要更新之一是决定将有关令牌的所有元数据移动到外部JSON文件。这很大程度上受到ERC-721元数据扩展的启发,但我们添加了一些改进。

没有更多的遗留元数据

符号:(在ERC-20和ERC-721标准中找到)未包括在内,因为这不是虚拟物品/资产的相关数据。这些3个字母的符号通常仅用于代码和货币交易,但是当您标记更多的常规项目时,它们并不那么有用。

名称:也被从核心标准中删除。为什么?在许多用例中,在区块链上存储名称将是过度的。相反,现在可以在JSON元数据标准中定义每个令牌的名称。

身份证换人

通过使用替换字符串“{id}”,ERC-1155合同现在可以指向无限数量的令牌URI,而无需在链上存储任何其他数据。这甚至可以用于指向为数据库中的每个标记托管动态生成的标记JSON的Web服务。{id}字符串也可以在JSON内部使用,以自动链接到每个令牌的图像。这显着降低了开发人员为大型令牌集显示元数据所需的开销。

本土化

由于令牌信息是以JSON格式定义的,因此现在可以使用{locale}对多种语言进行本地化。支持多种语言的钱包和软件可以显示令牌名称,图像和任何其他数据的备用版本。

保证日志跟踪

随着以太坊生态系统的不断发展,许多dapps依靠传统数据库和资源管理器API服务来检索和分类数据。ERC-1155标准保证智能合约发出的事件日志将提供足够的数据,以创建所有当前令牌余额的准确记录。数据库或资源管理器可以监听事件,并能够为合同中的每个ERC-1155令牌提供索引和分类搜索。

智能合约不再需要维护每个令牌ID的索引,并且ID不需要以任何方式顺序。

这与枚举(浏览链上所有令牌的能力)完全不同,但它在效率方面 带来了显着的好处,甚至允许每个令牌薄荷,燃烧和转移的整个标准化记录。直到今天,这还不可能以标准化的方式实现,并且将允许很酷的生态系统优势,例如对令牌和富令牌探索者的深度数据分析。

想象一下,能够随时间倒带和快进并分析完全不同的ERC-1155令牌的使用模式和生命周期,无论正在分析哪个智能合约。

令牌所有者将能够更多地了解他们的资产,例如他们的特定令牌何时被铸造,并且将来可以开发工具,这些工具可以为基于该技术的公司提供有用的见解。

结论

ERC-1155标准是区块链社区一年辛勤工作的结晶。如果你是在实施ERC-1155的规划,您可以查看整个标准,以及每个决定背后的理由在这里

您还可以访问原始问题主题以查看讨论历史记录:

要创建自己的ERC-1155令牌合同,Enjin的官方参考实现在GitHub上是开源的:

您可以使用此代码作为您自己的智能合约的起点。您还可以考虑使用Enjin平台,这是面向开发人员和非开发人员的功能最丰富的区块链开发工具集。



创造者

以下作者参与了使ERC-1155成为现实:

  • Witek Radomski
  • 安德鲁库克
  • 埃里克比奈
  • James Therien
  • Philippe Castonguay
  • 罗南桑德福德

这些令人惊叹的人都对Multi Token标准EIP规范做出了重大贡献和改进,我真诚地感谢每位作者的帮助和奉献,使ERC-1155比我们想象的更强大和面向未来。

最后,我们都要感谢令人惊叹的以太坊社区,并感谢参与其反馈的所有人完成新的ERC-1155多标记标准!


恩金币

最大的在线游戏社区创作平台