
适用范围:先分清接口与规则
讨论通证模型时,首先要区分两个层面:接口规定合约如何被调用,具体规则决定通证如何产生、分配和使用。这里围绕以太坊通证标准与ERC-20基础实现解释术语;仅凭标准名称,无法判断某个项目完整的供给或治理安排。
同质化、非同质化与通证标准
以太坊开发文档将ERC-20用于可互换通证,ERC-721用于非同质化通证,ERC-1155则可在同一标准框架下容纳同质化与非同质化类型。统一接口有助于钱包和应用接入,也便于合约之间组合使用。
“可互换”关注同一种通证的单位是否具有相同属性;“非同质化”关注不同标识对应的独立对象。设计中应先明确需要记录统一数量,还是区分具体对象,再理解相应标准的作用。接口兼容本身并不保证所有应用功能都能直接适配。
用途与接口:投票、质押不自动生效
投票通证、质押通证描述的是用途,ERC-20描述的是接口。一个通证具有余额和转账功能,并不意味着已经具备投票计票、锁定或退出机制。这些用途仍需要相应合约规则支持。阅读模型说明时,应把用途名称与实际实现分开核对。
初始供给、铸造与账户余额
OpenZeppelin的ERC-20示例通过铸造建立初始供给,并将其分配给部署者地址。这里的初始供给是创建时产生的数量,余额是某个地址持有的数量。初始供给不能直接等同于永久上限;能否继续铸造,需要查看具体实现。
普通转账改变发送方与接收方的余额分布,铸造则增加通证供给。因此,“发放通证”这一表述还不够精确:它可能指转移已有余额,也可能指创建新通证,两者对供给的影响不同。
decimals与常见理解误区
OpenZeppelin文档说明,decimals用于将链上的整数数量换算成用户界面显示的通证数量,其ERC20实现默认使用18位小数。显示数量等于原始整数除以10的decimals次方,合约内部仍按整数运算。
小数位更多,表示单位可以划分得更细,不代表供给自动增加。比较余额或供给数据时,必须确认使用的是原始整数还是换算后的显示值。标准、供给与精度分别回答不同问题,不能用其中一个字段代替对完整模型的理解。