买币
行情
现货
合约BTC
理财
活动中心
福利中心
更多
0 费狂欢节
ERC-20: 什么是 ERC-20?ERC-20 是 Ethereum 的一种代币标准,为通过智能合约创建的同质化加密资产定义了通用接口。同质化意味着,根据代币合约的核算规则,同一种代币的等量单位可以互换。例如,普通 ERC-20 代币的一个完整单位与同种代币的另一个完整单位具有相同的合约定义属性。官方ERC-20 规范定义了用于查询代币供应量和余额、转移代币,以及授权第三方使用代币的函数。该标准还定义了标准化ERC-20: 什么是 ERC-20?ERC-20 是 Ethereum 的一种代币标准,为通过智能合约创建的同质化加密资产定义了通用接口。同质化意味着,根据代币合约的核算规则,同一种代币的等量单位可以互换。例如,普通 ERC-20 代币的一个完整单位与同种代币的另一个完整单位具有相同的合约定义属性。官方ERC-20 规范定义了用于查询代币供应量和余额、转移代币,以及授权第三方使用代币的函数。该标准还定义了标准化

ERC-20

2026/10/13 15:30
#Intermediate
Humanity
H$0.05605-3.27%
SynFutures
F$0.003136-0.50%
PX
PX$0.013+1.56%
TokenFi
TOKEN$0.001972-6.13%
Blobacoin
BLOB$0.00096-48.10%

什么是 ERC-20?

ERC-20 是 Ethereum 的一种代币标准,为通过智能合约创建的同质化加密资产定义了通用接口。

同质化意味着,根据代币合约的核算规则,同一种代币的等量单位可以互换。

例如,普通 ERC-20 代币的一个完整单位与同种代币的另一个完整单位具有相同的合约定义属性。

官方ERC-20 规范定义了用于查询代币供应量和余额、转移代币,以及授权第三方使用代币的函数。

该标准还定义了标准化事件,让钱包和应用能够观察转账和授权变更。

ERC-20 是最终版 Ethereum 征求意见标准,也是 Ethereum 兼容生态中同质化代币的主要技术基础。

该标准提高了互操作性,因为钱包、智能合约、区块链浏览器、托管系统和其他加密应用都可以通过相同的基本方法处理多种代币。

ERC-20 不决定代币价格、供应政策、法律分类、用途、抵押支持、治理权或投资质量。

ERC 是什么意思?

ERC 是 Ethereum Request for Comments(Ethereum 征求意见)的缩写。

ERC 描述了开发者可在 Ethereum 智能合约及相关软件中实现的应用层标准或约定。

数字 20 是引入这一同质化代币接口的提案编号。

它与代币数量、小数位数、支持的网络或合约函数数量无关。

ERC-20 也常称为 EIP-20,因为该文件属于 Ethereum 改进提案流程。

为什么要创建 ERC-20?

在出现通用同质化代币标准之前,每个智能合约都可以为余额查询、转账和委托使用设置不同的名称和规则。

钱包需要为每种代币编写自定义集成代码。

去中心化应用无法安全地假设两个代币合约支持相同操作。

ERC-20 创建了一套最低限度的通用接口,让一个应用可以与多种同质化代币交互。

这种互操作性有助于代币余额在支付、治理、借贷、流动性系统、金库、游戏、奖励计划和其他加密应用中使用。

该标准有意保持精简,以便开发者在不改变基本接口的情况下添加专用功能。

ERC-20 的工作原理

ERC-20 代币由部署在 Ethereum 或兼容区块链上的智能合约管理。

合约会记录每个地址持有的代币单位数量。

合约还会记录代币总供应量以及所有者授予支出方的授权额度。

发生有效转账时,合约会减少发送方余额,并增加接收方余额。

合约会触发

Transfer
事件,供外部软件观察资产转移。

所有者批准支出方后,合约会更新授权额度并触发

Approval
事件。

