此网页仅供信息参考之用。部分服务和功能可能在您所在的司法辖区不可用。

什么是 ERC-20?

ERC-20 是 Ethereum 上的一套同质化代币接口标准。它面向一种负责记录余额和处理操作的链上程序,也就是代币合约。ERC 是 Ethereum Request for Comments 的缩写,指 Ethereum 的应用层标准与约定类别;20 是这项提案的编号。ERC-20 规定代币合约应怎样回答余额和总供应量查询,怎样处理转账与授权,以及应发出哪些供应用读取的操作记录(事件),让钱包和其他应用能够用相近方式接入不同代币。

“同质化”表示同一种代币的等量单位按合约记账时可以互换。例如,同一合约记录的 1 个单位不会因为来自不同地址就自动变成另一种类型。ERC-20 统一的是这些单位的操作方式,不是它们的价格、用途或可信程度。

统一接口解决接入差异

如果每个代币合约都使用不同的函数名称和参数,钱包每增加一种代币就要重新学习一套查询与转账方式,链上应用也很难复用已有代码。

ERC-20 规定了一组共同接口。钱包可以用同一种查询方式读取不同代币的余额,应用可以按约定请求转账,数据服务也可以读取统一格式的转账和授权事件。

标准本身不会创建代币。开发者仍要编写或采用具体合约,并把它部署到网络。每个合约可以记录自己的供应量、账户余额和附加规则,因此两个 ERC-20 代币可能采用不同代码,也可能拥有完全不同的管理权限。

余额、总量和显示单位

ERC-20 合约按整数记录代币数量。balanceOf 用来查询某个地址的余额,totalSupply 用来查询合约报告的代币总量。

界面上看到的小数通常来自显示规则,而不是合约真的存储了小数。可选的 decimals 字段告诉钱包应把整数向左移动多少位。例如,合约记录 1,000,000 个最小单位,若 decimals 为 6,界面通常显示为 1 个代币。

这不会改变链上数量,也不会自动改变代币价值。原始标准把名称字段 name、交易代码字段 symbol 和显示小数位数字段 decimals 都列为可选信息;名称和交易代码还可能重复。可靠识别一个 ERC-20 代币时,需要同时核对网络和合约地址,不能只看图标或交易代码。

直接转账怎样发生

持有人直接把代币从自己的余额转给另一个地址时,通常调用 transfer,并提供接收地址和以最小单位表示的数量。

合约执行时会检查自己的规则。基础情形下,余额不足会导致操作失败;实现还可能加入暂停、名单、转账费或其他限制。成功后,合约更新内部余额,并发出 Transfer 事件,供钱包、区块浏览器和数据服务识别这次变动。

Transfer 事件是读取变化的重要线索,但最终余额仍以合约状态为准。应用还要确认交易已成功写入正确网络,并确认事件来自正确的合约地址。

授权让应用代为转移限定数量

ERC-20 还支持“先授权,再由另一个地址或合约执行”的流程。它常用于去中心化交易、借贷或其他需要合约接收代币的操作。

这个流程涉及三个角色:

  • 持有人拥有代币,并决定是否授权;
  • 被授权方可以是另一个地址或链上应用;
  • 接收方是代币最终转入的地址,也可以与被授权方不同。

持有人调用 approve 设置授权额度。allowance 用来查询还剩多少额度;被授权方调用 transferFrom,在余额和剩余额度允许的范围内转移代币。授权成功时,合约会发出 Approval 事件。

授权不等于代币已经转出,但它会为被授权方留下后续操作空间。若额度很大或没有及时撤销,被授权应用一旦存在漏洞、被控制或行为不符合预期,就可能在授权范围内转走代币。用户需要核对被授权地址、代币合约和额度,而不能只看应用页面上的名称。

修改授权额度需要注意什么

原始 ERC-20 设计允许再次调用 approve,用新数值覆盖旧额度。如果旧额度尚未使用,而持有人直接把它改成另一个非零值,被授权方可能在变更交易生效前用掉旧额度,并在变更后继续使用新额度,合计超过持有人原本希望留下的新额度。

ERC-20 规范建议客户端界面先把同一被授权方的额度设为 0,待归零交易确认后再设置新值。这是一项针对授权变更流程的兼容性建议,不表示所有钱包都采用相同交互,也不能替代对被授权合约的判断。

撤销授权通常也是把额度设为 0,并提交一笔链上交易。仅断开钱包与网站的连接,通常不会自动改变已经写入代币合约的授权额度。

