主页 > imtoken2022官网版 > 浅谈涉及暗网的比特币转账追踪

浅谈涉及暗网的比特币转账追踪

imtoken2022官网版 2023-08-23 05:10:48

在比特币的转账追踪中,不仅需要根据链上数据对转账链进行审计,更重要的是将转账路径上的每个地址与实体关联起来。 本文首先介绍了一些相关的基本概念,然后就此问题进行了进一步的讨论,重点讨论了暗网中比特币账户地址与实体关联的相关问题。

一、简述比特币的变化机制[1]-[3]

比特币系统没有平衡的概念。 它使用UTXO模型(Unspent Transaction Outputs,未使用的交易输出)。 交易过程中经常提到的钱包余额,其实就是钱包地址的一个UTXO集合。

当您“支付”比特币并创建交易时,您必须在您的支付地址(来自该地址之前交易的输出)包括可用于支付的金额作为新交易的输入。 这样的地址可能不止一个,你的比特币钱包会偷偷找出你钱包里所有可用的输出量(可能来自不同的地址),并将它们加在一起显示钱包的可用余额。

一开始,比特币客户端只为客户的专属地址生成100个私钥(称为私钥池)。 创建找零地址时,会先使用这100个地址中的一个,但是当这些地址都用完之后,就会创建超过100个的新找零地址。

比特币在交易过程中会将用于消费的地址(消费地址)余额归零。 当要支付的金额小于可用余额时,交易消息必须告诉比特币网络找零将被发送到哪里,即“找零地址”。 更改地址可能是也可能不是原始购买的地址。 另外,消费地址剩余的钱就是本次交易的手续费。 手续费没有输出地址,将奖励给成功收藏本次交易的矿工。

以A向B转账比特币为例。 如果我们选择支付后更改地址,一次转账会出现以下两种情况:

1.设置原发送地址为找零地址

将零钱退回原地址,这样就很明显A是交易的付款人。 如果A的身份成为众所周知的对象,那么B的身份也可能被推断出来。

因此,这虽然方便了A的管理,但可能会降低A的隐私性,也可能在一定程度上影响B的匿名性。

2.将找零地址更改为新生成的地址C

在没有进一步信息的情况下,此时其他人只能知道有一笔交易将地址 A 的余额拆分为地址 B 和 C。地址 B 或 C 的所有者可能是也可能不是 A。由于添加了新地址C,整个交易的真相变得更加扑朔迷离:哪个地址代表收款人,哪个地址代表退回的零钱?

当各方将更改发送到新创建的地址时,必须收集更多信息并使用更多资源将个人身份链接到地址。

2.比特币转账跟踪的一些基本概念[4]-[5]

(1) 账户导向和资金流量导向方法

交易数据分析的方法主要有两种:面向账户的和面向资金流的。

面向账户地址的方法分析统计单个账户地址的收支情况。 简单地采用以账户地址为导向的研究方法是不可取的,原因有以下三点:第一,账户地址之间的转账关系无法揭示账户地址在资金流动中的作用; 第二,比特币用户可能同时持有多个账户地址,如果账户地址之间没有转账关系,那么这种研究方法就不会有效; 第三,一个账户地址可能与大量账户地址进行过交易,这会导致统计显示效果差的问题。

因此,我们应该选择对交易资金流向进行挖掘,建立交易资金流向溯源路径,重点追踪溯源路径上的资金流向,并结合分析资金流向路径上参与交易的账户地址。账户地址的交易收支研究。

(2) 跳板地址和锚地址

文献[4]定义了跳板地址和锚点地址。

跳板地址是指用户或机构使用的交易量很少,用于资金划转的账户地址。 跳板地址一般具有以下特点:

1、账户地址余额等于0或约等于0;

2. 与资金流向路径上的其他账户地址相比,活跃度低,涉及的交易数量少;

3、账户地址的进出度,即收款次数和付款次数大致相等。

锚定地址是指资金流动路径中持有大部分拆分资金、节点度高、交易频率高的账户地址。

由于锚地址节点度高,交易频率高,意味着锚地址使用频率更高,因此锚地址可以作为实体关系关联可疑账户地址聚类中的代表性“锚点”,去匿名化等操作,通过判断锚地址拥有者的性质,来判断整个可疑账户地址集群的性质。

