基于这样的困难,我们通常并不试图在系统中,对所有可能的交易或者地址都实现完全的无关联性,而是去实现更有限度的无关联性。想象一个特定的攻击者的情况,你的交易匿名集(anonymity set)是指该攻击者无法把你的交易从其中分辨出来的交易集合。即使该攻击者知道你完成了一个交易,但是他也仅仅知道这个交易是某一个合集中的一个,但并不能确定是哪一个。我们只需要努力去最大化这个匿名合集就可以了——在这个合集中,我们可以隐藏我们的地址或交易。
我们的观点是,启用匿名加密数字货币是有潜在好处的,这也是其得以存在的原因,同时,对于系统的技术匿名属性和在使用货币时应该遵守的法律规范,我们应该加以区分。匿名加密数字货币并不是一个完美的解决方案,但可能是最优的一种折中方案。
在本章6.5节中,我们会探讨零币(Zerocoin)和零钞(Zerocash),这是一种匿名化并且去中心化的加密数字货币系统,有点类似于乔姆的电子货币(ecash),但是因为上述两个限制,它们需要找到合适的方法,以解决棘手的加密问题。
在本章中,我们会看到很多次有关匿名化和去中心化的讨论,通常这两点是相互矛盾甚至冲突的。回忆一下前言部分提到过的乔姆(Chaum)的电子现金系统,它在一定意义上实现了完美的匿名性,不过必须依赖一个中央权威机构——银行的盲签名协议。设想一下,这样的协议的去中心化将会非常困难。如果我们强制进行去中心化,就必须要有一种能够追踪交易并且防止双重支出的机制。交易的这种公开追踪特性,就是对匿名化的一种威胁。
在其他你可能更熟悉的情形下,说明匿名和单纯的化名的区别可能更容易。其中一个很好的例子就是在线论坛,在一个类似于红迪(Reddit,美社交新闻网站)的论坛中,你会选择一个自己常用的化名在一段时间内和系统进行交互。你也可以创建多个化名,甚至每一条评论都用一个新的名字,但那样会很麻烦,绝大多数人都不会这样做。所以在红迪这样的论坛里,用户通常都会使用化名,但又不是完全匿名。相反,在4Chan(综合型讨论区)这种在线论坛里,用户通常用匿名来发帖,并且不带有任何标识性属性。
更加糟糕的是,把比特币地址和真实身份链接起来并不困难。如果你跟某一种比特币业务有关联 ——不管是一个在线电子钱包服务,还是其他接受比特币的商家或交易所,通常你都需要提供你的真实身份以完成相关交易。比如,交易中通常都需要你提供信用卡信息,或者商家需要你提供真实地址以便送货上门。
或者你去咖啡馆喝杯咖啡,然后用比特币来支付。由于你已经出现在店铺里,咖啡师对你的身份特征已经有了非常多的了解,即使他们没问你的真实姓名。你的物理标识就这样和你的某个比特币交易联系到了一起,从而可以由这个地址追踪到你所有的其他比特币交易。这显然不具备匿名性。
1.同一个用户的不同地址应该不易关联。
要想从技术角度去区分这些使用场景,基本上是不可能的。Tor的开发者以及社区一直在尝试解决这个难题,全社会也在努力尝试。我们似乎可以总结一下,整体而言,这样的技术利大于弊,实际上,Tor主要的投资方之一就是美国政府,其投资兴趣在于,Tor可以让不同政见者在互联网上发表自由言论,而不用担心政治迫害。同时,执法部门也勉强接受Tor的存在,甚至还开发了使用这个平台的方法。FBI也经常会查封一些在“黑暗网络”上非法传播色情图片的网站,即使这些网站也使用了Tor的平台,多数情况是,这些网站的运营者被绳之以法。我们必须要记住,技术仅仅是工具,而那些犯罪分子生活在现实世界里,并可能留下各种犯罪证据,或者在使用这些工具的时候犯一些人为错误。
然而,真正合理的顾虑是,匿名加密数字货币可以被用作洗钱或者从事其他非法活动。即使加密数字货币的交易本身可能是匿名的,数字货币和法定货币之间的接口却无法做到匿名,这可以说是一个好消息。事实上,我们将在下一个章节讨论中看到,这些数字货币和法定货币之间的兑换和流动被严格监管着。因此加密数字货币也不是洗钱或者其他金融犯罪的灵丹妙药。
[1] The Onion Router,洋葱路由,用户通过Tor可以在互联网上进行匿名交流。——译者注
在区块链货币中,所有交易都被记录在一个公共账本上,也就是说,这些记录都是公开的,并且可根据相关地址进行永久追踪,因此,你的比特币交易的隐私保护可能会比传统的银行更糟糕。如果你的真实身份被关联到一个比特币地址,那么你就完全失去了所有交易的隐私——不管是过去的、现在的,还是未来的——只要是和这个地址相关联的交易。由于区块链是公开可用的,确切地说,任何人都有可能在你不知道的情况下识别你的身份。
我们有很多非常重要的理由(虽然经常被忽视)需要匿名性,传统货币已经让我们对这种匿名性习以为常。大多数人都不愿意与朋友以及同事分享他们的工资收入状况,如果你的工资是用区块链比特币支付的,而且该区块链上的地址很容易被识别,那么我们只需要关注每个月定期的大额支付记录,就能很容易地推断出你的工资情况。企业组织也有非常重要的财务隐私顾虑,例如,一家电玩游戏生产商被发现在区块链上支付给了一个分包商,而这个分包商是专门生产虚拟现实眼镜的,那也意味着它们要推出的新游戏可能会被公众(也包括其竞争对手)提前知晓。
2.同一个用户的不同交易应该不易关联。
在比特币社区中,人们通常根据直觉推断匿名性,而非严格的定义。污点分析就是一种非常流行的方式:这是一种推算两个地址相关性的方法。如果地址S发送出的比特币总是地址R接收,那么不管是直接抵达,还是经过了多少中间地址,S和R则被定义为具有高分污点。污点分析的计算公式,适用于多个输入和(或)输出的交易,并且确定如何分配污点的规则。
在计算机科学中,匿名指的是具有无关联性(unlinkability)的化名,无关联性是一种针对特定攻击者的能力而定义的属性,从直观的意思看,无关联性意味着如果一个用户和系统重复进行交互,从特定攻击者的角度考虑,不同的交互行为之间应该无法互相关联。
即使我们对支付做出更加宽泛的定义,第三条属性看起来也比较难以实现。比如说,你支付一定数量的比特币来购买某个商品,并且通过迂回曲折的形式发送了这些比特币,其他人通过查看区块链上的信息,还是可以推断出某个比特币地址上减少了一定数量的比特币,而另外一个地址上增加了差不多相同数量的比特币(可能会扣除相应的交易费用)。此外,尽管传输是通过迂回曲折的路径,初始发送方发送比特币和最终接收方接受比特币基本上发生在同一个时间段,因为商家不太愿意接受延迟付款。
Tor[1]
比特币是具备化名性的,但如果你的目的是要求绝对隐私,那么这种匿名性还不够。区块链技术是一种公开的账本系统,任何人都可以查询包含了给定地址的所有比特币交易。如果有人可以用你的比特币地址链接到你的真实身份,那么所有你的比特币交易记录——不管是过去的、现在的,还是未来的——都能关联到你的真实身份。
即使没有发生直接的关联,因为侧面渠道或者一些间接的信息泄露,你的匿名身份也可能会被暴露(deanonymized)。举个例子,某个人看过一个匿名的比特币交易记录,并且注意到了这个比特币交易的活跃时间,那么他就可以将这个时间信息与其他公开可获得的信息关联到一起。可能他会注意到在同一个时间某一个推特用户也出于活跃状态,那么就可以建立一个匿名的比特币资料和一个真实世界的用户(至少是一个推特账号)之间的关联。很显然,这样的匿名性并不能保障隐私或者绝对匿名。要想做到绝对匿名,我们需要更强的无关联性属性。
然后有人可能会问:我们是否可以设计出一种技术,这种技术只允许使用好的匿名,而禁止坏的匿名呢?事实上,计算机安全和隐私方面的研究者一直在探索这个问题的答案,遗憾的是,从来就没有可行的方案,因为我们用道德标准分辨出的好坏,对计算机技术来说,是没有办法区分的。在比特币系统中,如何让矿工按照道德标准去判定哪些交易应该被发布到区块链中,目前还是无法实现的。
遗憾的是,污点分析也不是一个衡量比特币匿名性的好方法。它只是简单地认定对手在使用相同的计算方式在关联成对的地址。稍微聪明一点的对手会使用不同的技巧,比如查询交易时间,或者本章后面我们会讲的利用钱包软件的特性。所以,污点分析可能只会显示你在某种特定情况下具备的匿名性,而事实上可能并不准确。
匿名和化名(pseudonymity)
统计匿名集是很微妙的,由于这样的匿名集是针对某一个或者一组攻击者而定义的,所以你首先需要具体定义你的对手模型是怎样的。你必须要仔细思考对手已知和未知的内容,以及我们需要隐藏的内容——也就是说,如果要达到匿名性目标,交易中的那些信息是不能被对手知道的。没有成熟的公式告诉你该怎么做,需要根据每一个具体情况仔细分析相对应的协议和系统。
考虑到这一点,我们可以认定两种不同的需要匿名加密数字货币的动机:第一种是,达到我们习惯的传统银行给我们的隐私保护级别,降低公共区块链所带来的信息暴露风险;第二种是,要超越传统银行给我们的隐私保护级别,进一步开发数字货币,使其从技术上实现任何人不能轻易追踪参与者。
从字面上理解,匿名的意思是“没有名字”。当我们尝试用这个定义来说明比特币的匿名特征时,会有两种不同的诠释:在交易的时候不使用真实的姓名,或者在交易的时候完全不使用任何名字。比特币是否具备匿名性,这两种释义会带来两种完全不同的结论。比特币的地址是公钥哈希值(hashes of publickeys),在与比特币系统交互过程中,使用者不需要使用真实的姓名,但是需要使用公钥哈希值来作为交易标识。因此,按照第一种对匿名的释义,比特币是具有匿名性的,因为使用者不需要使用真实的姓名。然而,如果根据第二种释义,比特币并不具备匿名性,因为交易中必须使用的地址是一种虚假标识。在计算机科学语言中,这种不用真实姓名而使用一种特定标识的折中做法被称为化名。
在讨论比特币是否具备匿名性之前,我们需要对匿名做一个定义。我们需要准确地理解到底什么是匿名,以及它与其他一些相似术语的关系,比如隐私。
如何处理一个有好坏两面性的技术,比特币并不是唯一一个面临这种道德上两难选择问题的技术。另外一个匿名性设定有争议的系统是Tor,一个匿名通信网络。
一方面,Tor的用户只是一些普通人,想保护他们在网络上不被跟踪。其用户包括记者、社会活动家和持不同政见者等,他们追求在互联网上的言论自由而不用担心政治迫害。同时,执法部门的探员也使用这个系统,监控在线嫌疑犯,而不会泄露他们的IP地址(毕竟,大家都知道IP地址是根据不同的组织机构来分配的,包括执法部门)。很显然,Tor有很多应用场景是我们从道德上认可的。另一方面,它也还有一些不好的应用场景:有人用其运作僵尸网络来控制一些被感染的电脑,进而用来传播淫秽等非法图片。
了解了匿名性意味着什么之后,在我们进入更深入的探讨之前,让我们来回答一下有关匿名性的根本问题:为什么人们需要匿名性?拥有匿名性的货币有哪些伦理道德方面的意义?
3.一个交易的交易双方应该不易关联。
为了更扎实地理解比特币范畴中的无关联性特征,我们可以列举一些在比特币交易中无关联性所需要的关键属性:
你可以根据你的需要,随意创建出任意多个比特币地址,考虑到这一点,你可能会思考比特币的地址是否真的是虚假标识,因为你可以创建无穷多的化名,正如我们将会看到的,这并不能让比特币具备匿名性。
上述第一条和第二条很容易理解,但第三条比较微妙。如果你把一笔“支付”诠释成一个比特币交易,那么第三条属性很明显就是一个伪命题。每一笔交易都有输入和输出,这些输入和输出都不可避免地会记录在区块链网络中,并且公开地关联在一起。然而,我们所指的支付并不仅仅是一笔比特币交易,而是指任何一种从发送者到接收者的传输比特币的行为,这种行为可能会涉及一系列的间接迂回交易。我们需要确保,通过查询区块链上的信息将发送者和最终的接收者关联在一起,是不可行的。