市值: $2.812T -5.85%
成交额(24h): $186.0816B 66.46%
恐惧与贪婪指数:

38 - 恐惧

  • 市值: $2.812T -5.85%
  • 成交额(24h): $186.0816B 66.46%
  • 恐惧与贪婪指数:
  • 市值: $2.812T -5.85%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

ERC-20 和 ERC-721 智能合约有什么区别?

ERC-20 enables interchangeable tokens with uniform value and simple transfers; ERC-721 supports unique, non-fungible assets via tokenId, tokenURI, and individual ownership—differing in structure, cost, and use.

2026/01/12 12:59

核心功能区别

1. ERC-20 定义了可替代代币的标准,其中每个单位都具有相同的价值,并且可以与同一合约的另一个单位互换。

2. ERC-721建立了不可替代代币的框架,这意味着每个代币都拥有独特的属性,并且不能一对一地替换。

3. ERC-20合约实现transferbalanceOfapproved等功能来管理跨账户的批量代币流动。

4. ERC-721 合约包括OwnerOfsafeTransferFromtokenURI来处理个人代币所有权和元数据检索。

5. 事件签名不同:ERC-20 发出Transfer(addressindexedfrom,addressindexedto,uint256 value) ,而 ERC-721 发出Transfer(addressindexedfrom,addressindexedto,uint256indexedtokenId)

代币身份和唯一性

1. 在ERC-20中,代币身份完全驻留在合约地址中;除了数量之外,不存在任何单位标识符。

2. 每个 ERC-721 代币都带有一个独特的uint256 tokenId ,从而可以分配稀有性、出处或视觉特征。

3. ERC-721 允许通过tokenURI将 tokenId 映射到外部资源,从而启用链下托管的动态元数据,例如图像或描述。

4. 一个 ERC-721 合约可能代表数千个资产——每个资产都有自己不可变的历史记录——同时保持一致的界面行为。

5. Token枚举在ERC-721中是可选的;许多已部署的合约省略了totalSupplytokenByIndex ,以减少gas开销和隐私暴露。

燃气消耗模式

1. 在外部拥有的账户之间转移时,ERC-20 转账通常消耗低于 45,000 个 Gas。

2. 由于所有权验证、批准检查和可选的安全逻辑,ERC-721 传输需要更多计算,通常超过 65,000 Gas。

3. 通过简单的循环或自定义扩展,批量操作是 ERC-20 原生的,但 ERC-721 在基本规范中缺乏标准化的批量传输支持。

4. ERC-20 中的铸币通常涉及增加余额和发出事件,而 ERC-721 铸币需要分配新的 tokenId、设置所有者和更新内部映射,从而增加了复杂性。

5.存储布局差异影响成本:ERC-20严重依赖映射(address => uint256) ,而ERC-721使用多种映射,包括mapping(uint256 => address)mapping(uint256 => bool)

互操作性和钱包支持

1. 大多数以太坊钱包通过扫描日志以查找与已知合约相关的转账事件,本机检测并显示 ERC-20 余额。

2. ERC-721 支持有所不同:某些钱包仅在tokenURI返回带有图像名称字段的有效 JSON 时才显示缩略图和代币名称。

3. 由于流动性聚合、定价模型和围绕可分割单元构建的托管基础​​设施,交易所上市绝大多数青睐 ERC-20 代币。

4.像OpenSea这样的市场依赖ERC-721的ownerOf和事件索引来构建实时库存源,而无需直接查询每个合约。

5. 由于可预测的供应机制,跨链桥通常优先考虑 ERC-20 包装,而 ERC-721 桥接需要额外的层来保持 tokenId 完整性和元数据保真度。

常见问题解答

问:ERC-721 合约可以代表部分所有权吗?是的,虽然 ERC-1155 或自定义包装器等协议不是原始标准的一部分,但可以使用辅助合约将单个 tokenId 的所有权分割到多个地址。

问:是否可以将 ERC-20 代币转换为 ERC-721 代币?这两个标准都不支持直接转换,但迁移合约可以销毁 ERC-20 单位并铸造相应的 ERC-721 代币,并根据发送者和金额确定性 tokenId 派生。

问:所有 NFT 都遵循 ERC-721 吗?否——ERC-1155 在一份合约中支持可替代和不可替代资产,而 ERC-6551 等较新的标准引入了代币绑定账户,将 NFT 实用性扩展到静态表示之外。

问:为什么有些项目同时部署 ERC-20 和 ERC-721 合约?它们扮演着互补的角色:ERC-20 处理治理投票权或质押奖励,而 ERC-721 管理访问通行证、收藏品或现实世界的资产表示——所有这些都在共享的经济激励下运行。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

如何使用LayerZero合约执行跨链消息?

如何使用LayerZero合约执行跨链消息?

2026-01-18 13:19:39

了解 LayerZero 架构1. LayerZero 作为一种轻量级、无需许可的互操作性协议运行,无需依赖可信中介或包装资产即可实现区块链之间的通信。 2. 它利用部署在每条链上的超轻节点(ULN)来验证消息的完整性和一致性,而无需存储完整的区块链状态。 3. 核心组件包括处理消息路由的 Endp...

如何实施EIP-712进行安全签名验证?

如何实施EIP-712进行安全签名验证?

2026-01-20 22:20:26

