别让分析公司卖了你:一文读懂比特币的私密性及隐私保护
01 前言
正如我们在加密消息、虚拟私密网络与自由知识计划如Tor项目、维基百科、Signal的演化中所见到的,如果正确的价值被建构其中,技术可以成为一项实现自由的工具。但正如我们从Facebook等中心化平台身上所见到的,技术也会成为一项监控工具甚至社会机器。
除非我们现在鲜明表态 ,帮助平台与协议将用户隐私与去中心化的理念植入脑中,否则大规模的监控与社会信用体系将是我们不可避免的未来。
02
要点
- 比特币仅仅是半匿名的;该协议并不知晓你的真实姓名,但通过种种方法,仍可通过交易信息关联到你本人。
- 区块链分析公司致力于将比特币活动去匿名化并将相关数据出售给企业与执法机构。
- 洞悉比特币这套系统如何运作,掌握Tor、代币控制器(coin control)、合币器等工具的使用,并避免地址的重复使用,对于保护你的身份信息与交易信息免于暴露至关重要。
从协议层面观察加密货币时,显而易见的是,它比传统的数字支付方式更为隐私导向。在这些协议的基本层面,尽管用户的密钥与真实世界之间通常没有映射,但它使我们以前所未有的程度的自由来在全球范围内存储与转移财富。
加密货币促成隐私的程度绝非微小或二元的——根据用户对核心与辅助技术、使用模式以及攻击者能力与复杂度的个别选择的不同,它会有很大的变化。
我们可以观察到,加密货币(尤其是比特币)的接受率,在那些居民经济自由受限的国家中正在增长,例如委内瑞拉。尽管加密货币在构建抗审查交易网络,与不受各种形式政府破坏的货币政策方面优势显著,但只要威权政体可以去匿名化用户信息并随意起诉相关用户,这些优势的效用就不大。这个问题需要引起我们的重视。
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,不受大多数浏览器指纹识别技术的影响。
06 链上信息
我们可以使用区块浏览器,来逐步理解比特币区块链所揭示信息类型。为了实践一下,我们将使用开源区块浏览器blockstream.info。
从一个高维度来看,其所揭示的信息如下:
- 该笔交易被挖掘的大致时间(从区块头算起)
- 比特币被发向的地址以及数量(例如,“交易输出值”)
- 交易资金来源(例如,输入值)
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多签名地址。我们将在下个部分查看信息到底是怎样揭示上述内容的。
如果你有一个很好的隐私卫生习惯,请永远不要重复使用比特币地址,这样以来便可帮助你切断交易关联。 这对于所有P2SH地址(所有以”3“开头以及以”bc“开头的62个字符的地址)的用户来说也是个好办法,因为当你披露该地址的花费规则时,你已经向一个新的、哈希化、花费规则未知的地址发送了比特币。HD钱包可以产生多个地址但只需要一个备份种子以触达资金。这些钱包在你每次接收一笔新的转账时,会自动产生一个新的地址。
现在让我们再看看交易情况,以检视我们还可从已发送的代币中解读出什么。
比特币交易结果通常被导向两个地址,其中一个是真正的支付情况而另一个被称为”变化输出值“(”change output“)则返回发送方。这类似于你为一个3美元的物品支付了5美元,这创建了两笔支付:其中一笔是流向商品的3美元,而另一笔2美元的零钱则流回支付方。
识别变化输出值需要采用试探法。可以用来从其他支付中辨别变化输出值的试探法例子是:round number的使用(交易时以特币数量或者法币价值的数量),交易中输出值的顺序等等。在我们选定的交易中,很容易发现变化输出值,是因为其返回同花费比特币相同的地址,正如我们将在下午中看到的。
大体而言,不同比特币钱包的表现各不相同,并在区块链上留下了不同的痕迹——类似于在浏览网页时,浏览器如何显示自己的信息。因此,有时可能可以识别某些交易,因为其来自特定的比特币钱包应用。
如果你的调查者知道你在使用哪个钱包应用,这将帮助其将你的身份同交易信息相关联,削弱你的隐私。每一条信息都能帮助他了解你是谁,你在做什么。
09 交易资金来源
在比特币的交易中,“资金来源”永远来自其他未花费的交易,更精确的说,就是未花费的交易输出(UTXO)。在区块浏览器中,你看到的是解码的生区块链数据和派生数据的组合。一个区块浏览器可能会这样显示交易:
来自Bitcoin.com
这里的资金来源显示为一个地址。然而Blockstream浏览器的“资金来源”可以显示为交易。
之所以Blockstream不将交易资金来源显示为地址,是因为地址严格意义上并不是交易输入的一部分,并且它并不总能推断出交易的起始地址。此外,因为不鼓励地址重建,它能打破大众在传统支付系统中的心理,并不再通过显示这笔交易发送者的地址,让用户错以为资金能够退回给接收者。
首先,先从技术上进行分析,如果你运行一个全节点(或者使用一个授信的互联网),你就可以去比特币区块链本地副本中查看交易解码的原始数据。如下图:
由于交易总是需要提供资金来源,交易都被联系在一起,产生所谓的交易图。如果你向你的朋友发送比特币,你的朋友会看到你在交易中的资金输入,但同时你也可以看到你的朋友何时发送这些代币以及这些代币会被发到那些地址。
一些比特币地址是众所周知的,比如Bitfinex的冷钱包或者查获的丝绸之路的代币。一个地址会因为这是一个实体而被人们熟知,比如:一个公司或者一个慈善组织,因为它们会在宣传网站上公开收款或者捐赠地址或者无意中通过论坛帖子和执法记录透露了地址。区块链分析公司将会定期搜索网络以收集此类信息。
其他地址也会通过群集分析这项技术通过关联显现出来。
11 群集分析
让我们回到之前列举的那笔交易 e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8。现在我们可以立即看到这笔交易的资金来源,我们的交易(红点)都已被用于资助第三笔交易(蓝点)。
它只需要对集群中的一个地址进行去匿名化,就可以对整个集群进行去匿名化。
12 反群集分析
目前我们可以看到,用户身份可以由多种方式与比特币的地址和交易进行关联,比特币的交易也可以通过多种方式相互联系。 如果将这些泄漏的信息组合到一起,将会揭示我们所有的财务隐私。
- 在创建交易时,把转出的顺序随机化,以降低更改转出检测的精准度。
- 避免HD的钱包地址重复使用。
- PayNym是一个公开可共享的ID,它可以允许你在不同的无关联的地址中接收付款,并且这笔付款这有发起者和你自己知道。PayNym允许每一笔交易都派生一个新的地址,而不需要每次真正地去建立一个新的地址,如果你想要上线接收比特币的捐款,这是非常有帮助的。
- 代币选择/代币控制。钱包可以设计为在可能的情况下通过更加仔细地挑选交易中的收入来优先选择群集分析较少的地址,或者允许用户手动选择交易转入,以避免泄漏某些代币的所有权。
在我们的例子中,我们可以看到交易资金转入如何参照之前交易的特定转出,而不是整个交易:
这一类交易的另一个有趣之处是他们可以使启发式共同输入所有权的概念更加复杂。这些资金转入都被标记为属于同一拥有者,但是在这个交易中并不会这样。这些图片显示了使用混币技术产生的独立支付的错误集群。
闪电网络是在比特币协议之上开发的beta技术,以促进低成本的即时支付。目前闪电网络钱包用户可以使用闪电网络。闪电交易在很多方面都与基础层交易不同,从保护隐私的角度,它们是更加有利的。
- 闪电网络交易使用洋葱路由,但是不会向网络的其他部分播报最终的收款人。
- 闪电网络交易并不会将资金输出打乱并且不会聚集在一起。
另一个问题是与基层比特币支付不同的是,闪电网络支付的收款人需要运行闪电网络节点。你的节点会使用TCP / IP与其他节点通信。每当你的节点在网络上与他人互动时(发送,接收或路由其他付款)时,某人将知道你的节点以及公钥和IP地址的存在。从公钥中,很容易找出你和其他节点之间打开的通道以及在打开每个通道时提交了多少比特币。对于私人通道,IP地址仅向你开放的通道显示,但对于公共通道,它会向整个网络显示,甚至可能有人探测通道的当前余额来判断你是否会是下一个攻击目标。
当你运营一个闪电网络节点时,你应该假设你的通道余额已经已知并且会它们会连接到你的IP地址。 因此在Tor上运营闪电网络节点是保护隐私的一个很好的选择。
闪电网络目前正处于快速发展阶段,许多财产将在不远的未来发生巨变。
14 协议的创新
这里有一些提高隐私保护的技术,它们是由底层比特币协议发展而成的:
- Schnorr签名:一种签名方案,除其它的改进外,还会使多重签名地址和单一签名地址无法区分。
- Scriptless脚本:一种在不披露实际支付规则情况下使用脚本的方法。
- Taproot:一种无法区分各类支出规则的交易的技术。
这篇文章旨在介绍比特币隐私保护的工作原理。由于具有匿名以及透明的特性,比特币区块链使隐私权最终取决于用户以及监视的公司使用的工具。如果那些进行监视的公司对区块链进行分析,没有进行隐私保护的用户便很有可能泄露一些财务信息,这是十分危险的。
16 延伸阅读
为了完全理解比特币的内幕,Andreas Antonopoulos的《精通比特币》是很好的资源,现已翻译成多种语言。