首页
学习
活动
专区
工具
TVP
发布

为什么说美国财政部对比特币特定地址进行制裁将是无效的?

美国财政部在前段时间宣布对两个比特币地址进行制裁,这两个地址被伊朗人用来干非法事的收款地址。但这种制裁短时间内(几年?)不会有什么用的。

本文介绍比特币的混币技术和服务。本文是使用比特币来描述,但其他币的混币也差不多。比特币现金就完全一样。

1

货币(比特币)的同质性

作为货币,同质性是非常重要的,所谓同质性就是一块钱就是一块钱,你的一块钱和我的一块钱完全是一样的东西。

但在法币世界里,同样是钱,却有黑钱和白钱的区别的。政府对所有犯罪所得是定义为黑钱,甚至没有合法纳税的收入都可以被定义为黑钱。黑的一块钱,和白的一块钱,肯定是不同质的。白钱可以在银联等系统下进行流通,银联是在政府完全监控之下的。黑钱就无法在政府的监管下进行流通。所以才有洗钱的说法,就是将黑钱洗成白钱。

钱不同质,体现在流通范围和价值都可能不同。黑钱无法像白钱那样在银联体系下流通,只能在线下流通。黑钱要洗白,肯定是要花成本的,比如可能会折损20%,甚至90%。这就是不同质的结果。

我不是认为政府定义黑钱不好啊,毫无疑问,犯罪是不对的,强烈支持合法没收犯罪所得,就应该将犯罪所得的钱定义为黑钱。

比特币也是钱,而且比特币同样会被用于犯罪,犯罪是不对的。但如果政府使用现在对待法币的黑白定义来对待比特币的黑白,那注定是徒劳的。因为比特币的黑白是非常容易通过混币来完成同质化的。

我不是鼓励犯罪使用加密数字货币,而是表达一种客观事实。也只要这些知识和技术被更广泛的民众,特别是执法机构知道后,我们才能构建一个更好的经济监管体系,让犯罪无从遁形。

2

比特币是半匿名性的

首先要强调,比特币并不是纯匿名性的。现金纸币,就是我们口袋里的纸钱,这是100%匿名的。匿名性是保证钱的同质性的一个非常重要的属性。这也是为什么我们看到各种罪犯都广泛接受现金的原因。

比特币并不是记名的,我们下载比特币钱包,生成比特币地址,都是不需要身份证的,不需要暴露任何身份信息。

我们也可以完全匿名地买卖比特币,只要你能找到提供匿名买卖比特币的服务。比如通过线下交易,一手给现金,一手转比特币。比如到不需要实名认证的交易所去买币。

但比特币的交易链条是始终记录在区块链上的。你的比特币转给下一个地址,你的上一个地址来源,前后所有的交易记录统统完整的记录在区块链上,永远不可能删除的。只要所有这些转让的环节中的任意一环出现了实名,就可能通过顺藤摸瓜最后找到你。

所以说,比特币的匿名性是比现金低的,现金的交易记录是不会被记录的,你钱包里的纸钱并不记录上一家是谁。所以说,比特币不是一个比现金更好的犯罪工具,用来犯罪,是更容易被抓的。

比特币的这种半匿名性,让比特币的同质性是受损的。所以有很多人想了很多办法来提混淆比特币交易记录链条,让交易过程变更的更难追踪。这就是混币的初衷。

3

多输入多输出混币

最简单的混币就是用户自己将交易来回多发几次,用自己的钱包给自己的地址反复发,通过将多个地址作为输入,和多个地址做为输出,多转几次账,整个交易链条就变得复杂了。

就是这么简单的操作,任何人都可以用自己的钱包进行操作,就可以让追踪你的钱的行为变得困难一点。基本上这一招就让普通人无法知道你到底有多少币了。你只要有这样简单的多输入、多输出的混币操作,每次做转币交易时都这么操作,那基本上你的交易上下家都不知道你有多少币了。

