---
title: "ERC-1155 指南：ERC-721 与 ERC-1155 对比"
description: "了解 ERC-1155 代币标准，对比 ERC-721 与 ERC-1155，理解二者的区别以及各自的适用场景。"
---

# ERC-1155 指南：ERC-721 与 ERC-1155 对比

Ethereum 上新应用的出现促使开发团队设计新型代币标准。早期市场由 [ERC-20 代币标准](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)主导，该标准定义了传统代币（如 DAI 或 UNI）的运作方式。这种加密资产处理方式将所有资产视为完全可互换（即同质化），在概念上类似于 USD 这样的货币。

然而，在过去 18 个月中，NFT 吸引了市场的注意力，其依赖于更新的标准 ERC-721。该标准支持创建一次性的定制代币：例如收藏卡牌，或是[完全独一无二、无法复制的个人头像](https://www.larvalabs.com/cryptopunks)。

近期，加密市场的关注点开始转向另一种标准——具有全新属性集的 ERC-1155 代币标准。ERC-721 与 ERC-1155 之间的选择常令团队感到困惑，了解何时使用哪种标准非常重要。虽然 ERC-1155 是更新的标准，在技术上有一些优势，未来可能占据更有利的地位，但它并非对 ERC-721 的严格升级，二者在某些方面存在差异。

## NFT 简史

为什么这两种代币标准之间的选择会成为一个痛点？毕竟，如今许多 NFT 项目仍在使用 ERC-721 标准。

Ethereum 生态系统最初并不需要新的代币标准。毕竟，大多数人热衷于使用广受好评的智能合约功能，这也是 Ethereum 在早期脱颖而出的原因。创建一个带有配套 ERC-20 代币的区块链网络相对容易，这催生了众多新项目，例如 [Crypto.com](https://crypto.com/) 和 [Circle 的 USDC](https://www.circle.com/en/usdc)。

但当开发者意识到智能合约功能在其他用例上的潜力时，[Ethereum 生态系统](https://www.alchemy.com/dapps/ecosystem/ethereum)经历了一场巨变。与完全可互换、功能类似于一美元纸币的同质化代币不同，能够唯一标识每个代币的非同质化代币催生了大量新应用。

这两种代币标准各有其应用场景，了解它们各自的特性有助于决定在你的项目中该采用哪一种。

## 什么是 ERC-721 代币标准？

ERC-721 代币标准开启了 NFT 热潮。它是同类标准中的第一个，因此也是创建此类独特代币中最流行的标准。NFT 有着悠久的历史，但正是随着 ERC-721 代币标准，它们才真正借助 [CryptoKitties 项目](https://www.alchemy.com/case-studies/dapper)走到台前。

CryptoKitties 背后的公司 [Dapper Labs](https://www.alchemy.com/dapps/dapper-labs) 在 2017 年[通过一项 Ethereum Improvement Proposal](https://eips.ethereum.org/EIPS/eip-721)（EIP）引入了 ERC-721。CryptoKitties 是一组可收集的、随机生成的小猫，可以单独交易，类似于电子宠物或 Pokemon。每只 CryptoKitty 都是 100% 独一无二的——它们无法被复制，并且有交易历史记录，可以让公众准确知道该小猫在其整个生命周期中曾经归谁所有。

<ImageBlock
  src="https://media.alchemy.com/1704634572-sea-turtle-conservation.jpg"
  alt="与 Operation Jairo 合作的限量版 CryptoKitty，用于资助海龟保护项目。"
  width={1600}
  height={1021}
  caption="与 Operation Jairo 合作的限量版 CryptoKitty，用于资助海龟保护项目。"
/>

除了完全独特之外，以下是 ERC-721 的一些其他功能规范：

- 它允许你在账户之间转移 NFT，使 NFT 可以用于兑换其他货币。
- 它允许你识别网络上一组 NFT 的总供应量。
- 它允许你查询特定资产的所有者。

仅仅四年之后，基于 ERC-721 的 NFT 已经席卷了整个加密生态系统。相关项目范围广泛，从售价高达数千万美元的[原创数字艺术品的链上所有权](https://www.dexerto.com/tech/top-10-most-expensive-nfts-ever-sold-1670505/)，到[成为加入某个专属俱乐部的公开会员凭证的独特头像](https://www.rollingstone.com/culture/culture-news/bayc-bored-ape-yacht-club-nft-interview-1250461/)，再到[私有土地的部分所有权](https://www.entrepreneur.com/article/382816#:~:text=NFTs%20for%20fractional%20property%20ownership&text=NFTs%20can%20be%20used%20to,issuing%20tokens%20on%20the%20blockchain.)。

## 什么是 ERC-1155 代币标准？

[ERC-1155 代币标准](https://github.com/ethereum/eips/issues/1155)由 [Enjin 项目](https://enjin.io/)背后的团队开发，该项目专注于基于区块链的游戏解决方案。Enjin 在 2019 年推出了这一代币标准，它介于 ERC-20 标准与 ERC-721 标准之间。

Enjin 发现了与相对有限的 ERC-721 标准相关的一些问题，尤其是无法进行批量转账。

在 ERC-721 标准下，如果要转移多个 NFT，每个 NFT 都需要单独一笔交易——因为每个 NFT 都由单独一个智能合约表示。这导致铸造或交易单个 NFT 时的交易成本过高。ERC-1155 支持批量转账——在单个智能合约上处理多个资产——从而使所有代币一次性完成转移，减少网络拥堵，进而降低 gas 成本。例如，当用户想要将游戏中的一千件物品出售给另一个用户时，他或她可以使用 ERC-1155 的批量代币转账功能一次性发送全部物品 💸。

这种多代币标准的另一个主要特性是，由于其支持多种状态的能力，它可以在同一地址和合约上同时支持同质化代币和非同质化代币。实际来说，这意味着你可以在该地址上使用同质化代币进行游戏内支付，同时也可以转移独特的 NFT 资产。

ERC-1155 的另一个特性是支持创建半同质化代币。SFT 在交易时表现为同质化代币，但一旦被兑现，就会转变为 NFT。例如，演唱会门票在活动之前可以被视为同质化资产——任何一张票都能让你获得相同的普通入场资格。但在演唱会结束后，该门票便失去了交易价值，成为一件独特的纪念品。SFT 可以将这种功能直接写入门票本身的代码中。

最后，该标准下的代币转账在出现失误时可以撤销。在 ERC-721 标准下，如果资产被发送到错误的地址，你无法找回。而 ERC-1155 包含了一个专门解决这个问题的功能。[安全转账函数](https://eips.ethereum.org/EIPS/eip-1155#safe-transfer-rules)以及其他一些规则可以防止被恶意利用。

<ImageBlock
  src="https://media.alchemy.com/1704634685-artwork-by-beeple.jpg"
  alt="知名 NFT 艺术家 Beeple 的作品。"
  width={1400}
  height={788}
  caption="知名 NFT 艺术家 Beeple 的作品。"
/>

## ERC-721 与 ERC-1155 对比

得益于其额外的功能，ERC-1155 代币标准在不久的将来可能会比 ERC-721 代币标准获得更广泛的应用。两者都允许你铸造新的 NFT，但存在一些关键差异：

- ERC-1155 允许创建**半同质化代币和非同质化代币**，而 ERC-721 只允许创建后者。
- 在 ERC-1155 中，智能合约与多个 URI 相关联，**不存储额外的元数据**（如文件名）。相比之下，ERC-721 只支持为每个代币 ID 直接存储在智能合约上的静态元数据，这增加了部署成本，并限制了灵活性。
- ERC-1155 的智能合约支持**无限数量的代币**，而 ERC-721 需要为每种类型的代币部署一个新的智能合约。
- ERC-1155 还允许**代币的批量转账**，可以降低交易成本和时间。而使用 ERC-721 时，如果要发送多个代币，则需要逐个进行。

## 面向 NFT 未来的构建

如果你正在寻找更多关于了解 NFT 或构建自己项目的资源，我们已经为你准备好了！在 Alchemy，我们的主要目标之一，就是帮助区块链开发者了解该领域现有的工具，并提供资源帮助你成为更优秀的开发者。以下是一些可能有助于你入门、铸造自己的 NFT 的教程：

<CalloutBlock>

[如何构建 NFT](https://www.alchemy.com/blog/how-to-create-an-nft)

</CalloutBlock>

<CalloutBlock>

[NFT Minter：如何创建全栈 dApp](https://www.alchemy.com/blog/nft-minter-tutorial-how-to-create-a-full-stack-dapp)

</CalloutBlock>

<CalloutBlock>

[如何在移动钱包中查看你的 NFT](https://www.alchemy.com/blog/how-to-view-your-nft-in-your-mobile-wallet)

</CalloutBlock>

此外，我们刚刚发布了 NFT API，可以帮助你获取这些元数据，而无需依赖 [web3.js](https://www.alchemy.com/dapps/web3-js) 或 [ethers.js](https://www.alchemy.com/dapps/ethers-js) 提供的有限工具集！请在下方报名加入等候名单。

<CalloutBlock>

[Alchemy 的 NFT API](https://www.alchemy.com/nft-api)

</CalloutBlock>

如果你在构建过程中需要帮助，可以浏览 [Alchemy 支持中心](https://www.alchemy.com/support)，或从 Alchemy Dashboard 中提交支持工单。
