长推:Solidity 代币协议和 Move 代币协议扩展性区别

jolestar热度: 21076

美国对 Tornado 制裁导致 USDC 封禁钱包地址,被封的钱包地址中的 USDC 就没法用了,实际上是 Solidity 的 Token 协议(ERC20)留的扩展性接口导致的。

原文作者:jolestar

原文来源:Twitter

编译:Kate

jolestar

美国对 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 这种更是黑客的洗钱工具,难道不应该打击犯罪吗?犯罪当然应该打击,但不应该以牺牲金融基础设施为代价。金融基础设施应该像空气一样,无差别服务于所有人,打击犯罪可以通过其他途径。

Mindao

这个跟ERC20 和solidity倒是没多大无关,比如DAI/USX就没blacklist的功能,主要是因为USDC/USDT的监管要求必须加这个功能

禾山(He Shan)

1. ERC20标准下的Token 是一种受监管的Token(可以不实现blacklist来放弃监管, 或新开一个ERC20-A来去掉监管的功能,把权力全部交给用户,Move 中 Token 就是这样自由的状态)

2. 主要问题还是crypto 和监管政策的博弈,以及难以实现一个公式强真正去中心化的『真』稳定币

责任编辑:Kate

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。