很多钱包都提供这样的多输入和多输出交易构造,bitcoin core,bitcoin cash abc,等节点钱包都可以通过“添加收款人”来实现多个输出,多个输入只要是你没有一个大的UTXO就一定是多个输入。很轻钱包也有,比如blockchain.info就有,Electroncash也有。

这种简单的混币操作,也就是让你做正常的交易时,不想暴露财富量的隐私的基本方法。但对于有研究能力的程序员,他们可以通过借助程序来识别你所有的这些输入输出地址,他们还是可以低成本的追踪到你的钱。

4

offchain钱包和交易所混币

你可以将币充值到offchain钱包和交易所,然后再提币,从而实现将你的币无法被除了这个钱包商之外的人追踪。在链下钱包和交易所里,你的充值交易的输出地址,和你的提现交易的输入地址,基本上不会是同一个地址。这样两步操作,你的币就从区块链上切断了记录。

特别是现在因为比特币区块拥堵,很多交易所采用了聚合交易提币,就是交易所通过将多个用记的提现交易,合并成一笔多输入和多输出的交易。这样的提现交易就更难识别哪笔钱是你的了。

这样操作的坏处是offchain钱包商和交易所是清楚知道你的币的。如果他们掌握了你的实名信息,那一旦查起你来,他们会配合执法部门,你肯定是跑不了的。在中国就出现offchain钱包商因为怀疑用户是在洗币,所以冻结了用户的币的事。

为了更加保护隐私,你可以使用多个交易所和offchain钱包配合来混币。比如你从A交易所提币到B交易所,然后从B交易所提币到C交易所,这样来回操作几次,交易就更复杂了。除非ABC三家交易所都和执法部分配合来调查你,否则就很难100%证明哪些币是你的。因为交易所之间也不知道哪笔交易是你发的,而且你可以通过各种大小金额来配合提币充值,就更乱了。

更加保密的一种办法是,你先将BTC充值到A交易所,然后在A交易所换成ETH,然后将ETH提现到B交易所,然后再换成门罗币,再提现到C交易所,最后换回BTC,然后再提现到你自己的钱包。这样操作,就更乱了。

更加加强的一种办法是,你需要去找几个不需要实名认证的交易所,配合去中心化的交易所,在不在同一个国家的交易所,找那些小岛国的交易所,等等来配合洗币。这样就更难查到哪笔交易是你的了。

这些办法对任何用户门槛都是非常低的,可以非常有效地保护自己的隐私。但只要花足够的成本,你的行踪还是可以查出来的,肯定没用现金那么保密。

5

混币服务混币

现在有专门的混币服务。这样的服务往往是一个钱包,即有offchain钱包,也有Onchain的钱包。这个钱包会将多个用户的交易混在一起,形成复杂的多输入和多输出的交易,并且最终支付和接收方金额是不会乱的。Offchain钱包的混币服务就没啥新奇的了,和第4章说的是一样的。关键是那些onChain的钱包混币服务。

这种混币服务的原理也非常简单的。就像是一个水池,有10根进水管,有10根出水管。你从一根进水管放多少水进水池,那水池会给你一根出水管让你接到同样多(扣除手续费)的水。但这些你接到的水,就不可能是从你的进水管那里流进来的水了。这种混币服务是通过算法来保证公平安全的。但你得相信这个算法不会骗你的钱,所以要使用那些开源的经过了众多人检验的软件。

其中最知名的就是CoinJoin,这是Core开发者Gamxwell(这个家伙很坏)搞的。CoinJoin的原理就是你发一笔交易时,找到另外一个人也想发交易,当然越多人越好,你们分别签名构造一笔交易,然后广播,每个人输出都得到自己金额的币,但却是输入却是相互混淆的。Blockchain.info用了这种服务。

通过这种方式,就彻底中断了币的链上交易记录了。但同样的,这个混币服务器,是知道你的交易的,通过大数据匹配的方式,比如将同一时间参加混币的地址全收集起来追踪,最后一定是能够追到你的。

这样的混币软件很多,你上网一搜就有。最近广为被人关注的BCH社区的Coingeek投资过的一个项目也是干这个的。