区块链节点会执行这些合约规则,并验证每项获准的状态变更是否合法。

代币合约不会维护独立区块链,因为它运行在所属网络的状态和安全模型之中。

ERC-20 核心函数

ERC-20 必需接口包含 6 个主要函数。

这些函数是

totalSupply
、
balanceOf
、
transfer
、
allowance
、
approve
和
transferFrom
。

该标准还介绍了可选的

name
、
symbol
和
decimals
元数据函数。

铸造、销毁、暂停、税费、投票、冻结和供应量上限都不是核心接口的必需功能。

代币可以通过自定义逻辑或标准化扩展添加这些功能。

totalSupply 函数

totalSupply
函数会返回当前计入代币报告供应量的代币单位数量。

该数值以代币的最小内部单位表示。

它不会自动披露可能存在的最大供应量。

即使当前总供应量远低于所称的最大值,合约仍可能允许之后继续铸造代币。

代币也可能支持销毁,从而减少当前总供应量。

用户应查看铸造权限和供应量控制,而不是将

totalSupply
视为永久稀缺性的证明。

balanceOf 函数

balanceOf
函数会返回指定地址记录的代币余额。

返回值以代币的最小内部单位表示。

钱包显示的余额通常会根据代币的小数位数格式化这个整数。

该函数只报告一个代币合约中的余额。

它不包括其他合约地址或其他网络上名称相似的代币。

某些特殊代币可以通过重基或其他核算逻辑改变余额,而不为每个持有者触发普通转账事件。

transfer 函数

transfer
函数会将指定数量的代币从调用者余额转给接收方。

调用者必须持有足够的代币才能完成操作。

转账成功后必须触发

Transfer
事件。

ERC-20 规范要求将零值转账视为普通转账,并触发相应事件。

根据该标准,函数会返回布尔值表示是否成功。

应用不能假设返回值永远不会是

false
。

许多较新的实现会在失败时回滚,而不是返回

false
,但集成时仍须考虑具体代币的行为。

approve 函数

approve
函数允许代币所有者设定支出方可以从其余额中转移的代币数量。

代币不会立即转给支出方。

相反,合约会记录一个授权额度,供支出方之后通过

transferFrom
使用。

授权适用于一个所有者、一个支出方和一个代币合约。

在某个网络或代币合约上作出的授权,不会自动允许在其他地方使用代币。

用户应将授权交易视为财务权限,而不是无害的钱包连接操作。

allowance 函数

allowance
函数会报告支出方当前获准从所有者处转移多少代币。

支出方使用

transferFrom
后,该数值可能会减少。

所有者可以通过另一笔授权交易更新额度。

某些实现会将无符号整数的最大值视为无限授权,且每次转账后可能不会减少该数值。

只要支出方仍有权限且所有者持有代币,无限授权就会带来风险。

用户应检查并撤销不再需要的权限。

transferFrom 函数

transferFrom
函数允许获批支出方从所有者处向接收方转移代币。

支出方必须拥有足够的授权额度,所有者也必须拥有足够的余额。

除非实现将授权视为无限额度,否则成功调用通常会减少可用授权额度。

代币转移时必须触发

Transfer
事件。

这种委托转账模式允许智能合约收取付款、接受存款、锁定抵押品或执行其他获授权操作。

这种模式也会带来风险,因为恶意或遭到控制的支出方可以使用剩余授权额度转移代币,而无需所有者逐笔批准。

ERC-20 事件

ERC-20 标准定义了

Transfer
和
Approval
事件。

事件是交易日志,链下应用可以高效地对其进行索引。

钱包、分析工具、核算系统和区块链浏览器都会使用这些日志追踪代币活动。

解读事件时,始终应结合触发该事件的合约地址。

恶意合约可以使用熟悉的事件名称,但这并不代表代币真实或有价值。

Transfer 事件

Transfer
事件会记录发送方、接收方和代币数量。

普通转账会使用非零的发送方和接收方地址。