根据锚地址的特点,在可疑账户地址聚类中采用PageRank算法提取锚地址。 PageRank算法根据网页内容的链接度计算网页被访问的概率,可用于解决相似可疑账户地址聚类中寻找节点度高的锚地址问题。

(3) 资金拆分行为

资金拆分行为是指将一笔大额资金拆分成多笔小额资金,再汇聚到一个账户地址的交易方式。 具体特点如下:

1、资金流动溯源路径上存在多个进出度相等的跳板地址;

2、大额基金分拆资金流向溯源路线中,各分拆资金金额相似,由跳板地址持有一段时间;

3. 多笔拆分资金通过多次输入交易转换为一笔资金,输出到同一个账户地址;

4、多个拆分资金的输出账户地址的节点度高于资金流向路径上的其他账户地址。

(4) 数字货币洗钱

数字货币可能被不法分子购买或窃取,洗钱者需要隐藏这种行为留下的审计痕迹。 以数字货币盗窃为例,不法分子会先将盗取的数字货币(如比特币)转移到洗钱者拥有的一个地址,但这个地址仍然不干净,因为它与受害人的地址有明显的联系。

洗钱者再利用混币服务,将自己主币的交易地址与混币服务池中的临时地址进行互换,以抵御交易图谱的分析,从而巧妙地消除钱包地址之间的差距,而不至于暴露他们自己。 审计追踪。

这里的混币是指一笔交易中包含了大量的输入和输出比特币转账费率,混淆了交易信息,更难找出输入和输出之间的关联。 为了避免被跟踪和监控,洗钱者一般采用混币操作。

最后,将“白”数字货币融入主流交易所、OTC等数字货币金融系统; 或兑换成法定货币后转入指定银行账户; 或转入冷钱包,方便您随时方便地将冷钱包中的数字货币发送给任何人。

3. 通过链上数据追踪比特币转账

Bitcoin Core客户端可以作为数据源,客户端可以连接到其他运行该客户端的可信节点同步交易数据; 转账数据也可以通过各个比特币区块浏览器的API获取,然后对其进行分析。 由于网上此类文章较多,本文不再赘述。

需要注意的是,交易所的个人账户有比特币充值地址。 比特币存入这个地址,然后提现转出交易所时,一般不是从这个存入地址转出,而是从交易所的其他陌生地址转出,而这个/这些陌生地址(可能是多个UTXO的一个钱包)也可能同时转移多个用户的比特币,这使得整个转移链难以审计和追踪。

在比特币转账跟踪中,更重要的是将转账路线上的每个地址与一个实体相关联,下面将重点介绍。

4.账户地址与实体关联

(1) 账户地址实体关联的一般方法[4]

在比特币交易数据分析领域,由于个人或组织可以同时持有和使用多个账户地址,因此用实体的概念来代替传统的容易与账户地址混淆的“用户”概念来定义个人或使用比特币的组织。 组织。 建立账户地址与实体之间的关联是比特币账户地址去匿名化的核心工作。

可疑账户地址聚类中的锚地址活跃度较高。 因此,在不知道锚地址所属实体身份信息的前提下,可以通过社会工程学和转移关系挖掘等方式获取锚地址与实体的关系:

1、社会工程学方法:比特币交易伴随着自然的人类行为,如购买商品、请求捐赠等,无意中泄露实体和账户地址之间的关系在所难免。 可以从各种比特币论坛的讨论帖、论坛用户签名、社交网络等信息源收集账户地址的信息标签。 这也是各大数字货币交易所标签服务的经营思路。

2、转移关系挖掘法:这种方法来源于传统经济犯罪案件的侦查思路。 在账户地址A的转账记录中,如果与账户地址B有频繁的交易,则可以认为两个账户地址之间存在很强的相关性。 此时账户地址A可以继承账户地址B与实体的关系。

因此,可以针对社交网络和数字货币论坛、社区等开展相关信息监测工作,定期收集和处理潜在账户地址标签,完成账户地址实体信息的关联,作为数据支持数字货币转移跟踪。

