当前位置: 首页 > > 天 方 夜 “谈” 第32期 | 比特币系统的匿名性分析

天 方 夜 “谈” 第32期 | 比特币系统的匿名性分析

发表于:2020-03-12 18:03 作者: 方滨兴班 阅读数(7550人)

论文:An Analysis of Anonymity in the Bitcoin System

作者:Fergal Reid,Martin Harrigan

会议:IEEE International Conference on Social Computing

年份:2011

01 摘要

比特币是一种对等的电子货币系统,它的匿名性是一个复杂的问题。在系统中,用户只能通过公钥进行标识。攻击者试图建立用户与公钥之间的一对多映射,来消除用户的匿名性,并将系统外部的信息与用户关联起来。在本文中,作者考虑了由比特币公共交易历史衍生出的两个网络的拓扑结构,证明了这两个网络提供了比特币系统的互补视图,企图影响比特币系统的匿名性。作者将这些结构与外部信息和技术相结合,用来调查一起涉嫌盗窃比特币的案件。

02 比特币系统

在本文中,特别值得关注的是比特币系统的三个功能。首先,比特币交易的整个历史都是公开的。这对于在没有中央授权的情况下验证交易并防止重复支出是必要的。第二,交易可以具有多个输入和多个输出。交易的输入可以是先前交易的输出,也可以是新产生的比特币和交易费用的总和。此外,一笔交易通常有两个输出:一个发送付款,一个返回找零。第三,通过公钥-私钥对中的公钥来识别交易的付款人和收款人。但是,一个用户可以有多个公钥。实际上,对于收款人来说,为每笔交易生成一个新的公私钥对是一种良好的做法。用户可以采取以下步骤来更好地保护自己的身份:避免泄露与公钥有关的任何标识信息;使用多个(新生成的)公钥向自己重复发送不同数量的比特币;使用受信任的第三方。但是,这些做法并未得到普遍应用。

以上三个特征,即比特币交易的公共可用性,交易之间的输入-输出关系以及公钥的重用和共同使用,为两种不同的网络结构(交易网络和用户网络)提供了基础。交易网络意味着随着时间推移交易之间的比特币流量。每个顶点表示交易,并且源和目标之间的每个有向边表示与源相对应的交易的输出,该输出是对与目标相对应的交易的输入。每个有向边还包括比特币值和时间戳。用户网络代表了一段时间内用户之间的比特币流量。每个顶点表示一个用户,源和目标之间的每个有向边表示单个事务的输入输出对,其中输入的公钥属于与源相对应的用户,而输出的公钥属于与源相对应的用户的目标。每个有向边还包括比特币值和时间戳。

作者收集了从2009年1月3日的第一笔交易到2011年7月12日的最后一笔交易(包括最后一笔交易)的整个比特币交易历史。作者使用比特币客户端和特定工具收集了数据集。该数据集包含1253054个唯一公钥之间的1019486个事务。在以下各节中,作者将描述相应交易和用户网络的构建及其分析。作者将证明这两个网络,提供了比特币系统的互补视图,并且对用户的匿名性产生了影响。

03 交易网络&用户网络

交易网络

交易网络T表示交易之间的比特币流量。每个顶点表示交易,并且源和目标之间的每个有向边表示与源相对应的交易的输出,该输出是与目标相对应的交易的输入。每个有向边还包括比特币值和时间戳。

图1显示了T的示例子网。t1是具有一个输入和两个输出的交易。它在2011年5月1日被添加到了区块链中。其输出之一分配给由公钥pk1标识的用户1.2 BTC(比特币)。同理,t2是具有两个输入和两个输出的事务,其输出之一发送了0.12 BTC到由另一个公钥为pk2的用户t3。该交易包含两个输入和一个输出。它的两个输入都连接到上述t1和t2的两个输出。t3的唯一输出是t4的输入之一。

图片.png

图1. 来自交易网络的示例子网

用户网络

用户网络U表示用户之间比特币的流动。每个顶点表示一个用户,源和目标之间的每个有向边表示单个交易的输入输出对,其中输入的公钥属于与源相对应的用户,而输出的公钥属于与源相对应的用户到目标。每个有向边还包括比特币值和时间戳。