代币创建通常表示为从零地址向接收方转移。

代币销毁通常表示为从持有者向零地址转移。

ERC-20 规范要求,在实现创建供应量时,新铸造的代币必须触发一个从零地址发出的

Transfer
事件。

观察到铸造事件,并不能证明之后无法继续铸造。

Approval 事件

Approval
事件会记录所有者、支出方和授权额度。

应用可以使用该事件追踪委托支出权限的变更。

授权本身不会转移代币或改变所有权。

授权会让支出方可以在许可额度内使用

transferFrom
。

撤销授权不会撤回授权有效期间已经完成的代币转移。

ERC-20 名称与符号

name
和
symbol
函数会提供易读的代币信息。

名称可能用于描述资产,符号则是较短的显示标签。

原始 ERC-20 规范中的这两个函数都是可选的。

名称和符号并非唯一。

任何人都可以部署一个复制其他资产名称和符号的代币。

钱包和用户应核实完整合约地址和区块链网络,而不能只依赖品牌信息。

什么是 ERC-20 小数位数?

可选的

decimals
函数会告知应用如何将代币的最小单位转换为易读的显示形式。

具有 18 位小数的代币,在标准显示中会将内部整数金额除以 10 的 18 次方。

例如,某代币有 6 位小数时,1,000,000 个内部单位代表一个完整代币。

小数位数不会使区块链余额变成浮点数。

智能合约使用整数进行代币核算。

小数位数影响显示方式和计价单位,而不改变底层运算模式。

18 位小数很常见,也是当前 OpenZeppelin ERC-20 实现中的默认值,但 ERC-20 代币也可以采用其他数值。

ERC-20 供应模型

ERC-20 不规定代币供应量必须如何创建。

固定供应量代币可以在部署时铸造全部供应量,并且不提供后续铸造函数。

有上限的代币可以允许铸造,直到达到合约规定的最大值。

无上限代币可以允许授权账户或协议流程继续创建代币,且不设永久上限。

算法代币可以根据程序设定的条件调整供应量。

包装代币可以在底层资产存入时发行代币单位,并在提取该资产时销毁相应单位。

官方 ERC-20 供应指南说明,必须通过适当的铸造机制在基础实现中添加供应逻辑。

铸造 ERC-20 代币

铸造会创建新的代币单位并增加总供应量。

ERC-20 核心接口不定义公开铸造函数,也不规定谁可以调用该函数。

代币可以将铸造权限限制给管理员、治理流程、跨链桥、质押系统、金库或合约定义的其他权限主体。

不安全的铸造权限可能稀释现有持有者的权益,或破坏抵押品相关假设。

用户应检查是否可以铸造、由谁控制铸造、是否设有上限,以及实现是否可以升级。

代币供应量固定的说法,应通过已部署合约逻辑和特权权限进行核实。

销毁 ERC-20 代币

销毁会永久移除代币单位,通常会减少总供应量。

核心标准不要求持有者可以公开调用销毁函数。

实现可以允许持有者销毁自己的代币,也可以允许获批支出方通过授权额度销毁代币。

其他系统只会在赎回、结算或协议操作期间销毁代币。

将代币发送到无法访问的地址并不总是等同于合约级销毁,因为报告的总供应量可能保持不变。

用户应检查代币实际的销毁逻辑,再解读供应量数据。

ERC-20 授权与额度竞态条件

将现有的非零授权额度直接改为另一个非零数值,可能带来交易排序风险。

所有者替换授权得到确认前,支出方可能先使用旧授权;之后又获得新的授权额度。

原始 ERC-20 规范指出,用户界面应先将授权额度设为 0,再设置不同的非零额度。

代币合约本身不应强制要求采用这一流程,否则会降低与旧应用的兼容性。

通过精心设计的辅助函数减少或增加授权额度可以提升易用性,但不同实现的支持情况各异。

用户应避免留下远超应用实际所需额度的授权。

