
先确认设计文档要回答什么问题
区块链代币项目的设计文档通常用于说明代币是什么、如何发行、如何转移,以及项目合约准备支持哪些功能。查阅时可以先建立一张问题清单:代币属于哪类标准,部署在哪个网络,是否具有可替代性,总供应量如何确定,是否能够增发或销毁,哪些地址拥有特殊权限,以及代币如何与其他合约交互。这样可以把宣传性描述与可验证的技术内容分开。
如果项目声称使用 ERC-20,应重点寻找标准接口和事件说明。ERC-20 面向同质化代币,通常要求合约提供名称、符号、精度、总供应量、余额查询、转账、授权和代扣转账等方法,并通过 Transfer 与 Approval 事件记录相关操作。设计文档若只介绍用途和分配比例,却没有说明合约接口、权限或供应变化规则,技术信息就不完整。

按三个层次查阅资料
第一层是标准文档。以太坊的代币标准资料适合确认概念和接口边界,例如 totalSupply 用于查询总供应量,balanceOf 用于查询地址余额,approve 与 allowance 用于授权,transferFrom 则允许在授权范围内代扣转移。标准文档能够帮助读者判断一个项目声称的代币类型是否与其功能描述相符。

第二层是实现文档。OpenZeppelin 的 ERC-20 文档展示了常见的合约继承方式、初始供应量铸造方式和 decimals 的使用规则。实现文档有助于继续追查设计细节,例如初始代币是否在部署时分配给部署者,后续供应是否由特定函数产生,以及项目是否使用经过广泛采用的基础实现。采用某个库本身不能证明项目合约安全,仍需核对实际部署代码和配置。
第三层是项目自身材料与链上合约。白皮书、技术文档、代码仓库和合约验证页面应相互对应。可以检查文档中的合约地址、网络名称、代币符号、供应机制和权限说明是否一致,再查看合约是否公开验证、是否存在管理员角色、铸币权限或暂停转账等功能。若文档与实际合约不一致,应把差异记录下来,而不是仅依据项目页面下结论。
重点核对供应量、精度与权限
代币数量需要结合 decimals 理解。合约内部通常使用整数记录余额,decimals 主要用于钱包、区块浏览器等界面展示。假设精度为 18,界面显示的一个代币在合约内部通常对应乘以 10 的 18 次方后的整数。因此,查阅设计文档时,应确认文档展示的数量是人类可读数量,还是合约内部原始数量,避免把两者混为一谈。
供应机制是设计文档的核心内容之一。需要寻找初始铸造、后续增发、销毁、上限和权限转移的说明,并将这些说明与合约函数及事件对应起来。文档只写“总量固定”并不足够,还要确认合约是否保留能够增加供应量的权限,以及该权限由谁控制。若项目使用代理合约,还应同时查看代理和实现合约的关系。
还应检查代币与其他合约交互时的限制。ERC-20 的普通 transfer 或 transferFrom 不会自动通知接收合约;如果接收地址没有处理代币的能力,代币可能无法取回。设计文档应说明存入其他合约的推荐流程、是否提供误转代币提取机制,以及是否存在禁止转入特定地址的限制。这些内容直接关系到集成方式和操作风险。
常见问题与适用范围
问:只看白皮书能判断代币设计吗?答:不能。白皮书适合了解目标和规则,标准文档用于核对接口,源代码和链上合约才用于核实实际执行逻辑。三者应当能够相互印证。
问:使用 ERC-20 是否代表所有功能都相同?答:不代表。ERC-20 提供一组通用接口,但项目可以增加铸币、销毁、暂停、黑名单、手续费或权限控制等扩展功能。查阅时必须单独记录这些扩展,因为它们不由基础标准自动决定。
问:如何判断一份设计文档是否适合某个项目?答:先确认它对应的网络、代币标准和合约版本,再检查供应机制、精度、权限、升级方式以及与外部合约的交互说明。若文档只适用于 ERC-20,而项目实际使用的是其他代币标准或非同质化资产,就不能直接套用其中的结论。