在构造用户网络U之前,需要先对数据集进行预处理。首先,每个顶点表示单个公钥,而不是用户,并且源和目标之间的每个有向边表示单个交易的输入/输出对,其中输入的公钥对应于源,而输出的公钥对应于目标,这种说法是不完善的。为了完善该网络,需要针对单个用户所对应的所有公钥进行收缩。困难在于,公钥是比特币确保匿名的机制:公众可以看到某人(由公钥标识)正在向他人(由另一公钥标识)发送一笔金额,但是没有信息链接到交易给任何人。实际上,对于收款人来说,为每笔交易生成一个新的公钥-私钥对,以防止交易与普通所有者挂钩是一种良好的做法。因此,仅靠作者的数据集不可能完全完善网络。但是,如Nakamoto指出的那样,“多投入交易仍然不可避免地存在某些联系,这必然表明他们的投入是由同一所有者拥有的。风险在于,如果密钥的所有者被泄露,则链接可能会揭示属于同一所有者的其他交易。”

作者使用具有多个输入的交易的此属性来收缩不完善网络中的顶点子集。作者构建一个辅助网络,其中每个顶点代表一个公钥。作者将这些顶点与无方向的边连接起来,其中每个边都连接有一对公钥,这对公钥都是同一个交易的输入(因此受同一用户控制)。在作者的数据集中,该网络具有1253054个顶点(唯一的公钥)和4929950个边。更重要的是,它具有86641个非平凡的最大连通分量。该图中的每个最大连通分量都与一个用户相对应,并且每个分量的组成顶点都与该用户的公钥相对应。

图2显示了不完善网络的示例子网络,该网络覆盖在图1的T的示例子网络上。最终,作为t3输入的t1和t2的输出分别发送给公钥为pk1的用户和公钥为pk2的用户。图3为用户网络的示例子网络,该用户网络的示例子网络覆盖到来自图2的不完美网络的示例子网络上。由于pk1和pk2对应于单个交易的一对输入,因此它们被压缩为单个顶点u1。换句话说,它们在辅助网络的最大连通分量中(请参见图3中虚线灰色框中表示pk1和pk2的顶点)。单个用户拥有两个公钥。作者注意到,在这种情况下,最大连通分量不仅仅是一个集团。它的直径为4,表示至少有两个属于同一用户的公钥,它们通过三个交易间接连接。交易t4的16个输入导致将另外16个公钥压缩为单个顶点u2。从u1到u2的比特币流量的值和时间戳来自交易网络。

图片.png

图2.不完善网络中的一个示例子网

图片.png

图3.来自用户网络的示例子网

在预处理步骤之后,U具有881678个顶点(辅助网络中有86641个非平凡的最大连接分量和795037个孤立的顶点)和1961636个有向边。

04 异常分析

现在可以考虑这种结构以及比特币系统其他方面对匿名性的影响。用户网络可以通过多种方式来推断有关比特币用户的信息。可以使用全球网络属性(例如度分布)来识别异常;也可以使用本地网络属性,通过观察用户与其直接或间接进行交互的用户来检查用户操作的上下文;还可以利用用户网络的动态性质进行流量和时间分析。现在,将更详细地讨论每种可能性,并提供一个案例研究以证明其在实践中的用途。

整合网外信息

比特币系统没有用户目录。但是,作者可以尝试建立部分用户目录,实现将比特币用户与网络外信息相关联。如果能够建立足够的关联并将它们与上述网络结构结合起来,则可能会严重破坏比特币系统的匿名性。

许多组织和服务(例如交易所)可以访问有关其用户的标识信息,比如电子邮件地址、信用卡和银行帐户、IP地址等。如果这些信息中的任何一个是公开可用的,或者例如可以由执法机构访问,则参与相关交易的用户的身份也可能处于危险之中。为了说明这一点,作者考虑了许多公共可用的数据源,并将其信息与用户网络集成在一起。

比特币Faucet是一个网站,用户可以在其中捐赠比特币,并将其少量重新分配给其他用户。为了防止滥用此服务,将发布近期捐赠的历史记录以及收件人的IP地址。如果Faucet不分批重新分配,则可以将IP地址与收件人的公钥关联。该页面可以随着时间的推移而被爬取,以生成IP地址到用户的映射。

作者发现,与许多接收到比特币的IP地址相关的公钥,与辅助网络中的其他公钥签订了契约,从而暴露出与以前的交易有某种关联的IP地址。

识别信息的另一个来源是用户自愿公开公钥,例如,发布到forums论坛上。比特币公钥通常表示为字符串,长度约为33个字符,并以数字1开头。作者仅使用搜索引擎就发现了带有外部信息的许多高顶点。作者着手爬取了forums的数据,在forums上,用户经常将公钥附加到他们的签名上。作者还从Twitter流和用户生成的公共目录中收集了公钥。值得注意的是,在许多情况下,能够使用辅助网络,将“公开的”公钥与属于同一用户的其他公钥进行解析。还注意到,大型的集中式比特币服务提供商可以对他们的用户信息进行同样的处理。

