本文对比了以太坊上的两种主流 NFT 标准:ERC-721 和 ERC-1155。ERC-721 是创建唯一 NFT 的基本标准,而 ERC-1155 更加灵活,支持半同质化代币和批量交易,适用于游戏资产等场景。文章详细分析了两种标准的原理、技术特点、用例和安全性,为开发者选择合适的 NFT 标准提供了参考。
创建非同质化代币或NFT,即可验证的独特虚拟收藏品,仍然是区块链技术最令人印象深刻和雄心勃勃的用例之一。这就是为什么开发者同意使NFT的创建过程或多或少地标准化。
ERC-721和ERC-1155是以太坊以及所有使用以太坊虚拟机(EVM)的类以太坊区块链的两个主流NFT标准。在这篇长文中,GetBlock比较了这两个标准,并展示了它们的优缺点。
与其他ERC一样,ERC-721和ERC-1155是以太坊上用于创建非同质化和半同质化代币的主流代币铸造标准。
到2023年,这两种代币标准都用于类以太坊区块链上的NFT市场、游戏和元宇宙 dApp。
非同质化代币或NFT是具有独特功能的加密货币代币,不能相互替换。像所有其他数字资产一样,它们应被称为该区块链上受加密保护的合约。
NFT在2020-2021年间获得了关注;它们中的大多数代表了具有原始艺术品的数字收藏品。Crypto Punks(“Punks”),Bored Ape Yacht Club(“Apes”),Mutant Ape Yacht Clubs(“Mutants”)和Azukis是最受炒作的NFT系列。
在Web3 开发中,ERC代表Ethereum Request for Comments(以太坊征求意见),它是为以太坊和其他基于以太坊虚拟机(EVM)的区块链创建代币的标准。
简而言之,以太坊开发者没有一遍又一遍地从头开始创建新代币,而是就创建代币的标准化程序达成了一致。
从更广阔的角度来看,ERC是EIP(Ethereum Improvement Proposals,以太坊改进提案)的一部分,EIP是关于如何改进以太坊网络的建议。例如,EIP-20(基于EVM的加密货币的通用代币标准)为ERC-20代币铺平了道路,等等。
标准 | 概念 | 首次提出 |
---|---|---|
ERC-20 | 基于EVM的加密货币的核心标准 | 2015 |
ERC-621 | 允许EVM代币被销毁和重新赎回 | 2017 |
ERC-721 | 非同质化代币的基本标准 | 2017 |
ERC-777 | ERC-20的高级版本 | 2017 |
ERC-1155 | 半同质化代币或高级NFT | 2019 |
虽然以太坊(ETH)有很多代币标准,但ERC-20和ERC-721仍然是最广泛的标准。
实际上,ERC-721是以太坊(ETH)代币标准,它将非同质化代币(NFT)的概念推广开来。它由Dapper Labs于2017年提出,Dapper Labs是CryptoKitties背后的Web3工作室,CryptoKitties是首个主流NFT项目。
图片来自CryptoKitties
创建者专注于制定代币标准,以保护该代币的独特性。新类型的代币被禁止复制。他们的所有权历史是完全透明的:每个人都可以通过Etherscan等区块浏览器对其进行检查。
通常,ERC-721代币旨在在链上钱包之间轻松转移(如ERC-20代币),轻松归属于该所有者,并具有透明的供应量。
大多数NFT都是该内容的代币化所有权证书:图像、视频、照片、游戏内资产等。例如,以下是具有代币化GetBlock徽标的ERC-721资产合约的样子:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";import "@openzeppelin/contracts/access/Ownable.sol";contract GetblockLogoNFT is ERC721Enumerable, Ownable { string private _baseTokenURI; constructor(string memory baseURI) ERC721("GetblockLogo", "GL") { _baseTokenURI = baseURI; } // Mint a new NFT function mint(address to) public onlyOwner { uint256 newTokenId = totalSupply() + 1; _safeMint(to, newTokenId); } // Set the base URL (can only be called by the owner of the contract) function setBaseURI(string memory baseURI) external onlyOwner { _baseTokenURI = baseURI; } // Retrieve the URL for a specific token's metadata function tokenURI(uint256 tokenId) public view override returns (string memory) { return string(abi.encodePacked(_baseTokenURI, uint2str(tokenId), ".json")); } // Helper function to convert uint to string function uint2str(uint256 _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return "0"; } uint256 j = _i; uint256 length; while (j != 0) { length++; j /= 10; } bytes memory bstr = new bytes(length); uint256 k = length - 1; while (_i != 0) { bstr[k--] = byte(uint8(48 + _i % 10)); _i /= 10; } return string(bstr); }
通常,ERC-721是最广泛的NFT标准,适用于基本的投机、娱乐、GameFi和Play-to-Earn用例。
ERC-1155是另一种用于非同质化资产的代币标准。它由Enjin协议CTO Witek Radomski于2018年推出。同质化和非同质化代币功能的结合是推出新代币标准背后的主要理由。
特别是,这个想法对于链上游戏来说很有趣,因为玩家需要在单个交易中转移“半唯一”资产。ERC-1155代币可以与某些音乐会的一般入场券进行比较:它们没有映射到特定的座位(“同质化”功能),但不能兑换成另一场音乐会的门票(“非同质化”功能)。ERC-1155代币可以批量转移;此外,它们可以支持“安全转移”选项,并有机会撤销发送到错误地址的加密货币转移。
现在,让我们比较ERC-721和ERC-1155代币中实现的技术功能、实用性方面和安全设计。
基本上,ERC-721和ERC-1155都是以太坊和EVM生态系统区块链的加密货币代币标准。此外,它们都解决了同质化问题,即该加密货币代币的独特性。ERC-721和ERC-1155经常被称为非同质化代币(NFT)的标准。
虽然这不是一个错误,但我们应该理解ERC-721和ERC-1155标准中倡导的两种同质化方法之间的区别。ERC-721是“经典”NFT的标准:每个NFT都是独一无二的,不能与其他代币交换。
相比之下,ERC-1155可用于半同质化代币,这些代币合并了ERC-721和ERC-20(完全同质化)资产的功能。此外,ERC-1155可以转换为非同质化资产,而ERC-721不能变为半同质化。
ERC-1155也被称为“多代币标准”,因为它可以在单个智能合约中表示同质化代币(类似于ERC-20)和非同质化代币(类似于ERC-721)。
因此,我们应该将ERC-1155视为ERC-721的更具功能的形式,并具有许多附加功能。
为了实现许多“新一代”工具,与之前的版本相比,ERC-1155采用了一些附加功能。首先,ERC-1155支持“批量转移”:多个代币可以在单个交易中转移。该工具使代币操作更具gas效率:发送方只需要支付一次gas费用,而每次ERC-721转移都需要支付单独的费用。
此外,ERC-721和ERC-1155对元数据的处理方式也不同:在ERC-721的情况下,每个代币都有自己的元数据,而使用ERC-1155,大量的代币可以共享元数据。这对于半同质化代币的铸造和转移也很有用。
因此,ERC-721合约的设计不太复杂。为了允许安全转移、批量转移和高级元数据操作,ERC-1155支持原生批量函数(balanceOfBatch 和 safeBatchTransferFrom),使其对于涉及多个代币的操作更有效。
最后但同样重要的是,ERC-1155使用统一资源标识符(URI)模式,其中代币元数据可以在链上或链下定义(在IPFS中),其中潜在的占位符允许每个代币根据需要具有不同的元数据。
两种标准之间的技术差异为GameFi、交易、Play-to-Earn 和其他领域的各种用例铺平了道路。ERC-721是一个“基本”标准,它适用于与艺术品、视频、文本、图像等相关的 NFT 集合。当独特性是需要的关键功能,而gas效率可以牺牲时,它会起作用。
ERC-1155是GameFi的关键标准,因为它适用于游戏内资产。例如,在具有基于区块链的经济的在线MMORPG中,铸造者可以在单个交易中以低gas转移500个虚拟斧头。它们中的每一个在这个游戏中都将是相等且同质化的,但不能在另一个游戏中使用。
此外,ERC-1155对于某些“严肃”的用例也至关重要。铸造者可以使用共享的元数据创建经过验证且受加密保护的保险单据、数字真实性证书、文凭等。
未来,随着NFT的大规模采用增加,ERC-1155的用例集很可能会同步增长。
GetBlock是一家领先的区块链 RPC 节点提供商,是构建 GameFi 和 Play-to-Earn 应用程序的可靠技术基础。 凭借我们的 50 多个区块链、高 RPS、具有竞争力的价格,你可以在一个界面中获得所需的一切。
此外,不要错过通过我们的联盟计划获得 20% 奖金的机会。 使用 MetaMask 或电子邮件注册并立即尝试我们的 Web3 基础设施。
ERC-721和ERC-1155是数字收藏品领域中使用的两种以太坊虚拟机代币标准。ERC-721由Dapper Labs于2017年提出,而ERC-1155是Enjin的创意,于2019年发布。
ERC-1155具有许多其前身无法使用的功能:安全(“可逆”)转移、批量转移、共享元数据等。
ERC-1155提供了一个更通用和高效的框架,尤其是在单个应用程序或平台中处理多样化和大型代币集时。
ERC-721和ERC-1155是以太坊和其他以太坊虚拟机上的可编程区块链的两种最常见的非同质化代币标准。ERC-721由Dapper Labs于2017年提出,而ERC-1155是Enjin的创意,于2019年演示。
通常,ERC-721和ERC-1155采用略有不同的技术设计。ERC-1155是一种更高级的标准:它支持“安全转移”,可以批量转移,并且适用于半同质化代币。此外,它可以将NFT转换为半同质化代币。
简而言之,这些标准迎合了不同的目标。ERC-1155是一种技术上更复杂,因此更高级的代币标准:它融合了ERC-721和ERC-20的优势,同时更具资源效率和功能丰富。
不,两种标准默认都是合法的,经过以太坊用户的压力测试,不能被视为诈骗。但是,NFT市场可能会受到操纵和诈骗的影响,因此,强烈建议在交易ERC-721和ERC-1155代币时要格外小心。
还有更多问题? 联系
- 原文链接: getblock.io/blog/erc-721...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!