合规代币的检查函数返回什么字节:ERC-1462 的四道预检与文档双绑
证券类代币要在链上满足 KYC 与反洗钱要求,第一反应是把转账函数写成“不合规就 revert”。ERC-1462 选了另一种做法:先问,再转。这份文档创建于 2018 年 10 月 1 日,仓库记录状态为 Stagnant,需要 ERC-20 和 ERC-1066,摘要的定位是在 ERC-20 之上补一组最小扩展,让代币符合证券监管与法律可执行性要求,重点覆盖给账户锁仓、因法律纠纷限制转账,以及把法律文档和代币绑成双挂关系。
四道预检,返回的是字节而不是布尔
规范在标准 ERC-20 的六个函数之外加了四个检查函数:checkTransferAllowed(address from, address to, uint256 value)、checkTransferFromAllowed、checkMintAllowed(address to, uint256 value)、checkBurnAllowed(address from, uint256 value),签名清一色返回一个 byte。返回布尔不行吗?规范的态度是布尔的信息量不够:能不能过只是问题的一半,另一半是“为什么”。这就轮到依赖的 ERC-1066 出场——那是一份给 0 到 255 空间分配标准状态码的提案,本规范直接引用它的码表并给出判读规则:允许时返回 0x11(Allowed)或发行方自定义的更精确等价码;不允许时返回 0x10(Disallowed)或等价码;内部出错返回通用表里最贴切的码,规范举的例子是 0xF0(Off-Chain Failure)——合规系统多半在链下,链下系统失联和“明确拒绝”是两种状态,布尔会把它们压扁成一个 false。码值怎么映射到具体法域的具体条款,规范同样不做假设,本地化交给应用在应用层解决。
函数怎么实现留给发行方,规范只锁定判读语义,并逐条给出硬性覆盖要求:transfer 必须重写为检查 checkTransferAllowed 的状态码;transferFrom 对应 checkTransferFromAllowed;approve 也必须走 checkTransferFromAllowed 的检查;对带 send 语义的类型则要求同时核对相应检查函数的返回码。换句话说,合规判断的公式是发行方写的,但“先检查再放行”的骨架是标准规定的,而且四类动作(转、代转、铸、销)无一例外都必须在执行路径里问过对应的检查函数。

把法律文档钉在合约上
另一半设计是文档绑定。attachDocument(bytes32 _name, string _uri, bytes32 _contentHash) 把一个字节名、一个 URI 和一个内容哈希登记进合约,lookupDocument(bytes32 _name) 原样取回这两个值。动机很明确:代币和发行它的法律实体之间要能建立“双绑”关系——链上的人可以顺着 URI 找到发行文件、章程或协议,并用内容哈希验证文件自登记以来没被换过。摘要说这套机制的意图是设置代币与链下法律实体的双绑关系,让“我买的是什么”第一次有了可机读的落点。持有人在链上就能比对:页面上那份发行文件和合约里登记的内容哈希是不是同一份。
故意做窄的规范
动机部分罕见地写了同行批评:作者认为当时几个证券代币标准各自塞了太多项目方或市场特定的细节——比如有的依赖了出圈的其他提案,有的把集成压在尚未定稿的 ERC-777 上,会把通用采用门槛抬得很高;也点名 ERC-1404 漏掉两点:没有区分 transfer 与 transferFrom 这类不同的 ERC-20 转账入口,也没提供绑定法律文档的手段。于是 ERC-1462 把范围压到只剩“检查函数加文档登记”,摘要明确说范围尽可能窄以免限制用例,其余功能交给各项目在单个项目层面叠加。
理由部分还解释了两个容易被当成冗余的取舍。为什么要 transfer 与 transferFrom 两个检查函数而不是一个:这两个入口通常在完全不同的上下文里被调用,有的代币标准甚至明确禁用 transfer 只留 transferFrom,两种场景的合规判定可以合法地不一样;而 checkApprove 被有意省略,因为授权检查和 checkTransferFromAllowed 的使用语境完全重合。文档函数则被标注为可选、属于法律框架的一部分,且同一个名字只许登记一次——实现必须检查重名、禁止覆盖,防止发行方悄悄换文件。这份 Stagnant 文本今天的残值在排查清单:接手一只声称合规的 ERC-20 时,先看合约有没有这四个带 byte 返回值的检查函数,再读执行路径是不是真的先查后转,然后核对状态码是否按 ERC-1066 码表发放,最后用 lookupDocument 顺藤验一次文件哈希。四样全无而只在网页上贴一句“合规发行”的,链上其实什么都没承诺。本文为机制说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。