W3
Token 标准入门381 次阅读

ERC-20:同质化代币的标准

为什么所有代币接口都一样?理解 ERC-20 的九个函数、approve 模式与常见误区。

#ERC-20#代币#approve

什么是 ERC-20?

ERC-20 是以太坊同质化代币(Fungible Token)的接口标准,2015 年定型。它规定了代币合约必须实现的函数,让任何钱包、交易所、DeFi 协议都能即插即用地支持任何新代币——这是 DeFi 可组合性的基石。

核心接口

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

approve / transferFrom 两步授权的设计

合约(如 Uniswap)替你转账代币前,需要你先 approve 授权额度。这是为了解决"合约无法主动发起交易"的限制。理解这一点你就明白了:

  • 为什么每 swap 一次要签两笔交易(approve + swap)
  • 无限授权的风险:恶意合约可转走你全部余额——用 Revoke.cash 定期清理

常见误区

  1. 误转到合约地址:ERC-20 转账不检查接收方是否合约,转错可能永久丢失
  2. 假代币(Fake Tokens):任何人可发行同名代币,认准合约地址而非名字
  3. .decimals 陷阱:18 位精度是默认,但 USDT/USDC 是 6 位,BUSD 是 8 位
  4. 中心化风险:多数代币有 owner 可增发/冻结/暂停——查 mint 权限与黑名单函数

同族标准速览

  • ERC-721:NFT 非同质化代币
  • ERC-1155:多代币标准(游戏道具:同合约管理 FT+NFT)
  • ERC-404:FT 与 NFT 混合实验
  • ERC-2612 Permit:签名授权,省一笔 approve 交易

相关阅读