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 定期清理
常见误区
- 误转到合约地址:ERC-20 转账不检查接收方是否合约,转错可能永久丢失
- 假代币(Fake Tokens):任何人可发行同名代币,认准合约地址而非名字
- .decimals 陷阱:18 位精度是默认,但 USDT/USDC 是 6 位,BUSD 是 8 位
- 中心化风险:多数代币有 owner 可增发/冻结/暂停——查 mint 权限与黑名单函数
同族标准速览
- ERC-721:NFT 非同质化代币
- ERC-1155:多代币标准(游戏道具:同合约管理 FT+NFT)
- ERC-404:FT 与 NFT 混合实验
- ERC-2612 Permit:签名授权,省一笔 approve 交易