基础标准的共同接口

从使用者角度,可以把基础接口分为三组:

  • 查询:读取总供应量、地址余额和剩余授权额度;
  • 操作:由持有人直接转账、设置授权,或由被授权方代为转账;
  • 事件:记录转账和授权成功,方便外部应用更新数据。

名称、交易代码和小数位属于可选显示信息。标准还要求调用方能够处理操作返回 false 的情况,而不能假定每次调用不是成功就是自动报错。实际接入时,应用需要面对已经部署的不同实现,不能只检查函数名称是否存在。

哪些能力不属于基础标准

ERC-20 没有统一规定代币应如何创建最初供应,也没有要求合约必须继续铸造或支持销毁。铸造、销毁、暂停、冻结、名单、交易费、投票权、升级和管理角色,都可能由具体实现另外加入,也可能完全不存在。

标准也不规定:

  • 代币供应是否有上限,以及谁能改变供应;
  • 代币是否对应储备、商品、服务或其他链外权利;
  • 代币价格、流动性或交易场所;
  • 管理员能否暂停、冻结或升级合约;
  • 其他网络上的同名代币是否与它属于同一资产安排。

因此,读取 totalSupply 只能得到合约当前报告的总量,不能单独说明未来会否增发;看到相同 symbol 也不能证明两个合约代表同一种代币。

代币合约与原生 ETH

ETH 是 Ethereum 网络的原生资产,用于支付网络执行交易所收取的 Gas 费,也由协议直接记录。ERC-20 代币则由智能合约维护余额和操作规则。

两者都可以在地址之间转移,但调用路径并不相同。普通 ETH 转账不需要调用某个 ERC-20 合约,ETH 本身也不是 ERC-20 代币。某些应用使用合约把 ETH 对应为一种 ERC-20 形式,以便接入只接受 ERC-20 接口的程序;这会引入另一份合约及其规则,不能把两种记录直接视为同一对象。

接口兼容不等于行为完全相同

“支持 ERC-20”通常只说明钱包或应用能调用基础接口。具体代币仍可能表现不同:

  • 转账时扣除额外费用,使接收数量低于输入数量;
  • 管理员可以暂停转账、冻结地址或改变实现;
  • 某些旧合约没有按应用预期返回结果;
  • 显示字段缺失、重复或由不可信来源提供;
  • 额外逻辑让普通转账在特定条件下失败。

所以,ERC-20 提供的是共同语言,不是统一业务规则。判断某个代币能否安全接入,需要检查具体合约地址、代码或验证信息、管理权限和实际调用结果。

常见问题

所有 Ethereum 代币都是 ERC-20 吗?

不是。Ethereum 还有面向独立编号代币或其他用途的标准,也可以存在自定义接口。ERC-20 主要服务于按数量记录、等量单位可互换的代币。

代币都使用 18 位小数吗?

不是。decimals 是可选显示字段,不同代币可以使用不同数值。应用在计算和显示数量前应读取并正确处理具体合约的设置。

把钱包与网站断开就撤销授权了吗?

通常没有。断开连接会阻止网站继续通过当前会话请求钱包操作,但链上授权仍由代币合约记录。撤销通常需要把相应额度改为 0,并让交易成功写入网络。

收到 ERC-20 代币就说明它是真的吗?

不能。任何人都可能部署名称或交易代码相似的合约。应核对网络、合约地址和可信信息来源;标准兼容性不能证明发行方身份、储备或价值。

其他区块链能直接使用这套标准吗?

ERC-20 是 Ethereum 应用层标准。能够运行 Ethereum 风格智能合约的其他网络可能采用相似接口,但每个网络上的合约地址和状态彼此独立。跨链移动通常还涉及桥或另外的发行安排,不是 ERC-20 接口自动完成的。

相关词条

继续了解代币标准、加密代币、智能合约和Gas 费,或返回加密货币术语表。

参考来源

