使用以太坊智能合约发行代币时可以加入黑名单功能,在黑名单地址上的代币无法使用。 原文标题:《如何拉黑加密数字货币——从稳定币(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-ERC20 的黑名单地址上。 一个智能合约的规则是由项目方来定义的,这不是以太坊的共识规则。所以一个智能合约发行的代币的信用和价值是要依赖于项目方的。项目方有能力也有权通过合约代码来定义其代币。 以太坊上的智能合约是不可篡改的(理论上是可以改,但很难,目前以太坊社区公认为合约规则不可随便改)。一个合约发布后,其代币规则就定义好了。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-智能合约和 omnislp 以太坊的智能合约是由第三方书写并发布的,合约代码规则是由项目方决定。使用智能合约发行代币,项目方有权有能力决定代币的功能,包括黑名单。 而 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 用户,我觉得还是优先接受不可被冻结的版本为好。 (责任编辑:admin1) |