无限代币授权

无限授权通常会将授权额度设为 256 位无符号整数所支持的最大值。

这种做法可以减少每次交互前都提交新授权的需要。

但这也会让支出方持续拥有操作该代币当前和未来余额的权限。

如果支出方合约遭到攻击、被恶意升级,或由权限遭到控制的管理员管理,支出方就可能利用授权转走持有者的代币。

用户应权衡便利性与权限的额度和有效时间。

有限授权可以降低单个支出方遭到控制时的最大损失。

什么是 ERC-2612 Permit?

ERC-2612 是一项扩展,允许 ERC-20 所有者通过签名消息创建授权额度。

其他账户或智能合约可以将该签名权限提交到链上。

这样可以将授权和应用操作整合为一个用户流程。

官方 ERC-2612 Permit 规范为 ERC-20 增加了

permit
、
nonces
和
DOMAIN_SEPARATOR
。

每次成功使用 Permit 都会消耗一个 nonce,通常可防止重复使用同一签名。

截止时间会限制签名的有效期限。

Permit 支持是可选的,并不属于原始 ERC-20 核心接口。

Permit 签名风险

Permit 签名可以授权代币支出,即使签署签名本身不会立即从所有者账户发起链上交易。

网络钓鱼网站可能将 Permit 描述为登录、验证或无害的免 Gas 消息。

在截止时间前,支出方可以提交有效的签名 Permit,并使用由此获得的授权额度。

用户签名前应检查代币、支出方、金额、网络、nonce 和有效期。

钱包显示无需支付 Gas,并不意味着签名请求安全。

智能合约钱包可能需要基础外部拥有账户模式以外的额外签名验证支持。

ERC-20 是否支持自动接收方回调?

ERC-20 核心转账函数不要求接收方智能合约确认收到代币。

因此,即使接收方合约没有记录或返还代币的函数,转账也可能成功。

这可能导致资产被困在不兼容的合约中。

普通转账后,ERC-20 也不会自动调用接收方代码。

ERC-1363 扩展为需要回调行为的应用增加了转账并调用和授权并调用操作。

支持回调的扩展会增加外部调用,因此必须检查重入和接收方安全风险。

SafeERC20 与非标准代币

ERC-20 规范规定,调用方必须处理返回值为

false
的情况。

但实际中,有些较旧或特殊的代币合约即使转账成功也不返回布尔值。

另一些实现则会在失败时回滚,而不是返回

false
。

假设代币只会采用其中一种行为的直接接口调用,可能失败或误判结果。

当前的 SafeERC20 工具封装了代币操作,并能处理返回 false 的代币以及某些不返回值的代币。

封装工具可以提高兼容性,但无法让恶意代币在经济层面变得安全。

转账扣费代币

转账扣费代币会在转移代币时扣除费用。

接收方收到的数量会少于发送方或调用合约请求转出的数量。

如果协议按请求数量而不是实际到账数量记账,可能导致抵押不足。

支持这类代币行为的应用应比较转账前后的代币余额。

如果合约可升级或由管理员控制,费用规则也可能发生变化。

ERC-20 标准函数名称不能保证转账结果固定不变。

ERC-20 重基代币

重基代币会根据合约定义的调整流程改变账户余额。

balanceOf
显示的余额可以在持有者未发起普通转账的情况下增加或减少。

正向重基会增加显示余额,负向重基会减少显示余额。

某些系统使用内部份额,并通过兑换率计算可见余额。

假设余额只会因转账而变化的应用,可能会错误核算重基代币。

用户应了解代币代表的是固定单位余额,还是会变化的按比例权益。

包装 ERC-20 代币

包装 ERC-20 代币通过智能合约或托管安排代表另一种资产。

用户可以存入底层资产,并收到相应的 ERC-20 单位。

赎回时通常会销毁或返还包装单位,并释放底层资产。

包装代币的价值取决于其支持机制是否可用且运行正常。