用户网络的自我中心分析和可视化

对于特定的用户,作者可以从用户网络中直接获得一些信息。作者可以通过一个公钥计算余额。作者还可以聚合属于某个特定用户控制的公钥的余额。例如,图4(a)和图4(b)分别以比特币和交易数量的形式显示了WikiLeaks公钥的收支情况。捐款数额相对较小,会定期转发给其他公钥。在该机构首次宣布时,捐款也出现了明显的激增。图4(c)显示了流行的比特币交易网站的创建者的收付款,该收据和付款汇总了通过辅助网络链接的许多公钥。

图片.png

图4. 比特币公钥和用户之间的累计收支

从比特币交易历史中衍生出网络结构的一个重要优势是,作者能够使用网络可视化和分析工具来调查比特币的流动。例如,图5显示了在不完善的用户网络中,围绕WikiLeaks的公钥的网络结构,作者使用3-A节中收集的标识信息来解析几个顶点。这些用户可以直接或间接地链接到他们的捐款。

图片.png

图5. 顶点的以自我为中心的可视化,表示不完善的用户网络中WikiLeaks的公钥

顶点的大小与其在整个不完善的用户网络中的程度相对应。颜色表示比特币的数量:越暖的颜色具有越大的流通量。大红色顶点代表一个比特币挖矿池,一个集中式比特币钱包服务和一个未知实体。

上下文发现

给定一定数量的公钥或感兴趣的用户,可以使用网络结构和上下文来更好地理解它们之间的比特币流。例如,可以检查一组顶点之间的所有最短路径,或者在一个时间窗口中考虑交易及其“容量”,考虑可以从源流向目的地的最大比特币数量。图6显示了代表作者使用3-A部分中的网外信息标识的用户的顶点,与代表用户网络中MyBitcoin服务的顶点之间的所有最短路径。在此可视化视图中,作者可以识别出60%以上的用户,并推断出他们之间的许多直接和间接关系。

给定一定数量的公钥或感兴趣的用户,作者可以使用网络结构和上下文来更好地理解它们之间的比特币流。例如,作者可以检查一组顶点之间的所有最短路径,或者考虑在一个有趣的时间窗口中,比特币从源流向目的地的最大数量。例如,图6显示了3-A节中代表作者使用网外信息识别的用户的顶点与代表用户网络中MyBitcoin服务(http://www.mybitcoin.com)的顶点之间的所有最短路径。在此视图中,作者可以识别60%以上的用户,并推断出他们之间的许多直接和间接关系。

图片.png

图6. 3-A节中标识的所有用户的可视化视图,以及代表这些用户的顶点与代表用户网络中MyBitcoin服务的顶点之间的所有最短路径。

05 结论

在过去的半个世纪中,未来主义者预示着无现金社会的到来。他们的许多预测已经实现,例如 Anderson等人的“在线实时”付款系统和银行维护的“中央信息文件”。但是,现金仍然是一种竞争性且相对匿名的付款方式。比特币是在线世界中现金的电子类似物。它是分散的,没有中央机构负责比特币的发行,并且在进行在线转移时不需要涉及受信任的第三方。但是,这种灵活性是有代价的,比特币交易的整个历史全部公开。在本文中,作者研究了从该数据集派生的两个网络的结构及其对用户匿名性的影响。

使用适当的网络表示,可以将许多公钥与其他公钥以及外部标识信息关联起来。通过适当的工具,可以详细地观察已知用户的活动。这只能通过被动分析来实现。主动分析,是指相关部门可以潜在地部署“有标记”的比特币节点和协作用户,这样可以发现更多信息。作者还认为,大型集中式服务,如交换和钱包服务,能够识别和跟踪相当一部分用户活动。

关于 天 方 夜 “谈”

天方夜谈原意讲不切实际的东西,而这里想要 “脚踏实地”真正弄懂并感受一篇文章的思想。

方班人有自己的浪漫,

我们探讨知识,谈论理想,

采摘科研的繁星,

脚下是星辰大海。

天:代表我们的理想犹如天空般浩荡

方:代表方班

夜:代表代码人的冷静与静谧

谈:代表方班愿与您,就领域内的经典思想和前沿成果“秉烛夜谈”

大家都在学

安全运维SQL注入原理和利用过程01

网安讲堂第一期|漏洞挖掘之萌新挖洞指南

CTF-MISC练习之编码1