发行方可以撤回你的余额:ERC-2980 瑞士合规代币的白名单与冻结名单
多数代币讨论的是转账自由,ERC-2980 讨论的是自由的反面。它创建于 2020 年 9 月 8 日,仓库记录状态为 Stagnant,目标是做一个与瑞士五部法律对表的资产代币:证券市场法、银行法、金融市场基础设施法、集合投资计划法和反洗钱法。原文的方法论很直白:法律要求的限制,逐项写进合约函数和事件,让合规不再是法律意见书而是接口行为。
发行方:一个被标准化的特权角色
合约里有 isIssuer 查询发行方身份,addIssuer 与 removeIssuer 增删发行方,transferIssuer 移交发行权。发行方拿到两项超出 ERC-20 的能力:revoke 直接撤回某个地址的余额,reassign 把一个地址的余额整体转给另一个地址。两条操作分别触发 FundsRevoked 和 FundsReassigned 事件。这是整份标准最刺眼的部分:在合规语义下,代币余额对应着法律账本上的权利,司法机关或发行人纠错时,链上余额应当能被同步纠正,而不是让法律判决追不上转账速度。

白名单与冻结名单
合约维护两份名单。白名单决定谁有资格进入资产关系:whitelist 查询某地址是否在列,addAddressToWhitelist 与 removeAddressFromWhitelist 管理成员,对应反洗钱的身份要求。冻结名单处理涉案地址:frozenlist 查询、addAddressToFrozenlist 与 removeAddressFromFrozenlist 管理,被冻结的地址进入FundsFrozen 事件,交易对这条地址关闭但不销毁余额——与 revoke 的清零语义形成两档处置强度。冻结是可逆的临时措施,撤回是终局的更正措施,标准的这个分层和金融执法的梯度是一致的。
法律文件如何落进函数表
原文的对应关系可以列成一张清单:反洗钱要求身份合格,落到白名单与添加、移除函数;证券与金融基础设施规则要求可控流转,落到冻结名单与其查询、增删接口;执法与纠错要求资产可更正,落到 revoke、reassign 与配套事件。每个函数名旁边还挂着发行方管理函数,transferIssuer 保证特权可移交而不是散落在多个部署里。这组映射给读者的方法论是:评价任何合规代币时,先把当地法律要求逐条列出,再问每条对应链上哪个函数与事件;只能对应到隐私条款文本、对应不到合约行为的要求,实际执行靠的还是运营方的线下流程。
名单开关的组合语义
两份名单的组合产生四类地址状态:在白名单且未冻结的正常参与转账;不在白名单的新地址无法进入资产关系;已入名单但被冻结的地址转账即失败、余额仍在;两者都不在则维持 ERC-20 默认行为。名单查询函数是 view 的,钱包和浏览器可以在签名前先展示目标地址当前处于哪一档,把监管状态呈现到点击确认之前。事件侧的分工也清晰:FundsFrozen 只标记冻结事实,不记录操作者身份字段,审计要回到交易发起方;而 revoke 与 reassign 直接改变余额,必须与事件流逐条核对才能重放历史余额。这类代币的正确用法不是把它当普通 ERC-20 集成,而是在集成层显式处理名单拒绝分支。
向后兼容声明的边界
原文声明本扩展不引入不兼容:transfer、transferFrom、approve、allowance 四个 ERC-20 函数照常实现,普通钱包仍能识别这类代币。但兼容是接口层的,行为上名单和撤回时刻可能让一笔标准调用失败或被事后冲正,依赖“转账终局性”的兑换池必须自行处理这些失败分支。读这份标准的现实价值有两层:第一,它展示了地域监管落到 EVM 合约上的完整词表——资格、冻结、撤回、再分配,每个词都有函数和事件对应,评估任何号称合规的资产代币时可以拿这四件套逐项对照;第二,它把风险教育写进了接口:持有任何带发行方特权的代币前,先查 isIssuer 指向的地址、多签构成和历史 revoke 事件的数量。本段仅为机制说明,涉及的法律内容以条文与核验时间为准,具体地区要求需要另行确认。
本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。