
适用范围:以ERC-20代币为例
“新币发行”并不是一个单独的技术动作。以太坊ERC-20场景中,需要分别理解合约建立、代币数量产生以及余额分配。这里讨论的是智能合约代币,不宜将这些规则直接套用到所有区块链资产。
代币标准与同质化
ethereum.org的ERC-20说明将其定位为同质化代币的通用接口,涵盖余额、供应量、转账和授权等功能。统一接口让不同应用能够以相近方式识别和处理代币。
“同质化”指同一种代币的等量单位可互换,不表示不同代币彼此等价,也不表示价格固定。标准解决的是接口一致性,不能据此认定具体代币的经济属性或安全性。
部署、铸造与固定供应
OpenZeppelin的供应机制说明指出,ERC-20本身不规定供应如何产生;基础实现可以没有供应量,扩展实现可通过内部铸造函数创建代币。
因此,“部署”与“发行数量产生”要分开理解:合约已经存在,不一定意味着已有代币余额。“铸造”则涉及供应量增加及相应余额记账。首次创建一定数量,也不能单独证明供应永久固定,还要看后续是否存在可触发的增发机制。
总供应量、余额与精度
totalSupply表示合约记录的当前总供应量,balanceOf表示某个地址的余额。前者回答整体数量问题,后者回答特定地址的记账问题;总供应量不等于未来发行上限。
decimals表示显示精度。链上整数需要按这一精度换算成通常展示的数量,因此比较供应量或余额时应统一单位。精度影响数量如何显示,不应被理解为额外发行。
转账与授权有什么不同
transfer用于转出调用者的代币;approve设置指定第三方可使用的额度,allowance查询剩余额度,transferFrom则用于在授权规则下转移代币。
授权额度与实际余额不是同一个概念。授权本身也不等于已经转账,因此看到授权记录时,不能直接把额度当成已转出的数量。
常见问题:符合标准就能安全接收吗
不一定。ERC-20没有强制性的接收通知机制,代币转入缺乏处理能力的合约后,可能无法取回。转账记账成功与接收合约能够使用这些代币,是两件不同的事。
同样,“符合ERC-20”也不能证明供应固定。理解发行描述时,应分别辨认接口标准、供应规则、数量单位及接收能力,避免用一个术语替代对全部机制的判断。