如何拉黑加密数字货币——从稳定币(USDC和USDT)黑名单地址说起

加密数字货币是去中心化的存在,币圈一直以币无法被冻结为骄傲。但事实上,币圈最大的两个稳定币USDT和USDC,现在都有一个黑名单地址,在黑名单上的USDT和USDC都无法使用。
这是不是打破了加密数字货币不可被冻结的神话?
USDC和USDT被冻结
USDC是在以太坊上发行的一个erc20代币,锚定美元的稳定币,使用智能合约发行。合约账户为:
usdc合约:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
近日usdc被新闻报出将一个10万usdc的地址列入黑名单,这意味着这个地址上10万美元的资产将不可被使用。这和银行冻结银行卡是一样的。
usdc合约的黑名单地址也是不可以接收新的usdc的。
USDT是币圈最著名的稳定币,也有erc20版本的usdt,合约账户为:
Usdt erc20版合约:0xdac17f958d2ee523a2206206994597c13d831ec7
目前这个usdt erc20合约也有一个黑名单地址,一共有40个以太坊地址,冻结了上百万的usdt。
Usdt black list: https://explore.duneanalytics.com/public/dashboards/3zhIaRUCFgmZMKqHG0pguvSvw1aOGL8gxFtZ2ujf
usdc官网是明确说明,usdc合约是带有黑名单功能的,见下:
The only circumstance where a transfer might fail to be executed by the USDC smart contract is when either the sender or receiver wallet address has been blacklisted.
USDC智能合约维护着一个全球黑名单地址,可以禁止和冻结其接收发送usdc。
https://support.usdc.circle.com/hc/en-us/articles/360016060352-Can-a-customer-send-USDC-tokens-to-any-address-Can-addresses-be-blacklisted-
使用智能合约规则来禁止和冻结币
usdt除了erc20版本的代币外,还在其他多条链上均发布了代币。btc上发行了omni版本的usdt,波场上有trc20版的usdt,在bch上有slp版的usdt……
usdt的erc20和trc20版本都是采用智能合约来发行,即Tether公司在以太坊上写了一个代码并部署在以太坊网上,波场也一样。
智能合约代码就可以定义所有的usdt规则,其中就可以包括黑名单禁用地址。任何usdt-erc20的转账是要依赖于usdt-erc20这个合约代码的执行。这就非常容易在代码里设定黑名单规则。
智能合约代码写的规则不是以太坊的共识规则,比如usdt-erc20合约是无法禁止其黑名单地址接受和花费以太币及其他代币。一个合约只能够禁止合约自己的代币。只要你持有一个地址的私钥,那你还是可以花费上面的ETH,哪怕是该地址在usdt-20的黑名单地址上。
一个智能合约的规则是由项目方来定义的,这不是以太坊的共识规则。所以一个智能合约发行的代币的信用和价值是要依赖于项目方的。项目方有能力也有权通过合约代码来定义其代币。
以太坊上的智能合约是不可篡改的(理论上是可以改,但很难,目前以太坊社区公认为合约规则不可随便改)。一个合约发布后,其代币规则就定义好了。usdc和usdt的黑名单功能是在合约发布时定义好的。
BTC的omni和BCH的SLP
Usdt-omni和usdt-slp这两个版本的usdt不是使用智能合约技术,采用的是比特币的Op-return字段附代特殊信息的技术。
Op-return是BTC和BCH的交易输出的一种,这是比特币交易的一部分,这是比特币协议的共识规则。
Op-retrun在功能上相当于写备注信息的小纸条,就像你在银行转账时的备注信息一样。
Omni和slp协议都是在交易的op-return字段里填写信息来实现代币功能的。omni和slp代币的交易都是BTC和BCH交易中的交易。你要发一笔omni代币交易,是要在发一笔比特币交易里内置一笔omni代币交易,slp交易也一样。
所以说,omni和slp交易是“交易内的交易”,这些交易都要遵守比特币协议规则。
opreturn里的信息具体写的是什么,比特币协议是不管的。使用omni和slp协议来发代币,则是将代币规则写进opreturn里。所以代币规则是受omni和slp协议的约束,而omni和slp协议也是需要写一套代码来追踪和检查代币交易是否遵守规则。
理论上,omni和slp协议也可以内置地址黑名单功能,但是这两个协议都已经写好了,并且已经获得了BTC和BCH的共识,协议里不带黑名单功能。
所以我们看不到Tether公司推出usdt-omni的黑名单地址。
ETH-智能合约和omni\slp
以太坊的智能合约是由第三方书写并发布的,合约代码规则是由项目方决定。使用智能合约发行代币,项目方有权有能力决定代币的功能,包括黑名单。
而omni和slp协议,是btc和bch的第二层协议,协议已经定义好了,已经成了网络共识的一部分。使用omni和slp协议来发代币,绝大多数功能是受到了协议的约束,远不如智能合约那么灵活。
所以你看omni和slp,本质上就只有孤零零的发币功能。虽然理论上omni定义好了交易功能,但我们根本看不到产品。理论上slp协议也定义好了非同质化代币(erc721)功能,但我们也没看到产品。这都是因为协议定死了,留给开发者的发挥空间太窄。
而反观智能合约,允许开发者使用代码实现任何想象。这也是我们看到了以太坊上什么乱七八糟的项目都有,如dapp,defi这些名类繁多的产品。
但同时也意味着和智能合约代币对比,omni和slp协议的代币,发行方的权力更小,代币用户的权力更大。用户使用omni和slp代币不用担心被列入黑名单。
矿工黑名单
这是不是意味着usdt-omni和usdt-slp绝对不可能被拉黑呢?
理论上不是的。
比特币和以太币,任何转账,包括BTC交易,ETH交易转账,以及各种代币的转账,所有的转账都是由矿工挖矿发布区块来打包,最终确认交易完成。
用户可以构建交易,将自己的币发给任何地址,但矿工如果不打包的话,那这笔交易就会被作废。
所以如果想拉黑usdt-omni和usdt-slp,就可以通过矿工体系来拉黑。让矿工全体维持一个黑名单地址。
但比特币和以太坊的挖矿是开放的,是去中心化的,而且是匿名的,很难有一个办法让全体矿工共同维持一个黑名单。哪怕是联合国出面并执法,都很难行的通。
币安交易所曾经被黑客盗走7000个BTC,老板赵长鹏发推特希望比特币矿池帮忙冻结并回滚黑客的交易。结果是得到了全体币圈的嘲笑。
改协议建黑名单
还有一种办法冻结币,改协议。以太坊在2016年的The Dao硬分叉,本质上也是通过改协议来实现对币的所有权的更改。
想要改协议,不但要征得开发者的同意写代码,还得征得矿工的同意来更新软件,还要征得交易所来配合,还要用户最终还能接受新的协议。
对于一个成功去中心化的币,想通过改协议来实现币的冻结是太难了,只存在理论上的可能性。
usdt借助omni协议非常成功,一个重大的特性就是匿名化。usdt-erc20可以被冻结了,不知道会不会引发用户对usdt的不信任。
作为usdt用户,我觉得还是优先接受不可被冻结的版本为好。