智能合约攻击、托管故障、跨链桥故障、抵押品冻结或核算错误都可能破坏预期的对应关系。

符合 ERC-20 标准只能证明接口兼容,不能证明其背后有足够抵押支持。

ERC-20 治理代币

ERC-20 代币可以扩展为链上治理系统中的投票权凭证。

投票权可能取决于当前余额、委托余额或历史余额检查点。

当前 ERC-20 实现库包含一个ERC-20 投票扩展,用于委托和查询历史投票权。

持有治理代币并不一定会自动获得投票权,因为某些系统要求先进行委托。

代币投票也可能受到所有权集中、借入资产、投票参与率低和管理员权限的影响。

ERC-20 核心标准不定义治理规则。

ERC-20 金库份额

ERC-20 代币可以代表代币化金库中的份额。

每份份额代表对金库管理资产的按比例权益,而不是固定数量的底层代币。

ERC-4626 代币化金库标准在 ERC-20 的基础上增加了标准化的存款、提现、铸造、赎回和兑换函数。

金库份额对应的底层资产价值可能随策略表现、费用、损失和核算规则而上升或下降。

仅凭 ERC-20 兼容性无法了解份额代币由什么支持,或如何赎回。

ERC-20 错误消息

原始 ERC-20 标准早于 Solidity 自定义错误,不定义一套标准化的失败消息。

不同代币可能返回

false
、回滚并附带文本消息、回滚并附带自定义错误,或出现错误行为。

最终版 ERC-6093 标准为常见代币故障定义了结构化自定义错误。

例如余额不足、发送方无效、接收方无效、授权额度不足、授权方无效和支出方无效等错误。

标准化错误可以帮助钱包和应用以更一致的方式解释失败原因。

ERC-6093 不会改变 ERC-20 核心接口,也不要求所有现有代币都采用其错误定义。

ERC-20 是否使用 ERC-165?

原始 ERC-20 标准不要求使用 ERC-165 接口检测。

应用不能假设调用

supportsInterface
就能识别所有 ERC-20 代币。

软件通常通过合约 ABI、已验证源代码、已知代币列表、注册数据和直接函数测试来识别兼容性。

存在熟悉的函数选择器并不能证明完全符合标准。

恶意合约可以模仿部分接口,同时执行有害或意外行为。

ERC-20 与原生 ETH

ETH 是 Ethereum 的原生加密资产,本身不是 ERC-20 代币。

Ethereum 账户可以通过协议层的价值转账发送原生 ETH。

ERC-20 余额则记录在各自的智能合约中。

即使转移的是 ERC-20 代币,支付 Ethereum 交易费仍需使用 ETH,除非另有系统代付或抽象该费用。

需要代币接口的应用可以创建 ETH 的 ERC-20 表示形式,但包装资产仍不同于原生 ETH。

ERC-20 与 ERC-721

ERC-20 表示同质化余额,而 ERC-721 表示具有独立标识的非同质化代币。

ERC-20 账户持有数量不定的可互换单位。

ERC-721 账户持有不同的代币 ID。

ERC-20 通常使用小数位格式,而一个 ERC-721 代币通常作为完整的独特单位转移。

ERC-721 还包含安全转移接收方检查,而 ERC-20 核心标准没有此类检查。

ERC-20 与 ERC-1155

ERC-20 通过每个合约接口管理一种同质化代币类型。

ERC-1155 允许一个合约管理多个代币 ID,并分别记录其余额。

这些 ERC-1155 代币 ID 可以代表同质化、半同质化或独特资产。

ERC-1155 还定义了批量转移操作和接收方回调。

适用标准取决于项目需要一种同质化资产,还是需要由一个合约管理多种资产类型。

ERC-20 的常见应用场景

稳定价值代币可以使用 ERC-20 表示与储备、抵押系统或算法机制相关联的可转让单位。

治理系统可以使用 ERC-20 余额或委托单位作为投票权。