EIP-712 概述和核心目的1. EIP-712 定义了以太坊应用程序中类型化结构化数据哈希和签名的标准。 2. 它使钱包能够在签名请求期间显示人类可读的域和消息字段,而不是原始的十六进制字符串。 3. 该规范通过域分隔符哈希引入域分离,防止跨不同 dApp 或链的签名重放。 4. 每个签名的有效...

如何通过新合约交互获得空投资格?

如何通过新合约交互获得空投资格?

2026-01-24 21:00:23

了解合约交互要求1. 大多数空投活动都要求与部署在受支持的区块链(例如以太坊、Arbitrum 或 Base)上的智能合约进行直接交互。 2. 交互通常涉及使用连接到 dApp 接口的钱包执行诸如approve() 、 stake()或mint()之类的函数。 3. 某些协议需要多种交易类型,例如将...

如何监控智能合约的安全警报?

如何监控智能合约的安全警报?

2026-01-21 07:59:57

链上监控工具1. Etherscan和Blockscout等区块链浏览器允许实时检查合约字节码、交易日志和内部调用。 2. 在信任任何链上数据之前必须确认合约验证状态——未经验证的合约存在高风险。 3. 事件日志解析可以检测异常状态变化,例如意外的代币转移或所有权修改。 4. 可以针对特定事件签名设...

如何建立自动支付合同并为其提供资金?

如何建立自动支付合同并为其提供资金?

2026-01-26 08:59:35

了解智能合约部署1. 开发者必须根据gas效率和安全性要求选择兼容的区块链平台,例如以太坊、Polygon或Arbitrum。 2. Solidity 仍然是编写支付自动化逻辑的主要语言,特别是对于定期或有条件的转账。 3. 在主网部署之前,使用 Hardhat 或 Foundry 等本地开发环境来...

如何使用 OpenZeppelin 合约构建安全的 dApp?

如何使用 OpenZeppelin 合约构建安全的 dApp?

2026-01-18 11:19:49

了解 OpenZeppelin 合约基础知识1. OpenZeppelin Contracts 是一个可重用、经过社区审核的智能合约组件库,专为以太坊和 EVM 兼容的区块链而构建。 2. 库中的每个合约都遵循严格的安全实践,包括遵守“检查-效果-交互”模式以及广泛使用访问控制修饰符。 3. 该库提...

如何使用LayerZero合约执行跨链消息?

如何使用LayerZero合约执行跨链消息?

2026-01-18 13:19:39

了解 LayerZero 架构1. LayerZero 作为一种轻量级、无需许可的互操作性协议运行,无需依赖可信中介或包装资产即可实现区块链之间的通信。 2. 它利用部署在每条链上的超轻节点(ULN)来验证消息的完整性和一致性,而无需存储完整的区块链状态。 3. 核心组件包括处理消息路由的 Endp...

如何实施EIP-712进行安全签名验证?

如何实施EIP-712进行安全签名验证?

2026-01-20 22:20:26

EIP-712 概述和核心目的1. EIP-712 定义了以太坊应用程序中类型化结构化数据哈希和签名的标准。 2. 它使钱包能够在签名请求期间显示人类可读的域和消息字段,而不是原始的十六进制字符串。 3. 该规范通过域分隔符哈希引入域分离,防止跨不同 dApp 或链的签名重放。 4. 每个签名的有效...

如何通过新合约交互获得空投资格?

如何通过新合约交互获得空投资格?

2026-01-24 21:00:23

了解合约交互要求1. 大多数空投活动都要求与部署在受支持的区块链(例如以太坊、Arbitrum 或 Base)上的智能合约进行直接交互。 2. 交互通常涉及使用连接到 dApp 接口的钱包执行诸如approve() 、 stake()或mint()之类的函数。 3. 某些协议需要多种交易类型,例如将...

如何监控智能合约的安全警报?

如何监控智能合约的安全警报?

2026-01-21 07:59:57

链上监控工具1. Etherscan和Blockscout等区块链浏览器允许实时检查合约字节码、交易日志和内部调用。 2. 在信任任何链上数据之前必须确认合约验证状态——未经验证的合约存在高风险。 3. 事件日志解析可以检测异常状态变化,例如意外的代币转移或所有权修改。 4. 可以针对特定事件签名设...

如何建立自动支付合同并为其提供资金?

如何建立自动支付合同并为其提供资金?

2026-01-26 08:59:35

了解智能合约部署1. 开发者必须根据gas效率和安全性要求选择兼容的区块链平台,例如以太坊、Polygon或Arbitrum。 2. Solidity 仍然是编写支付自动化逻辑的主要语言,特别是对于定期或有条件的转账。 3. 在主网部署之前,使用 Hardhat 或 Foundry 等本地开发环境来...

如何使用 OpenZeppelin 合约构建安全的 dApp?

如何使用 OpenZeppelin 合约构建安全的 dApp?

2026-01-18 11:19:49

了解 OpenZeppelin 合约基础知识1. OpenZeppelin Contracts 是一个可重用、经过社区审核的智能合约组件库,专为以太坊和 EVM 兼容的区块链而构建。 2. 库中的每个合约都遵循严格的安全实践,包括遵守“检查-效果-交互”模式以及广泛使用访问控制修饰符。 3. 该库提...

查看所有文章

User not found or password invalid

Your input is correct