区块链 · 数字资产知识 · 行业资讯
文章库关于本站

数字资产知识

区块链代币规矩可以暂停转移吗|余额存在与操作可用不是一回事

摘要

对照OpenZeppelin ERC20Pausable与ethereum.org对ERC-20接口的说明,区分暂停后仍可查询的余额,与被拦住的转移/铸造/销毁;不冒充对具体币的审计。

tp钱包波场代币锁仓的科技主题配图

ERC-20先约定余额接口,并不自带暂停开关

ethereum.org《ERC-20 Token Standard》把ERC-20写成同质代币接口标准:应用可以互操作地处理转账、查询余额、查询总供应量以及授权额度。页面列举的方法包括把代币从一个账户转到另一个账户、读取某账户当前余额、读取网络上该代币总供应量,以及批准他人可支配额度。这些接口回答的是“账本怎么读、怎么改”,并没有规定项目必须提供“一键暂停全部转移”的公共开关。

因此,在“区块链代币规矩可以暂停转移吗”的问题上,不能把“符合ERC-20”直接等同于“随时可以冻结转账”。是否具备暂停能力,取决于实现是否额外引入了暂停扩展;余额字段是否仍可查询,也要和转移操作是否被拦截分开看。标准负责互操作接口,扩展负责可选的紧急控制,二者不是同一层承诺。

ERC20Pausable拦住的是更新路径,不是抹掉余额记录

OpenZeppelin Contracts 5.x 在ERC-20扩展表中写明:ERC20Pausable提供暂停代币转移的能力。同一页对ERC20Pausable的说明进一步写成:这是带可暂停token transfers、minting和burning的ERC-20;适用场景包括评估期结束前暂缓交易,或在出现重大缺陷时用紧急开关冻结全部转移。文档同时强调,该合约本身不包含公开的pause与unpause函数,继承后必须自行定义这两个函数,并调用Pausable._pause与Pausable._unpause,同时配上合适的访问控制(例如AccessControl或Ownable);否则暂停机制不可达、不可用。

ERC20Pausable覆盖的_update函数要求“合约必须未处于paused状态”。换言之,暂停生效时,走_update的转移、铸造、销毁会被拒绝;但这是操作可用性的限制,并不等于把既有余额从账本抹掉。ethereum.org仍把balanceOf freestanding列为ERC-20阅读余额的标准方法——余额“存在”与转移“可用”可以处于不同状态。本篇不讨论某项目pause权限是否被滥用,也不把浏览器插件显示的paused标记当成资产已被没收的证明。

SGT区块链发行总量的科技主题配图

阅读时要同时核对扩展与调用权限

把两层合起来:ERC-20标准解释余额与转账接口;ERC20Pausable解释可选的紧急冻结路径。OpenZeppelin还提醒,pause/unpause必须由实现方自己接到访问控制上,默认不会“所有ERC-20都可暂停”。核对某代币时,应分别问:是否继承了可暂停扩展、谁有权调用pause/unpause、暂停后哪些写入路径被_update拦住、余额读取是否仍按ERC-20接口返回。

不能只因为余额数字还在,就推断转移一定成功;也不能只因为出现暂停相关事件,就宣布代币标准本身失效。阅读“区块链代币规矩”材料时,应先确认讨论的是接口标准还是某个可暂停扩展实现。本篇只说明“余额存在”与“操作可用”在规矩上的分工,不提供对具体合约的安全审计结论,也不指导如何绕过暂停。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验