关于“明网”中账户地址实体关联的讨论和实践较多,本文将简单介绍“暗网”中账户地址实体关联。

(2) 暗网账户地址关联实体

一、暗网技术介绍[6]-[8]

目前最流行的暗网技术有Tor、Freenet和I2P,暗网中的大部分内容都集中在这三种暗网中。

(1) 托尔

Tor的全称是“The Second Generation Onion Router”,是目前使用最广泛的匿名通信系统之一。 它由提供洋葱路由器作为中继节点的志愿者广泛部署在万维网上。 Tor是一种基于虚拟链接的低延迟匿名通信系统,是对第一代洋葱路由系统的改进。 第二代洋葱路由网络除了防止窃听、网络流量分析等攻击外,还具有前向安全、低延迟、多请求共享链接、分布式目录服务器等特点。

洋葱网络由许多洋葱路由器组成。 用户在访问洋葱网络之前,需要在本地安装一个洋葱代理。 Agent会在洋葱网络中随机选择n个洋葱路由器作为转发节点,建立通信路径传输数据。 在转发之前,中继节点将按照通信路径的相反顺序对数据进行逐层加密。 进入洋葱网络后,数据包在经过每个中继节点时都会被节点解密,得到下一个中​​继节点。 IP地址继续向前传输,到达最后一跳节点时,将数据包以明文形式传输给用户。 对于用户来说,他们只知道数据是从Tor网络的最后一跳节点传输过来的,而不知道数据的真正发送者。

同理,转发的数据包从目的节点发回时,会按顺序逐层加密,即每发送到一个洋葱路由器就加密一次,直到最终到达用户的洋葱代理,而洋葱代理会将数据包逐层解密,然后以明文形式发送给用户的应用程序。 经过以上层层加解密操作,每个洋葱路由器只知道通信路径中与自己相邻的上一跳和下一跳节点的信息,从而保证了服务的匿名性。

(2) 自由网

Freenet 是一个分布式匿名信息存储和检索系统。 作为最早被使用的主流暗网之一,Freenet 具有比其他暗网更快的速度和稳定性。

Freenet 是一个独立的网络,用户可以通过它匿名共享文件、浏览和发布“Freesite”(只能在 Freenet 网络中访问的网站)以及在论坛发帖而不必担心被审查。 Freenet 不是代理服务器,并且不允许像 Tor 一样匿名访问网络。 由于没有中央服务器,Freenet 的工作方式完全不同:Freesite 不支持 Javascript、服务器端脚本等。

Freenet 是去中心化的,不易受到攻击,其节点之间的通信是加密的,因此很难了解谁在请求某些信息以及请求的是什么。 因此,Freenet可以保证用户在上传、请求和搜索资源时的匿名性。

(3) I2P

I2P 是一种基于 P2P 的匿名通信系统,其上运行着多种安全的匿名程序,支持的应用包括匿名 Web 浏览、博客、电子邮件、在线聊天、文件共享等。与其他匿名访问工具不同,I2P通过不同的隧道将中间节点和目标节点分开,即某个节点运行I2P并不是秘密,秘密是节点用户通过I2P匿名网络发送什么消息,消息给谁。

I2P匿名的核心是大蒜路由(洋葱路由的变体),将多条消息逐层加密打包,经过传输隧道逐层解密后到达目标节点。 I2P 和 Tor 的主要区别在于通信通道的设计:Tor 使用单个双向传输通信通道进行传输,而 I2P 使用多个单向传输通道,根据接收功能分为输入通道/发送消息。 /输出隧道。 此外,Tor网络有一个基于目录服务的自建中心节点来管理整个Tor网络,而I2P则采用全分布式架构。

(4) 以上三者的优点

Tor的优点是:拥有大量的用户群体,更受到学术界和黑客团体的关注; 解决了一些I2P尚未解决的网络规模问题; 有可观的资金和较多的开发者支持技术的发展; 采用高性能节点构建链路,提供高带宽和低延迟,访问速度快。

Freenet的优点是: 分布式数据存储,允许用户随时从原始节点和多个备份节点检索数据(即使原始节点离线); 合理高效的数据分散机制。