区块链游戏可以使用 ERC-20 代币作为可互换的游戏货币、奖励或资源。

金库和质押系统可以发行 ERC-20 凭证代币,以代表存入的头寸。

包装资产可以使用 ERC-20 代币代表存放在其他位置的资产权益。

项目还可以将该标准用于忠诚度积分、访问额度、支付单位或代币化金融权益。

该接口并不决定某项用途是否合法、是否有足额支持、是否去中心化或在经济上是否可持续。

ERC-20 智能合约风险

ERC-20 实现可能在转账、授权额度、铸造、销毁、税费或访问控制逻辑中存在错误。

特权管理员可能可以暂停转账、冻结余额、封锁地址、铸造供应量、更改费用或升级合约。

代理升级可以在持有者获得代币后改变代币行为。

自定义代币逻辑中的外部调用可能带来重入或拒绝服务风险。

即使代币本身按照代码运行,错误的集成仍可能导致资金损失。

符合标准有助于互操作,但不能取代审计、测试、源代码审查和权限分析。

代币授权钓鱼

授权钓鱼会试图诱骗用户授权恶意支出方。

界面可能将操作描述为验证、连接、奖励资格确认或账户恢复。

授权确认后,支出方可以在授权额度内使用

transferFrom
转走代币。

Permit 签名也可能创建类似权限,而无需受害者立即提交链上授权交易。

用户应核实每项授权或 Permit 的代币合约、支出方地址、授权额度、网络和用途。

取消 ERC-20 授权时,绝不应将助记词或私钥输入应用。

代币转账诈骗

诈骗者可以在未经钱包所有者许可的情况下向其发送未知 ERC-20 代币。

代币名称、符号或元数据可能包含误导性网站或说法。

访问宣传的网站可能导致用户授予恶意授权或签署恶意消息。

攻击者还可以创建外观与用户交易历史中地址相似的地址。

用户应从可信记录中复制已核实的地址,而不是只根据首尾字符相符就选择转账地址。

收到未知代币并不意味着钱包所有者必须与其交互。

开发者如何实现 ERC-20

开发者通常应从经过审查且积极维护的实现开始。

当前的 ERC-20 开发指南提供了核心合约,以及用于 Permit、供应上限、销毁、暂停、投票、包装、金库和其他功能的扩展。

代币供应量的创建应明确规定,并通过适当的访问控制加以保护。

转账自定义功能应维护余额、供应量、事件和授权额度不变量。

开发者应测试零值转账、最大值、余额不足、授权额度不足、铸造、销毁、授权,以及涉及特殊地址的转账。

如果支持此类资产,还应使用返回 false、不返回值、转账扣费、重基、暂停和支持回调的代币进行集成测试。

用户如何评估 ERC-20 代币

第一步是核实区块链网络和完整的代币合约地址。

第二步是检查当前供应量、最大供应量相关说法和铸造权限。

第三步是查看管理员、暂停、冻结、封锁列表、费用和升级权限。

第四步是确认代币是否由其他资产支持,以及如何赎回。

第五步是了解转账费用、重基行为、限制和对钱包余额的特殊影响。

第六步是查看审计、已验证源代码和事故历史,但不要将任何审计视为保证。

第七步是检查持有人集中度、可用流动性,以及流动性可能消失的条件。

第八步是了解需求或收益的实际来源,而不是依赖代币品牌宣传。

第九步是在使用陌生智能合约前后检查授权。

第十步是在投入大量资金前,先用有限金额测试新代币或合约。

ERC-20 转账示例

假设 Alice 持有 500 个 ERC-20 代币,并想向 Bob 发送 75 个。

Alice 的钱包会确认区块链、代币合约、接收地址、金额和交易费用均正确。

钱包会提交一笔调用代币

transfer
函数的交易。

代币合约会核实 Alice 至少持有 75 个代币。

合约会将 Alice 的余额减少至 425,并将 Bob 的余额增加 75。

