美国对 Tornado 制裁导致 USDC 封禁钱包地址,被封的钱包地址中的 USDC 就没法用了,实际上是 Solidity 的 Token 协议(ERC20)留的扩展性接口导致的。
美国对 Tornado 制裁导致 USDC 封禁钱包地址,被封的钱包地址中的 USDC 就没法用了。很多人不理解,链不是去中心化的么,咋还能封禁。简单聊下 Token 协议的扩展性问题以及,Solidity Token 和 Move Token 的区别。
这个实际上是 Solidity 的 Token 协议(ERC20)留的扩展性接口导致的。ERC20 的转账方法(transfer)是要 Token 合约自己实现,所以实现方可以在转账方法中做一些自定义的限制逻辑,比如 USDC 用来封禁地址,还比如一些貔貅 Token,实现只准买不准卖的逻辑。
当初设计 Move 上的 Token 标准时也遇到了这个难题。在 Move 中,Token 是一种“自由状态”,一旦铸造出来,Token 合约对 Token 就失去了控制。用户的 Token 默认存在用户的账户余额容器中,但用户也可以把它像现金一样从账户余额容器中提取(withdraw)出来,这时候 Token 也就不受账户合约的控制了。
所以,即便是在用户的账户合约中增加封禁某种 Token 的逻辑,实际上用户也可以使用另外一个没有限制的余额容器来替代。类似于你担心银行封禁你的账户,就把现金提出来,锁在自己家里的保险箱里一样。
当初 Libra 设计 Token 合约(它叫 Currency)应该也是考虑到了这种情况,把提款方法给干掉了, 用户的 Token 只能存在账户容器中,无法提取出来,为了合规牺牲了 Move 的自由状态特性。
未来中心化的稳定币支持 Move 生态链的时候,应该也会遇到这个难题。但 Token 本身应该是自由的,如果要提供一种不自由的 Token,那应该用另外的类型,让用户明白它是和 Token 不一样的资产,而不是把自己伪装成 Token。
当然很多人会说,现金模式会导致犯罪份子藏匿资产,Tornado 这种更是黑客的洗钱工具,难道不应该打击犯罪吗?犯罪当然应该打击,但不应该以牺牲金融基础设施为代价。金融基础设施应该像空气一样,无差别服务于所有人,打击犯罪可以通过其他途径。
这个跟ERC20 和solidity倒是没多大无关,比如DAI/USX就没blacklist的功能,主要是因为USDC/USDT的监管要求必须加这个功能
1. ERC20标准下的Token 是一种受监管的Token(可以不实现blacklist来放弃监管, 或新开一个ERC20-A来去掉监管的功能,把权力全部交给用户,Move 中 Token 就是这样自由的状态)
2. 主要问题还是crypto 和监管政策的博弈,以及难以实现一个公式强真正去中心化的『真』稳定币
责任编辑:Kate