I2P的优点是:完全分布和自组织; 使用多个单向链路传输数据; 节点选择基于对节点性能的持续分析和比较,而不是基于节点声称的性能; 匿名网络很小,没有被大规模阻止或拒绝服务; 支持TCP和UDP传输。

综上所述,Tor作为较早的匿名通讯工具,具有较高的知名度和广泛的用户范围; Freenet合理分配数据仓库,支持离线下载; I2P使用的匿名技术更复杂,更匿名。 高的。

由于Tor应用广泛,下面我们主要分析一下。

2. Tor匿名网络域名收集[9]

由于暗网的隐蔽性、匿名性和监管难度,给网络的监控和分析带来了极大的困难。 面临的主要困难一般在以下三个方面:一是访问暗网的速度受限。 因为访问暗网需要专门的软件Tor,而Tor的连接过程需要加解密,导致访问暗网非常慢。 其次,隐藏的服务地址难以收集。 隐藏服务提供者为避免被追踪,通常会在短时间内保持服务状态,导致隐藏服务地址频繁变化,数量不确定,生命周期短; 第三,暗网是匿名的,传统的网络侦查技术无法追踪到暗网IP地址和网络用户的真实身份。

隐藏服务地址非常重要,获取地址是成功访问暗网的第一步。 为了使用程序进行一些自动化分析,我们使用Onionscan来获取隐藏的服务地址等信息。 Onionscan 由 Sarah Jamie Lewis 开发并用 go 语言编写。 是一款强大的开源暗网情报检测工具,可以帮助执法人员检测和追踪暗网,也可以帮助隐藏服务运营者发现安全问题。

3.找到托管隐藏服务的服务器的IP地址[10]-[11]

Tor 匿名网络中的隐藏服务也容易受到黑客攻击,配置不当的服务也会暴露服务器 IP 地址等信息。 虽然查找托管隐藏服务的服务器的 IP 地址与查找比特币帐户地址的实体关系不大,但了解更多信息仍然有助于跟踪比特币转账。

(1) SSH协议和SSH密钥指纹

SSH 协议是 Secure Shell 的缩写,它是一种旨在为远程登录会话和其他网络服务提供安全性的协议。 SSH协议可以有效防止远程管理过程中的信息泄露。 传统网络服务与用户交互过程中,通常在网络上以明文形式传输密码和数据,黑客可以截获这些数据。 再加上这些网络服务使用的安全认证机制存在严重问题,它们往往容易受到中间人 (MITM) 攻击。 通过使用 SSH,您可以加密所有需要传输的数据。 这样就无法实现“中间人攻击”的手段,也能有效防止DNS欺骗和IP欺骗。

为了有效避免中间人攻击,当管理员通过SSH远程连接主机时,SSH会生成主机指纹并请求保存。 服务器管理员可以将SSH密钥指纹发送给客户端,帮助客户端在首次登录时验证服务器的真实性。 第一次连接成功后,主机每次都会验证客户端发送的SSH密钥是否与服务器保存的密钥匹配。

简而言之,SSH 密钥指纹是代表服务器公钥的一系列字符。 您可以使用它来验证服务器和设备身份的真实性。

(2) 查找托管隐藏服务的服务器IP地址

上面提到的OnionScan可以从启用SSH协议的暗网隐藏服务中收集SSH密钥指纹,然后我们通过Shodan搜索引擎的API搜索这些密钥指纹,看是否有相关匹配的SSH密钥指纹存在,即检查通过普通网络连接访问的服务器(“明网”中的服务器)在与暗网隐藏服务交互时是否使用相同的SSH密钥。

如果是这种情况,则说明某台服务器同时托管着“暗网网站”和“明网网站”,从而可以映射出暗网隐藏服务、明网中的网站和各种IP地址之间的关系。 文献[12]提供了一些避免上述情况检测的技术。

7OcXbjE1S0OTg4XGT9gFXqipzym1joNWheMZmK47.jpeg

从上图可以看出,运行程序后,我们发现了一些提供隐藏服务的服务器IP地址,分别位于法国、德国和荷兰。

kpHhPElOheNVAHyo6hhWESy0cGJJ0wZ8Mh4AhKy9.jpeg

从上图可以看出,某台服务器上提供了3个隐藏服务,对应3个暗网网站。