免责声明
本文章可能包含不适用于您所在地区的产品相关内容。本文仅致力于提供一般性信息,不对其中的任何事实错误或遗漏负责任。本文仅代表作者个人观点,不代表欧易的观点。 本文无意提供以下任何建议,包括但不限于:(i) 投资建议或投资推荐;(ii) 购买、出售或持有数字资产的要约或招揽;或 (iii) 财务、会计、法律或税务建议。 持有的数字资产 (包括稳定币) 涉及高风险,可能会大幅波动,甚至变得毫无价值。您应根据自己的财务状况仔细考虑交易或持有数字资产是否适合您。有关您具体情况的问题,请咨询您的法律/税务/投资专业人士。本文中出现的信息 (包括市场数据和统计信息,如果有) 仅供一般参考之用。尽管我们在准备这些数据和图表时已采取了所有合理的谨慎措施,但对于此处表达的任何事实错误或遗漏,我们不承担任何责任。 © 2026 OKX。本文可以全文复制或分发,也可以使用本文 100 字或更少的摘录,前提是此类使用是非商业性的。整篇文章的任何复制或分发亦必须突出说明:“本文版权所有 © 2026 OKX,经许可使用。”允许的摘录必须引用文章名称并包含出处,例如“文章名称,[作者姓名 (如适用)],© 2026 OKX”。部分内容可能由人工智能 (AI) 工具生成或辅助生成。不允许对本文进行衍生作品或其他用途。

相关推荐

查看更多
consensus-mechanism

什么是共识机制?

共识机制是区块链网络用来决定“接下来接受哪一个区块、采用哪一段账本历史”的一套规则。网络中的节点分别接收和检查数据,即使消息到达时间不同,或有人提交冲突信息,它们仍需要用相同规则得出能够继续处理的结果。 这里的“共识”不表示每个人对所有事情意见一致,也不要求每个节点在同一时刻看到完全相同的数据。它表示:在协议设定的条件成立时,遵守规则的节点最终能够采用兼容的账本历史,并知道哪些交易仍可能变化,哪些
2026年11月9日
what-is-block

什么是区块?

区块可以理解为区块链用来打包新记录的数据包。一个区块通常包含一批交易或其他更新,以及供区块链网络中的节点检查这些内容的信息。除第一个区块外,新区块通常还会保存前一个区块的数字指纹,也就是哈希值,因此区块能够按顺序连接起来。 ![block](//images.ctfassets.net/4nqoo8goeymu/6ilDzmUaRfyrFJPV8ejCuA/33661c529cbe30e097c1
2026年11月9日
candlestick-chart

什么是代币化股票?

代币化股票(tokenized stocks)是用区块链上的代币,表示某只股票本身、与股票有关的权益,或者跟随股票价格变化的合约。它不是一种结构完全统一的产品:“代币名称对应某家公司”只能说明参考对象,不能证明持有人就是这家公司的股东。 理解代币化股票,最重要的不是先看它部署在哪条链上,而是先问:代币究竟代表什么权利?有些代币直接参与股票持有人登记,有些代表由第三方托管的股票权益,还有些只让代币价
2026年11月9日
token-standard

什么是代币标准?

代币标准是一套技术规范,规定代币程序应提供哪些功能、接受什么输入,以及怎样把结果告诉钱包和其他应用。它让不同开发者创建的代币可以用一组共同规则被识别和调用。 可以把标准理解为接口约定:它规定“对外怎样沟通”,但不替每个项目决定供应量、用途、管理权限或链外权利。两个代币可以遵循同一标准,却采用不同代码、拥有不同权限,并代表完全不同的对象。 ## 没有共同标准会发生什么 如果每个代币都自行命名查询余额
2026年11月9日
USDC-DAI-USDT Price: Everything You Need to Know About Stablecoins

什么是稳定币?

稳定币是一类试图让价格接近某个参考价值的加密资产,常见参考对象是美元等法定货币。“稳定”说的是设计目标,并不是价格保证。稳定币仍可能高于或低于目标价格交易,不同持有人也不一定都能直接向发行方赎回。 理解稳定币时,可以把四个问题分开:参考价值是什么?由什么机制支持?谁可以直接赎回?特定市场上实际可得的价格是多少?某项说明回答了其中一个问题,不代表其他问题也得到回答。 ## 目标价值不等于市场价格 *
2026年11月9日
smart-contract

什么是智能合约?

智能合约是部署在区块链网络上、由交易或其他程序调用后按代码规则运行的程序。它可以读取输入和链上数据,检查预设条件,并在执行成功后更新区块链保存的数据。 “智能”不表示它会自行思考,“合约”也不保证它在法律上构成合同。这个名称强调的是:参与者可以把一组操作规则写成代码,由运行区块链软件并检查交易的节点按协议处理,而不必由某一台服务器单独决定结果。 ## 先分清代码、状态和调用 **代码**规定程序可
2026年11月9日
查看更多