如何理解以太坊多重代币标准ERC-1155?

 2023-09-09 21:31:27发布

ERC-1155 是用于创建半同质代币的代币标准,可以在单个智能合约中同时发布可同质化和不可同质化代币。主要可用于游戏行业中道具的生成和处理。该标准的提出对NFT在游戏行业的应用起到了极大的提升。在一定程度上融合了ERC-20和ERC-721的功能。

ERC1155:多重代币标准

ERC-1155由Enjin首席技术官Witek Radomski等人开发,并于2018年6月17日将该标准的第一个版本放置到以太坊的github库中。

为了让 NFT 和更广泛的代币生态系统发展并扩展到其他应用程序,社区需要创建一个新标准。如果游戏平台和其他类型的基于代币的 dApp(去中心化应用程序)想要整合 NFT,他们必须找到一种新方法来最小化交易量和合同效率低下。于是,ERC-1155 诞生了。

ERC20 和 ERC721 标准的问题在于,它们仅允许一个智能合约支持单一类型的同质化或非同质化代币。因此,每次要部署新代币时,都必须编写一个新的智能合约。 此外,上述两个标准均未提供创建半同质化代币的方法。

由此 ERC1155 代币标准应运而生,让以太坊开发者能够使用同一标准创建同质化、半同质化和非同质化的代币。 此外,利用 ERC1155,制定一份合约即可支持多种类型的可单独配置的代币,从而降低了代币创建过程的复杂性。

官方的总结说法是:“用于管理多通证类型合约的标准接口。单一部署的合约可包括同质通证、非同质通证或其它配置(例如半同质通证)的任何组合。”

假设一个开发者想开发一款 NFT 游戏,他们计划创建一种同质化的代币作为游戏中使用的金币和通用的装备,同时计划创建多种非同质化代币,来代表游戏中的独特资产,如皮肤、枪支、商品等。

如果采用 ERC20 和 ERC721 标准,那么创建每一种新的资产类型时他们都必须要编写新的智能合约作为支持。 然而,借助 ERC1155,他们只要编写一份合约即可支持他们想在游戏中拥有的所有种类的代币。

ERC-1155

ERC-1155标准资产交易过程

这些并不能说明某个标准比其他标准好;它们只是用途不同。

ERC-1155的优势

作为多重代币标准,ERC-1155具有多种优势。

一个智能合约,多种通证

当前,ERC-20和ERC-721标准每发行一种通证便需要部署一个新的合约,而隐藏在ERC-1155标准后面的核心概念是一个单一的智能合约可以管理无限种类的通证。

想你一下一台自动购物机,它里面有苏打水、果汁和小食品。消费者通过一个单一的安全接口(投币或按按钮)来和机器交互。机器根据消费者选择来提供商品。相似的,一个ERC-1155标准的游戏合约可以由大量物品或者组件组成,代表从武器到盔甲到血量值、魔法值等等。

所有这些物品或组件都是可重复的,你可以得到不只一件。可重复通证经常用作可拆分货币(绝大多数ERC-20通证),重复通证对于可堆叠物品十分有用(它们不需要被区分),比如说某个弓用到一筒箭。

另一种通证叫着不可重复通证(NFTs)。这种结构允许每一个通证都有自己独特的参数、历史和对真实世界的映射。在一个视频游戏里的宠物龙可以是一个NFTs,它在游戏中拥有自己独特的名字,等级和历史。

批量交易

在ERC-1155里,可以在一个交易里发送多种通证,它会节省gas费用并且防止用户在单一交易中必须等待每一个块。

使用ERC-1155的项目也可以建立原子交换(类似于事务,译者注),它允许用户绝对安全的交换某两种通证,期间不会有诈骗和第三方参与。

进一步的优化

一些作者的进一步体验形成了了更多的优化和费用节省。

沙箱开发者Ronan Sandford使用ERC-1155实现已经完成了在保持正确拥有关系的前提下,在一个块中发行超过1500种通证的尝试。

地平线游戏开发者Phillippe Castonguay已经能够使用一种叫着余额打包技术来节省80-90%的gas费用(同正常的transfer相比)

同时,Phillippe 使用ERC-1155也达到了一秒发送155种资产的传输速度。

数据经济

ERC-1155多通证合约最主要的特点是在一个合约中实例化多种通证。这就意味着创建一种通证只是简单的方法调用,它仅在通证池里增加一个新的ID。

作为对比,创建一个新的ERC20或者ERC-721通证意味着编辑源码并且部署一个新的合约。部署合约会花大量的gas,因为在以区块链上储存数据是昂贵的。绝大多数ERC-20合约基于相同的代码,只需要改动几行,因此其余代码其实是不必要的。这就意味着整个以太坊超过25000个节点中的每一个都要存储这些冗余代码从而变得臃肿。

还有一种类型的开销需要被注意,每一个ERC20或者ERC-721合约都有一个地址,100种通证便需要查询或者监听100个地址,对钱包或者其实软件来讲,必须小心这些通证是否存在。

因此,虽然前面两种标准在一些窄应用场合比较适合(一个单一的货币或者单一的NFT),但是这些数量的创建者可以从ERC-1155标准受益,因为它们可以从非单一的类型创建新的通证并且不需要多个相同的合约。

通证可靠的严格规则

ERC-1155标准中,大量特性被用来构造通证必须严格遵守的规则。

ERC-1155通证是第一种可以通过简单的发送通证从而来执行一个可计算的合约方法的通证。

巨大的进步

通过简单的发送一个通证到DEX交易对地址,这个交易对能立即返回另一种通证到发送者地址。相似的,一个区块链游戏可以每当它收到ERC-1155通证时便执行某些游戏方法。无需访问ABIs或者同智能合约直接交互,你就可以打包、转换、加工或者托管通证。

这种类型的功能最开始在ERC-223被提出,但标准最后失败了。ERC-721也只是实现了“safeTransferFrom”,但是却有一个致命的问题,即没有对所有的交易者进行这样的严格查询。这就意味着用户可能永久的丢失他们的通证并且合约作者在发送通证时无法依赖一个确保的执行。

在ERC-1155中将此限制的更严格意味着可依赖的智能合约和通证网络现在可以开始建立这种强大的功能。用户所需做的一切仅仅是简单的向一个地址发送他们的通证,它会触发一个令人惊叹的事件链。

推荐阅读