什么是 ERC-1155?
简而言之,ERC 1155(又名 ERC-1155)最常见的解释是将其定义为 NFT 代币标准。虽然这是正确的,但同时也只是部分定义。毕竟,ERC(“以太坊征求意见”)实际上为多代币管理和交易奠定了基础,这意味着该标准的单个合约可以包含非同质化、同质化和半同质化代币的不同组合。
此外,值得一提的是,ERC 1155 源自 Enjin 团队,该团队从各种代币标准(主要是 ERC 20 和 ERC 721)中汲取了概念和思想。然而,除了结合现有概念之外,新 ERC 标准还引入了一些改进。例如,在 ERC-20 和 ERC-721 下,开发人员必须为每个可替代代币和不可替代代币部署单独的合约。后者经常导致以太坊的区块链充斥着冗余的字节码。此外,将每个合约分成单独的地址也带来了某些功能限制。
因此,Enjin 团队认为,如果 NFT 和更广泛的代币生态系统要发展并扩展到其他应用程序,就需要制定新的标准。因此,目标是找到一种新方法来最大限度地减少交易量和合约的低效率。通过实现这一目标,Web3 游戏平台和其他类型的基于代币的 dapp(去中心化应用程序)可以包括 NFT。幸运的是,这种进步的思维方式导致了 ERC 1155 的诞生。
那么,什么是 ERC-1155?它是一种通用代币标准,支持在单个实例中转移不同类型的代币。这种提高的效率降低了交易成本并减轻了以太坊链的一些负担。此外,该 ERC 还支持多个代币的原子交换和托管。此外,由于 ERC 1155,系统不再需要单独批准代币合约。
NFT 的黄金标准
ERC 1155 是唯一一个可以让你创建各种类型的代币化资产的代币标准,从货币和房地产到数字艺术和游戏物品。反过来,这也使其成为 NFT 的黄金标准。此外,它的一个主要优势是它允许用户创建新项目而无需部署新合约,许多 NFT 市场都采用了这一标准。此外,由于在 NFT 市场项目中应用此功能更有意义,因此 ERC 1155 成为 NFT 平台的卓越标准。
最终,这个强大的 ERC 标准可以将您的区块链开发游戏提升到一个新的水平,特别是如果您利用其优势与先进的工具(例如 Moralis)结合使用。因此,可以肯定地说,几乎没有理由回到更旧、更繁琐的标准。但是,如果 ERC-20 和 ERC-721 满足您对简单项目的需求,您可能仍想使用它们。更简单的标准也是所有新手区块链开发人员的有用学习工具。尽管如此,为了帮助您进一步了解两个领先的 NFT 标准,让我们并排看看它们。
ERC 1155 与 721
即使你只是对铸造 NFT 有所了解,你也一定发现 ERC-721 和 ERC-1155 是最受欢迎的 NFT 标准。然而,ERC 721 是第一个出现的,因此落后于许多较早的 NFT 项目。
ERC 721 的诞生,是以一份 EIP(“以太坊改进提案”)草案的形式出现的。后者是由 Dapper Labs 的 CTO Dieter Shirley 发布的。此外,除了 William Entriken、Jacob Evans 和 Nastassia Sachs 之外,Dieter Shirley 也是公认的 ERC-721 标准的作者之一。而且,这份提案成为了游戏 CryptoKitties 的基础。
从技术角度来看,ERC 721 标准定义了智能合约必须实现的最小接口。当满足此最小值时,它允许 Web3 钱包拥有、交易和管理 NFT。此外,ERC-721 不要求与代币相关的元数据的标准,也不限制添加补充最低要求的功能。此外,请记住,NFT 的智能合约不包含代表 NFT 的文件。这些文件太大,将它们保存在区块链上在技术上和经济上都不合理。因此,NFT 合约仅包含这些文件及其元数据的链接或 URI。通过采用这种方法,NFT 引用链下资源并确保区块链不负责托管这些数据。
可以肯定地说,ERC 1155 在某些方面是对 ERC 721 的改进。毕竟,它可以达到同样的目的。但是,它还支持非同质化和半同质化代币。通过查看下图,我们还可以比较这两个标准:
注意:如果您更喜欢视频,我们建议您观看以下内容:
ERC 1155 的解释:
半同质化 ERC 1155 代币
除此之外,ERC 1155 还引入了一种创建半同质化代币 (SFT) 的新方法。后者是融合了同质化代币和非同质化代币不同属性的特殊代币类型。反过来,这使得兼具两全其美成为可能。
为了帮助您理解 SFT,让我们考虑一个“商店优惠券”类比。商店优惠券是“可替代的”,因为它具有特定价值,可以兑换价值相同的商品。一旦兑换,其价值将降至零,不再作为可替代物品有效。现在,假设我们有一张商店优惠券,一旦兑换,其属性就会改变。例如,它会更改优惠券中有关商品、客户、价格等的信息。反过来,它就变得不可替代了。本质上,半同质化代币标准(例如 ERC1155)能够表示这两种属性,使您能够创建 SFT - 最初是可替代代币,最终成为 NFT 的代币。
ERC 1155 的主要优势
现在您可以回答“ERC-1155 和 ERC-721 标准是什么?”这个问题,现在是时候看看 ERC 1155 的主要优点列表了:
使您能够部署 NFT、同质化代币和半同质化代币
使您能够在智能合约中部署多种代币类型
更高级别的安全性
降低汽油费
增强对去中心化交易所 (DEX) 的支持
减少工作量
动态元数据
上述优势使 ERC 1155 成为终极代币标准。然而,ERC 721 和 ERC 20 仍然非常适合发行单个非同质化和同质化代币。因此,项目的性质将决定你应该关注哪种标准。
ERC 1155 智能合约
至此,您知道 ERC 1155 智能合约同时支持多种类型的代币转移。这些类型的 Web3 合约还使您能够构建原子交换和托管等功能。此外,这使您无需单独授权单个代币合约,而 ERC-721 就是这种情况。
尽管如此,请务必查看下面的 Enjin 图表,其中展示了 ERC 1155 如何简化任意数量代币(甚至不同种类)的代币交换:
上图显示,整个批次获得批准并通过两个简单步骤进行交易,即多个代币的“原子交换”。这就是 ERC1155 合约节省大量以太坊 gas 费用的原因。
此外,借助 ERC 1155 合约,用户可以在一次交易中向不同的收件人发送多个物品。下图展示了此类示例:
令人惊奇的是,一个智能合约和一笔交易可以处理向多个用户进行不同类型的转账。
智能合约示例
如果您想自信地回答“什么是 ERC-1155?”这个问题,查看以下标准的合约示例会有所帮助。以下代码行代表游戏中代币化物品的简单 ERC 1155 合约的示例:
如您在顶部看到的,上述示例利用了 OpenZeppelin 的强大功能,它为您提供了经过验证的智能合约模板。此外,上述合约包括可替代和不可替代的游戏物品。例如,铜是可替代的,而“ Elder_Sword ”是不可替代的。
使用“ GameItems ”,上述合约为每种物品类型分配一个编号。这样,每个整数(“铜”,“水晶”等)就成为“ 0 ”,“ 1 ”等的别名。在后端,这些物品名称简单地读作“ 0 ”,“ 1 ”,“ 2 ”,“ 3 ”和“ 4 ”。
智能合约中实际创建代币的部分是“构造函数”中的“ mint ”调用。mint 调用会根据提供的数量创建新的代币类型。因此,铜币的铸造数量为 10 的 18 次方。水晶的铸造数量为 10 的 27 次方。然而,古剑的铸造数量只有一次。这清楚地表明,该物品是独一无二的——NFT。
此外,请记住,同一个 NFT 代表文件可能有多个实例,每个实例都有唯一的链上 ID。因此,即使刀和魔杖的铸造量很大,它们也是 NFT。因此,它们代表彼此独立的单个物品,而不是货币。
如何获取 ERC-1155 钱包地址余额
如果您读完了上面的部分,那么您现在知道 ERC-1155 是什么以及它有什么用处。看完上面的示例后,您可能已经对如何编写这些类型的合约有了正确的理解,特别是如果您了解 Solidity。如果您不知道但想要了解,请理解智能合约的创建和 NFT 的铸造超出了本文的范围。
相反,我们想用最后一节来解释如何轻松获取 ERC-1155 钱包地址。这就是Moralis简化事情的地方。但在我们告诉您哪个 NFT API 端点将为您获取 ERC-1155 钱包地址之前,我们需要解释一些事情。
首先,请记住,用于铸造 NFT 的智能合约也管理相应 NFT 的转移。这意味着您可以根据智能合约地址(又称收集地址)搜索 NFT。但是,一旦用户或玩家购买或以其他方式获得特定 NFT 的所有权,后者就会被分配给用户的钱包。因此,当您获得 ERC-1155 钱包地址时,您实际上是在获取该代币的所有者。此外,多亏了 Moralis,您可以通过两种不同的方式用一行代码做到这一点:
通过合约获取ERC-1155钱包地址:
通过代币 ID 获取 ERC-1155 钱包地址:
注意:您可以在 Moralis 的文档中查看“ getNFTOwners ”、“ getNFTTokenIdOwners ”以及所有其他 NFT API 端点的详细信息。