合约会触发

Transfer
事件,其中包含 Alice 的地址、Bob 的地址和转移数量。

Ethereum 验证者会将交易纳入区块,节点则会独立验证最终状态变更。

交易确认后,钱包和应用可以从代币合约读取更新后的余额。

ERC-20 授权示例

假设 Alice 想让金库合约代她存入 100 个 ERC-20 代币。

Alice 首先核实金库合约地址以及该合约将使用的代币。

她调用

approve
,授予金库 100 个代币的授权额度。

代币合约会记录授权额度并触发

Approval
事件。

随后,Alice 调用金库的存款函数。

金库通过

transferFrom
将 Alice 的 100 个代币转入金库。

代币合约会在完成转账前检查 Alice 的余额和金库的授权额度。

转账后,已使用的授权额度通常会根据代币实现方式减少。

常见 ERC-20 错误

一个常见错误是只根据代币名称或符号识别代币。

另一个错误是认为每种 ERC-20 代币都使用 18 位小数。

第三个错误是向不受信任的合约授予无限授权。

第四个错误是认为断开钱包连接会撤销代币授权额度。

第五个错误是忽视代币转账的布尔返回值或非标准行为。

第六个错误是按请求数量而不是实际到账数量记录转账扣费代币存款。

第七个错误是将

totalSupply
视为永久供应量上限的证明。

第八个错误是认为符合 ERC-20 标准就能证明抵押支持或赎回价值。

第九个错误是未检查支出方、额度和截止时间就签署 Permit。

第十个错误是将审计或已验证源代码视为代币不会出问题的保证。

常见问题

ERC-20 是什么意思?

ERC-20 是 Ethereum 标准,为同质化智能合约代币定义了通用函数和事件。

ERC-20 是加密货币吗?

ERC-20 是一种技术标准,而实现该标准的具体合约可以创建加密货币代币。

ERC-20 和 Ethereum 是一回事吗?

不是。Ethereum 是区块链网络,而 ERC-20 是用于该网络上代币的智能合约接口。

ETH 是 ERC-20 代币吗?

不是。ETH 是 Ethereum 的原生资产,本身不使用 ERC-20 合约接口。

ERC-20 代币是同质化的吗?

是的。同一种普通 ERC-20 代币的等量单位,根据合约的核算规则可以互换。

ERC-20 的 6 个核心函数是什么?

它们是

totalSupply
、
balanceOf
、
transfer
、
allowance
、
approve
和
transferFrom
。

ERC-20 定义了哪些事件?

该标准定义了

Transfer
和
Approval
事件。

name、symbol 和 decimals 是必需的吗?

不是。原始 ERC-20 规范中的这 3 个元数据函数都是可选的。

所有 ERC-20 代币都使用 18 位小数吗?

不是。18 位很常见,但每种代币都可以使用不同的小数位数。

ERC-20 授权有什么作用?

授权会在指定额度内允许支出方从所有者处转移代币。

transferFrom 有什么用途?

它允许获授权的支出方将代币从所有者转移给接收方。

什么是 ERC-20 无限授权?

无限授权是指将授权额度设为极大的最大值,让支出方无需反复申请授权即可继续转移代币。

断开钱包连接会撤销授权吗?

不会。链上授权额度会继续有效,直到通过代币合约更改,或因其他原因失效。

什么是 ERC-20 Permit?

Permit 是可选的 ERC-2612 签名消息,可创建或更改授权额度,而无需所有者直接提交授权交易。

ERC-20 代币可以铸造吗?

可以,但实现中必须包含铸造机制,并且要有获授权主体或协议条件允许使用该机制。

ERC-20 代币可以销毁吗?

可以,但实现中必须包含销毁代币单位的合约逻辑。

ERC-20 是否要求固定供应量?

不要求。供应政策由具体代币实现决定。

ERC-20 转账可以收取费用吗?