6

通过闪电网络侧链来混币

闪电网络是通过将主链上的比特币锁定在一个2-2签名地址,所有进入闪电网络的2-2签名地址相互连接,然后在闪电网络内部相互支付。但这些支付流水是不会出现在主链上的。这就是说,你可以通过一个构造多个自己的2-2签名地址,以及多个服务商打开2-2签名地址,接入闪电网络,然后可以做到各种支付,并且在主链上完全不会留下痕迹。这也是一种混币方式。

侧链也一样,你将一个币锁定在侧链服务商里,拿到侧链上的代币,然后各种支付,也不会在主链上留下痕迹。

但闪电网络和侧链现在技术上都还没有完全解决,只是理论上,这两项技术可以大大加强比特币的匿名性的。

7

暗网混币

为了更加保密,可以通过暗网来完成混币。这样就更难追踪了。

我没用过,但原理很简单,下载洋葱浏览器,然后去搜索比特币混币服务应该找的到。

暗网只不过是让你的上网服务更匿名,混币原理和上面第5章描述的应该一样。

我们守法好青年基本上是不需要用这玩意。

8

矿工混币

上述办法其实通过大数据还是可以追踪的到你的交易的。通过矿工混币,那就是最后的绝招,而且根本就是无法追踪,也不会在区块链上留下交易记录。

我们要从矿工收入讲起。现在挖矿有两项收入,一项是Coinbase奖励,现在是一个块12.5BTC;另一部分是手续费收入,这是区块打包的交易里收取的费用。

比特币交易手续费的设定是这样的:

input总金额-output总金额=矿工手续费矿工挖到区块后,在区块的第一笔交易填写一笔交易,即coinbase交易,这笔交易是没有输入(没有Input),只有输出的,输出就是矿工自己的收款地址,而输出的金额就是coinbase奖励加上打包的所有交易的手续费。

这个所有的交易手续费,是这个区块里所有交易输入总金额和输出总金额的差值。而且矿工费不是固定的,甚至不是强制的,你愿意付多少就付多少,就看矿工乐不乐意给你打包了。

我们有一个基本的假设,那就是矿工挖矿收入那绝对是白币,这是系统给的,不可能是参与了任何犯罪交易。

这样的设定下,如果有一个地址里100个币,如果有办法将所有这100个币全部以矿工费的形式变成挖矿的coinbase交易的输出,那不就是可以真正中断这100个币和历史上所有的链上交易记录了吗。

操作是这样的,构造一笔交易,将input总金额设为100BTC,而Output总金额设为0.01BTC,那99.99BTC将会变成矿工费。你只要将这笔交易定向传递给矿池,让他打包,然后打包结束后,矿池单独给你发99.99BTC(当然扣除人家要收的费用)。这样,你就彻底将这100个币和它之前历史交易记录中断了联系。

而且矿池挖矿完全是可以是匿名的,也就是说任何一个矿池都可以挖一个块,并且打包上面这样的交易,并且保证100%的匿名性,谁也不知道是谁做的。

这种事在比特币网络上发生过很多次,当然,我们不知道是不是真的洗币,还是用户不小心构造错了交易。以前烤猫的矿池就挖到了大额矿工费交易,然后烤猫还还给了用户。

当然,这种一笔交易99.99BTC的矿工费,太招人注目了。想混币的,可以通过构造非常多的这样交易,一笔一笔将100BTC变成矿工费,只要定向传给自己的矿池,不广播被别的矿池吃掉了,就可以实现洗币。

9

结束语

混币是要成本的,BTC手续费太高,是不利于保护隐私的,因为混币成本太高,大家就不混了。这也是为什么我们需要扩容。

作者:黄世亮

清华大学五道口金融学院互联网实验室成立于2012年4月,是中国第一家专注于互联网金融领域研究的科研机构。

专业研究 |商业模式 • 政策研究 • 行业分析

内容平台 |未央网•"互联网金融"微信公众号iefinance

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181209B0R9LF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券