比特币既不是完全匿名的,也不是完全透明的。比特币隐私的问题在于一个灰色地带:用户金融活动的暴露最终取决于调查人员的能力和用户选择的工具的复杂性。互联网上的任何活动都没有完美的隐私解决方案;在许多情况下,没有解决方案,这意味着隐私的选择往往伴随着成本和易用性的平衡。此外,隐私从来都不是静态的,而是不断发展的,以呼应那些建立隐私保护和破坏隐私工具的群体之间的斗争。
01、前言
就像我们在加密信息、虚拟私人网络和自由知识计划一样Tor项目,维基百科,Signal如果正确的价值被构建,技术可以成为实现自由的工具。但就像我们从Facebook在集中平台上看到的技术也将成为监控工具甚至社会机器。
除非我们现在明确表态 ,帮助平台和协议将用户隐私和分散的概念植入大脑,否则大规模的监控和社会信用体系将是我们不可避免的未来。
02、要点
比特币只是半匿名的;协议不知道你的真实姓名,但通过各种方式,你仍然可以通过交易信息与自己有关。
区块链分析公司致力于匿名比特币活动,并将相关数据出售给企业和执法机构。
了解比特币系统如何运行,掌握Tor、代币控制器(coin control)、使用合币器等工具,避免重复使用地址,保护您的身份信息和交易信息免暴露至关重要。
03、为什么要注意加密货币?
从协议层面观察加密货币时,很明显,它比传统的数字支付方式更私密。在这些协议的基本层面上,虽然用户的密钥和现实世界之间通常没有映射,但它使我们以前所未有的自由存储和转移全球财富。
加密货币对隐私的影响不小或二元——根据用户对核心和辅助技术、使用模式、攻击者能力和复杂性的个别选择,它会有很大的变化。
我们可以观察到,在那些经济自由有限的国家,如委内瑞拉,加密货币(特别是比特币)的接受率正在增加。虽然加密货币在构建抗审查交易网络和不受各种形式政府破坏的货币政策方面具有显著优势,但只要权威政府能够匿名用户信息并随意起诉相关用户,这些优势就不起作用。我们需要注意这个问题。
04、引入比特币隐私
比特币既不是完全匿名的,也不是完全透明的。比特币隐私的问题在于一个灰色地带:用户金融活动的暴露最终取决于调查人员的能力和用户选择的工具的复杂性。互联网上的任何活动都没有完美的隐私解决方案;在许多情况下,没有解决方案,这意味着隐私的选择往往伴随着成本和易用性的平衡。此外,隐私从来都不是静态的,而是不断发展的,以呼应那些建立隐私保护和破坏隐私工具的群体之间的斗争。
随着时间的推移,比特币协议会导致其隐私特征的戏剧性变化。核心协议的变化并不局限于隐私和透明度之间的简单选择,它通常伴随着安全性、可扩展性、透明度和软件向后兼容性的变化。从历史上看,比特币社区更倾向于选择隐私,而不是透明度,但前者比专注于隐私的加密货币更保守。
因此,考虑使用比特币逃避政府或企业监控的人需要了解他们在使用比特币时会留下什么样的痕迹,以及比特币的隐私属性是否足以满足其他人的需求。然而,实现这种理解需要一些努力。
05、追踪交易
当你在比特币网络上交易时,你会留下两个痕迹。它们可以分类为“链上信息”与“链下信息”。链上的信息接将您的身份信息与交易信息联系起来,但它揭示了可以将您的交易信息与他人联系起来的信息。第二类是链下信息,将您的身份信息与交易信息联系起来。
06、链下信息
当你在比特币网络上交易时,你有时会向/从认识你的人处发送/接收比特币。后者则会拥有将你的身份信息与交易信息相关联的链外信息。
当您将上述事实与您的交易信息与他人相关的事实相结合时,因此,一些具有独特动机的实体有时可以清楚地知道你如何使用自己的比特币,你有多少比特币,你与谁交易。即使你不与认识你的人交易,也有无数的方法可以将你的同一交易信息联系起来,因为比特币交易通常以非加密包装的形式在互联网上进行IP地址可以通过几种方式追溯到。Bitcoin Core这样的全节点交易需要一些三角测量(triangulation)或测量目标流量,以估计源IP等等“轻”移动钱包(区块链钱包)等钱包Coinbase钱包)通常通过公司运营,可以直接看到你IP服务器的地址和完整的交易历史。
经由IP地址,地理位置IP地址数据库通常可以粗略估计你的物理位置。您可以使用此链接(https://www.maxmind.com/en/locate-my-ip-address)自己测试,输入你Google地图等界面中的坐标。更重要的是,你的IP地址暴露了您的互联网服务提供商(ISP),后者知晓该IP真实世界所有者的身份信息,ISP这些信息通常有法律义务存储几个月。
即使你使用公众WiFi为了进行交易,您仍然可能意外地将真实身份与访问网站和设备连接的后台服务连接起来。当你启动笔记本电脑时,你的Dropbox应用程序愿意将其与公司服务器连接起来,这将使您IP地址同Dropbox该账户与该公司的服务器日志有关。即使您不访问任何个人网站账户,也可以存储在您的笔记本电脑上Cookie您可以浏览历史记录的信息Cookie信息关联,向您浏览的网站显示您的身份。许多网站允许第三方跟踪这些用户进行分析——据估计,谷歌将在整个网络的80%网站上跟踪用户。
即使你清除cookie信息,网站运营商也可以通过不同的网站跟踪你,只要你的浏览器标记是独特的,你就可以IP地址与身份信息相关。即使您不运行任何服务,也避免一起浏览某些内容,你的设备的MAC地址仍然会暴露给网络提供商,使用各种复杂的方法,这可能与你的真实身份有关。所以,即使你的IP地址不会通过ISP记录使用私人设备时,你仍然可以留下其他痕迹。当然,最糟糕的隐私类别是使用它KYC的第三方服务作为你的比特币钱包,因为这些服务将记录你所有的交易信息与真实世界的身份。
您也可能使用基于网页的工具来搜索比特币地址和交易信息,因为除了你,没有人会无缘无故地在网上搜索相关信息。当你搜索交易信息或交易时,隐藏你的源设备和IP最著名的地址方法是使用Tor隐藏服务Bitcoin Core很多钱包都把它作为可配选项,而有些钱包则把它内置化。Tor浏览器类似于基于网页的比特币相关活动的有用工具,因为它不仅可以隐藏你的IP每次退出时,地址都很清楚cookie阻止第三方的信息cookie,不受大多数浏览器指纹识别技术的影响。
07、链上信息
我们可以使用区块浏览器,逐步了解比特币区块链所揭示的信息类型。我们将使用开源区块浏览器进行实践blockstream.info。
短线炒币操作技巧新手截至本文最新区块(2019年3月8日),区块编号#563899)包含2122个交易信息。让我们看看随机选择的交易信息揭示了什么。

交易信息包括输入值与输出值,并由交易ID标识(从上图的顶部可以看到)。如果你的比特币钱包发起了一笔交易,每笔交易都与相同的标识符相关联。
从高维度来看,披露的信息如下:
交易被挖掘的大致时间(从区块头开始)
比特币的地址和数量(例如,“交易输出值”)
交易资金来源(如输入值)
让我们来看看上述交易的每一部分(https://blockstream.info/tx/e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8)。07时间交易没有时间戳,但是块有时间戳。块时间戳不一定正确,但考虑到绝大多数矿主如实报告时间,所有块的时间戳应该在几个小时内正确。对于诚实矿主挖掘的块,它们将是正确的。这并不意味着块时间戳必须在事务广播时间的几个小时内准确,因为有时需要更长的时间来包装交易才能进入块。一些块浏览器通过显示其在互联网上第一次看到交易时间来更准确地查看交易的广播时间。上述交易包装到块中的时间可以通过查看块(在我们的案例块中#563899时间戳是2019-02-20 14:45 UTC)08交易中比特币转向的地址和金额的接收地址如下:
1: 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC 0.26119849 BTC
2: 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2 0.2214705 BTC
地址不仅仅是表面上看起来那么简单,它不仅仅是用户密钥的指示器。地址实际上是下次有人想转移比特币的成本规则(spending rules)描述符号。例如,如果你去地址37k7toV1Nv4DfmQbmZ8KuZDQCYK9x5KpzP发送比特币,改变地址的配置是这样的:你不把比特币花在特定私钥的所有者身上,而是把代币释放给任何拥有相同地址的人SHA-1哈希并能提供两组不同字符串的人的成本规则(这意味着SHA-1函数失效发生在2017年——所以不要把任何比特币发送到那个地址)。值得注意的是,当我们发送比特币时,现在许多使用的地址格式都是哈希化的,我们通常知道成本规则是什么,直到有人从地址转移到比特币,因为他们需要披露哈希化的内容才能实现目标。
在我们的交易例子中,区块链显示比特币已经从两个地址上花费,因此已知了这些地址的成本规则。在交易中f491dfe9867c36e85950116a90a6128060d6070866ad0f(https://blockstream.info/tx/f491dfe9867c36e85950116a90a6128060d6070866ad0f3598d70d146750162f)中,3598d70d146750162f32Z63LVtUERdEEwz275JHt3o4cewPfE8YC(https://blockstream.info/address/32Z63LVtUERdEEwz275JHt3o4cewPfE8YC)显示为2/2以上签名地址。我们将在下一部分查看信息是如何揭示上述内容的。
类似地,31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2(https://blockstream.info/address/31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2)这是一个经常使用的2/3多个签名地址。在写这篇文章时,大约有2700枚比特币(价值1060万美元)。更先进的区块链工具(如oxt.me)它甚至可以随着时间的推移绘制钱包余额,并以近似的准确性显示其最常见的活动。


地址 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2历史余额和活动 | 来源:oxt.me 18
:00-22:00UTC是该地址活动最少的时间段,一个合理的假设是这段对应控制该地址的人的当地时间的01:00-05:00或者02:00-06:00。考虑到改地址的活跃时间段、交易量以及多签/名设置情况,可以猜出该地址属于位于GMT+7/8的时区。

如果你有一个很好的隐私卫生习惯,请永远不要重复使用比特币地址,这样以来便可帮助你切断交易关联。
这对于所有P2SH地址(所有以”3“开头以及以”bc“开头的62个字符的地址)的用户来说也是个好办法,因为当你披露该地址的花费规则时,你已经向一个新的、哈希化、花费规则未知的地址发送了比特币。HD钱包可以产生多个地址但只需要一个备份种子以触达资金。这些钱包在你每次接收一笔新的转账时,会自动产生一个新的地址。
现在让我们再看看交易情况,以检视我们还可从已发送的代币中解读出什么。

比特币交易结果通常被导向两个地址,其中一个是真正的支付情况而另一个被称为”变化输出值“(”change output“)则返回发送方。这类似于你为一个3美元的物品支付了5美元,这创建了两笔支付:其中一笔是流向商品的3美元,而另一笔2美元的零钱则流回支付方。
识别变化输出值需要采用试探法。可以用来从其他支付中辨别变化输出值的试探法例子是:round number的使用(交易时以特币数量或者法币价值的数量),交易中输出值的顺序等等。在我们选定的交易中,很容易发现变化输出值,是因为其返回同花费比特币相同的地址,正如我们将在下午中看到的。
大体而言,不同比特币钱包的表现各不相同,并在区块链上留下了不同的痕迹——类似于在浏览网页时,浏览器如何显示自己的信息。因此,有时可能可以识别某些交易,因为其来自特定的比特币钱包应用。
如果你的调查者知道你在使用哪个钱包应用,这将帮助其将你的身份同交易信息相关联,削弱你的隐私。每一条信息都能帮助他了解你是谁,你在做什么。
08、交易资金来源
在比特币的交易中,“资金来源”永远来自其他未花费的交易,更精确的说,就是未花费的交易输出(UTXO)。在区块浏览器中,你看到的是解码的生区块链数据和派生数据的组合。一个区块浏览器可能会这样显示交易:

来自Bitcoin.com
这里的资金来源显示为一个地址。然而Blockstream浏览器的“资金来源”可以显示为交易。

之所以Blockstream不将交易资金来源显示为地址,是因为地址严格意义上并不是交易输入的一部分,并且它并不总能推断出交易的起始地址。此外,因为不鼓励地址重建,它能打破大众在传统支付系统中的心理,并不再通过显示这笔交易发送者的地址,让用户错以为资金能够退回给接收者。
首先,先从技术上进行分析,如果你运行一个全节点(或者使用一个授信的互联网),你就可以去比特币区块链本地副本中查看交易解码的原始数据。如下图:

e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8解码这种资金来源被描述为Vin-阵列。他没有提到特别提到一个地址,但是它会指向前一个交易的输出。 593e2d5c65b3505d897a13033741037d6c59e683b3345314a58253a8f1572758是vout: 0,也就是交易的第一次输出(vout: 1意味这个交易的第二次输出,以此类推)。这个未花费的交易输出(UTXO)就是资金来源。到此可以澄清,“资金来源”既不是地址也不是一个交易,而是此前特定交易的特定支出。如果清晰地了解这一点,将会帮助你在使用比特币时保护你的隐私,我们会在之后的章节一一说明。

e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8. 的资金来源我们可以从解码的原始数据进一步解码交易的内容,例如从txinwitness中了解更多有关资金来源的信息。Txinwitness中的最后一行16进制的字串符显示了2-of-3的多重字符脚本,这是我们可以推断出这可能使用一个交易中心的钱包。

.txinwitness中的其他两个16进制的字符串,只是满足2-of-3多重条件的签名。现在我们对于资金来源进行了定义,我们可以看到在在这个例子中,有0.48298999BTC的输出,即使已付款的金额只有1000美元的一部分。这有一个不良的后果:想象一个场景,一个朋友给你支付了10美元,但是交易会显示出他拥有一百万美元并具有立即发送全额的权限,这对于隐私保护来讲并不是特别好的。如果你担忧发送比特币交易时会透露你的财富,你应该关注一下在你的交易中哪些输入被使用。
09、拼接信息
由于交易总是需要提供资金来源,交易都被联系在一起,产生所谓的交易图。如果你向你的朋友发送比特币,你的朋友会看到你在交易中的资金输入,但同时你也可以看到你的朋友何时发送这些代币以及这些代币会被发到那些地址。
一些比特币地址是众所周知的,比如Bitfinex的冷钱包或者查获的丝绸之路的代币。一个地址会因为这是一个实体而被人们熟知,比如:一个公司或者一个慈善组织,因为它们会在宣传网站上公开收款或者捐赠地址或者无意中通过论坛帖子和执法记录透露了地址。区块链分析公司将会定期搜索网络以收集此类信息。
其他地址也会通过群集分析这项技术通过关联显现出来。
10、群集分析
让我们回到之前列举的那笔交易 e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8。现在我们可以立即看到这笔交易的资金来源,我们的交易(红点)都已被用于资助第三笔交易(蓝点)。

e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8的交易图尤其是,第二笔交易的转出和第一笔我们交易的转出都包括在了这笔交易的融资中,它们之前分别被发送到了以下两个地址中:3Qt1YaJwQwtHMb4mjJ41DZVawWXih9LGMq32Z63LVtUERdEEwz275JHt3o4cewPfE8YC在界面,这似乎是两个单独的地址,每个地址只有一个看似无关的转入和转出交易。但是因为他们的私钥都可以在蓝点交易上签名,这些地址现在都属于小的集群(包括交易转入的其他407个地址),我们可以假设他们属于同一个用户。这种启发法在过去拥有了许多不同的叫法,最新的名为共同输入所有权启发式(common-input-ownership-heuristic.)。

蓝点交易 f491dfe9867c36e85950116a90a6128060d6070866ad0f3598d70d146750162f图集
区块链分析公司将会使用这种启发法去创造巨大的群集。
区块链浏览器WalletExplorer已经将这两个地址固定在162787个地址的群集中。
分析公司会将集群按照标签分类(IP地址、用户账户、组织以及真实姓名)它们能够使各个地址固定在一个集群内,由此绘制出比特币交易的生态。
接下来,他们就会将这些数据集的访问权出售给执法机构以及其他公司。
许多区块链分析公司都会直接通过他们用户得到交易的相关信息,比如加密货币交易中心。但是两个头部分析公司Chainalysis和Elliptic,已经声明他们不会追溯它们获取的任何个体的交易信息,但仅限于交易中心或其他商业实体。
它只需要对集群中的一个地址进行去匿名化,就可以对整个集群进行去匿名化。
11、反群集分析
目前我们可以看到,用户身份可以由多种方式与比特币的地址和交易进行关联,比特币的交易也可以通过多种方式相互联系。如果将这些泄漏的信息组合到一起,将会揭示我们所有的财务隐私。
有些比特币用户有意地尝试破解这些分析公司使用的方法,他们使用工具和技术来使分析变得更加困难。一些技术可以通过扭曲行为降低分析的有效性,而其他技术则尝试避免被分析。比特币钱包可以通过将这些技术自动化或者在用户页面上提供这些技术来帮助用户。以下是其中的一些举措:
在创建交易时,把转出的顺序随机化,以降低更改转出检测的精准度。
避免HD的钱包地址重复使用。
PayNym是一个公开可共享的ID,它可以允许你在不同的无关联的地址中接收付款,并且这笔付款这有发起者和你自己知道。PayNym允许每一笔交易都派生一个新的地址,而不需要每次真正地去建立一个新的地址,如果你想要上线接收比特币的捐款,这是非常有帮助的。
代币选择/代币控制。钱包可以设计为在可能的情况下通过更加仔细地挑选交易中的收入来优先选择群集分析较少的地址,或者允许用户手动选择交易转入,以避免泄漏某些代币的所有权。

比特币核心的代币选择——用户可以手动选择交易的资金来源提高隐私保护的更加前卫的技术是CoinJoin。
CoinJoin是一种在广播交易之前将不同用户的一些资金输入都添加到联合交易的方案
在我们的例子中,我们可以看到交易资金转入如何参照之前交易的特定转出,而不是整个交易:

e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8.的资金来源但是每笔交易的资金输入和输出不会以任何方式相互影响;只要输入的比特币数量足以支付输出的数量,交易就是有效的。

一个由Wasbi 钱包发起的CoinJoin交易这里的资金转出被切分为了许多等额的小块,所以无法确定任何投入的资金和支付的费用,其结果就是在一次支付中会有很多的资金来源地和发送地,使人难以辨别。技术上并不需要隐藏交易的资金来源和目的地,但是因为已经被混合打乱,因此很难去证明哪个地址发起了交易,哪个用户的比特币又流向了哪一个地址。
这一类交易的另一个有趣之处是他们可以使启发式共同输入所有权的概念更加复杂。这些资金转入都被标记为属于同一拥有者,但是在这个交易中并不会这样。这些图片显示了使用混币技术产生的独立支付的错误集群。

Wasabi 钱包的混币交易 交易ID从左到右分别为 72046c65fa25724f11c91f35799f69b66072bc07b2b4e3fc363852c2506b2b90, d7a428a8e3d69f236519cb999dbcb47b3b283548875371da567259be806e35ea, 20cf4fa2f685167f46682dd30c7720a06618656939fadbd1f20e3d471d08dfbb (oxt.me).因为这些交易都有看起来很奇怪的等量的资金输出,这些交易就更容易被分辨,并且可以更轻易地从群集分析工具中删除。当用户希望向外界混淆支付的资金来源和支付发送的目的地时,等额的混币交易就可以理解为混淆器。最近的一项名为PayJoin或Pay-to-EndPoint(P2EP)的项目也使用了相同的原理来创建与平常交易无法区分的交易。这种新兴的交易类型混合了来自付款人和收款人的资金输入,并且在实际支付某些东西时,将支付金额从发送者的输出资金直接转移到接收者的输出中,由此来支付接收者相应的金额。

一个混和交易的模板:
发送者给接收者支付0.5BTC,并在过程中将资金输入打乱
这个交易并没有过多的混淆,但是它会错误地触发常见输入所有权启发式。
更重要的是,它在触发的时候,不会给分析公司留下这个资金输入不适合聚集的线索(分析公司需要这个线索来避免误报)。
如果混合交易被普遍应用,那么虚假的共同输入所有权将会十分巨大,以致于启发式本身也不可靠,这对于区块链分析公司将是巨大的打击。
12、闪电网络
闪电网络是在比特币协议之上开发的beta技术,以促进低成本的即时支付。目前闪电网络钱包用户可以使用闪电网络。闪电交易在很多方面都与基础层交易不同,从保护隐私的角度,它们是更加有利的。
闪电交易并不是存储在一个公共的账单上:
闪电网络交易使用洋葱路由,但是不会向网络的其他部分播报最终的收款人。
闪电网络交易并不会将资金输出打乱并且不会聚集在一起。
闪电网络是一个需要流动性的通道系统;目前接受闪电网络支付的商家和用户是比特币用户的一小部分,并非所有支付(特别是巨额支付)都可以通过闪电网络进行传播,过一段时间后应该会有所改善。这也意味着虽然闪电网络可以为其通道中的交易提供更好的隐私保护,但这些通道仍然需要由定期比特币交易提供资金,而这些交易又会遭受到本文中所述隐私问题的影响。
另一个问题是与基层比特币支付不同的是,闪电网络支付的收款人需要运行闪电网络节点。你的节点会使用TCP / IP与其他节点通信。每当你的节点在网络上与他人互动时(发送,接收或路由其他付款)时,某人将知道你的节点以及公钥和IP地址的存在。从公钥中,很容易找出你和其他节点之间打开的通道以及在打开每个通道时提交了多少比特币。对于私人通道,IP地址仅向你开放的通道显示,但对于公共通道,它会向整个网络显示,甚至可能有人探测通道的当前余额来判断你是否会是下一个攻击目标。
当你运营一个闪电网络节点时,你应该假设你的通道余额已经已知并且会它们会连接到你的IP地址。因此在Tor上运营闪电网络节点是保护隐私的一个很好的选择。
闪电网络目前正处于快速发展阶段,许多财产将在不远的未来发生巨变。
13、协议的创新
这里有一些提高隐私保护的技术,它们是由底层比特币协议发展而成的:
Schnorr签名:一种签名方案,除其它的改进外,还会使多重签名地址和单一签名地址无法区分。
Scriptless脚本:一种在不披露实际支付规则情况下使用脚本的方法。
Taproot:一种无法区分各类支出规则的交易的技术。
14、总结
这篇文章旨在介绍比特币隐私保护的工作原理。由于具有匿名以及透明的特性,比特币区块链使隐私权最终取决于用户以及监视的公司使用的工具。如果那些进行监视的公司对区块链进行分析,没有进行隐私保护的用户便很有可能泄露一些财务信息,这是十分危险的。
15、延伸阅读
为了完全理解比特币的内幕,Andreas Antonopoulos的《精通比特币》是很好的资源,现已翻译成多种语言。
Bitcoin Wiki上的隐私页面更深入地介绍了其中的几个主题,最近由Chris Belcher进行更新。Blockstream区块浏览器最近也进行了修补以显示交易的“隐私评级”,可以由此更多地了解到从交易信息中能够得出什么结论。特别感谢Adam Gibson,Tomislav Dugandzic和Simon Bohlin为本文提供的想法和反馈。