可以。定制代币可以在转账时扣除费用,尽管核心标准不要求这种行为。

ERC-20 余额会在没有转账时发生变化吗?

会。重基和其他自定义核算模式可以在没有持有者普通转账的情况下改变报告余额。

ERC-20 代币可能被困在合约中吗?

可能。核心转账函数不要求接收合约确认其能够处理或返还代币。

ERC-20 支持 ERC-165 接口检测吗?

不支持。原始 ERC-20 规范不要求 ERC-165。

ERC-20 能保证代币有抵押支持吗?

不能。该标准不会核实储备、抵押品、赎回权或偿付能力。

符合 ERC-20 标准就能保证代币安全吗?

不能。兼容代币仍可能存在危险权限、代码缺陷、支持不足、流动性差或恶意操作者。

用户如何识别正确的 ERC-20 代币?

用户应通过权威来源核实区块链网络和完整合约地址。

ERC-20 的主要优势是什么?

其主要优势是通过通用接口实现互操作性,让许多加密钱包和智能合约都能识别并使用。

结论

ERC-20 是 Ethereum 上同质化智能合约代币的基础标准。

该标准定义了查询供应量和余额、转移代币以及授予委托支出权限的通用方法。

Transfer
和
Approval
事件让加密应用能够监控代币转移和权限。

可选元数据函数会提供代币名称、符号和小数位数,但这些信息不能证明代币真实性。

该标准不决定供应量如何创建、代币是否有抵押支持、由谁管理,或资产是否具有金融价值。

扩展可以添加签名 Permit、投票、暂停、供应上限、回调、金库功能、标准化错误和其他功能。

授权仍是用户面临的主要风险之一,因为恶意支出方可以通过

transferFrom
使用有效授权额度。

开发者必须考虑返回 false、不返回值、转账费用、重基、回调、小数位异常和自定义限制等情况。

用户应核实合约地址、检查权限、了解铸造和升级权限,并调查代币的支持资产和经济设计。

ERC-20 兼容性提供了通用的技术语言,但不能取代智能合约安全、谨慎审查交易或独立的财务研究。

您可能也喜欢

反恐融资(CTF)

反恐怖主义融资(CTF)是指旨在发现、预防和打击恐怖主义活动资金支持的法律、法规和活动。这包括监控和监管资金流动、在金融机构内部实施合规计划,以及执行旨在遏制恐怖主义融资的国际制裁和法规。 反恐融资在各领域的重要性 反恐融资在包括银行业、科技和国际贸易在内的各个领域都至关重要。在金融领域,强而有力的反恐融资措施可确保银行和其他金融机构不会被恐怖组织利用为其活动提供资金。这不仅有助于维护金融体系的完
2025/12/23 18:42

框架

在专业情境中,「框架」指的是一套结构化的指南、工具或实践,旨在支援专案、应用程式或系统的开发和实施。它提供了一种标准化的方法来解决复杂问题或实现特定目标,通常包含可根据具体需求进行调整和扩展的预先建置元件。 框架的关键特征 框架在软体开发、专案管理和数位行销等各个领域都至关重要。例如,在软体开发中,Angular、React 和 Django 等框架提供了开发人员用来高效建立高品质应用程式的程式库
2025/12/23 18:42

波动性爆发

「波动性爆发」是指金融市场、资产或指数的波动性突然显著增加,通常由不可预见的事件或市场情绪变化所驱动。这种突如其来的增加会导致价格大幅波动和交易量激增,从而影响投资者和交易者的风险和机会。 了解波动性爆发 波动性是衡量特定证券或市场指数收益分散程度的统计指标,显示资产价格在特定期间内的波动幅度。当这种波动超出正常水平时,就会发生波动性爆发,这通常是对意外新闻或经济事件的反应。这些事件可能包括地缘政
2025/12/23 18:42
回调还是机会?
回调还是机会?回调还是机会?
一边爆仓,一边扫货——24亿ETF资金在赌什么?