4. 使用暗网爬虫收集情报[9]

在使用 Tor 浏览器访问网络时,用户可以使用 Tor 来阻止网站跟踪他们的 IP 地址。 一般情况下,网络流量至少会经过3个不同的中继器:入口节点/路由器(Entry guard)、中继节点/路由器(Middle relay)、出口节点/路由器(Exit Node)。 下图为访问暗网论坛时主机与论坛之间的网络链接:

Js8OGUosUpWuB4eUQhXQ4bH8vaj6Rimac0nTlTI8.jpeg

可以发现连接的trunk loop中的第一个IP地址总是相同的。 这是 Tor 的正常运行。 连接的中继环路中的第一个节点通常称为“入口节点/路由器”。 它是一个快速稳定的节点,将在我们的中继电路中保留两到三个月以抵抗匿名攻击。 每次我们访问一个新网站时,其余的中继都会发生变化,这些中继一起提供完整的隐私保护。

在这里,我们使用爬虫进行暗网情报收集。 在通用爬虫程序的开头添加几行代码,同时保持Tor浏览器打开。 根据上面收集的Tor匿名网络的域名,可以自动爬取这些网站的数据。

下图是使用爬虫程序从暗网论坛抓取数据时上位机对外显示的IP地址。 可以看到,我们的公网IP已经变成了一个Tor匿名网络出口节点的IP,其地址位于德国柏林:

ENKvGOqvUahOsZoETjQPa7SWRpYOf1BpuG5WnSqh.jpeg

针对不同的暗网数据类型,如暗网市场、暗网论坛等,应设计不同的爬虫框架。

在比特币转账追踪中,如果某个比特币地址也出现在暗网(比如某个论坛),那么我们可以根据其所在页面的信息对其进行标注,进一步尝试根据该比特币地址发送相关资料。 币地址与实体关联,涉及到暗网的情报分析。

5.分析收集到的暗网情报[9]、[13]

首先,判断正文数据的有效性。

获取的文本中,部分文本无效,会增加工作量,阻碍文本分类速度,因此应将以下文本标记为无效隐藏服务: (1) 网页正文文本内容过短,无法识别从网页隐藏的服务应归类为无效文本; (2) 隐藏服务内容为网站服务器默认启动页,无法区分暗网隐藏服务内容的默认启动页也视为无效; (3) 更新后的网页打不开。 不可能把它作为文本分类的依据。

第二,处理数据内容。

为了逃避执法人员的调查和追踪比特币转账费率,暗网的数据内容存在单词拼写错误、标点符号凌乱、非英文标准字符较多、大小写混淆等问题。 这些问题严重影响分类精度。 因此,需要对数据内容进行相应的处理。

比如使用Python的langdetect来识别文本的语言,大部分隐藏的网页都是用英文交流的,有的使用俄文或者德文和中文,这里主要分析英文网站; 使用 BeautifulSoup 去除复杂的非标准特征字符; 使用正则表达式去除无价值的简单标点符号; 使用pyenchant纠正英文单词的拼写; 使用nltk库的SnowballStemmer提取英文词干; 使用nltk库的WordNetLemmatizer还原英文词性; 并进行大小写转换,去掉“in”、“an”等没有实际意义的助词和介词,只保留有助于分类的动词和名词。

最后,使用常用的算法对数据内容进行分类。

可以使用 KNN、支持向量机、随机森林或朴素贝叶斯等方法对数据内容进行分类。 但是,现有分类方法的精度和准确度都不高,需要对分类方法进行进一步的研究和改进。 所以根据之前的筛选和分类,有时候还是需要人工干预的。

在分析过程中,还需要记录发布该内容的用户,并根据上述分类更新其对应的标签等信息。

这样可以在比特币转账追踪中获得更多的信息,转账路线上的每个比特币地址都可以与实体更深入地关联,使实体的画像更清晰。

五、总结

本文简要介绍了比特币的转账追踪,重点讨论了暗网比特币账户地址与实体关联的相关问题,希望能为监管部门提供一些参考。

由于暗网环境复杂,为避免恶意电脑攻击,不建议非专业人士对暗网进行相关操作。

出版商:XBITRUST & Paiclub Capital