对椭圆数据集交易进行匿名处理

大家好,我叫Alexander,我是Clain的数据科学家。 我们因其与犯罪行为有关联而从事区块链交易的分析,例如套现,盗窃,恐怖分子融资等。


加密货币法规每年都会严格,现在公司必须遵守AML \ KYC政策。 关于同一件事,Elliptic公司于2019年8月上旬发布了带有标签的200k比特币交易数据集。


它们的发布的主要目的是为加密社区提供真实数据,以便测试使用一组标准属性(输入和输出的数量,转移,到矿工的转移等)和基于这些交易构建的图的拓扑结构来检测可疑交易的新方法。 。 数据集是匿名的,具有167个属性。 除了第一个(即标识符)和第二个(均表示从1到49的时间)(均与交易图的组成部分相对应)以外,所有这些均具有零均值和单位方差。


使用elliptic_txs_edgelist.csv文件,您可以构建一个有向图,并计算每个txId事务的入站和出站度。 这使您可以大致估计(因为该图是从整个区块链中截取的,并且部分连接丢失了)估计每个交易的发件人和收件人地址的数量。 在elliptic_txs_features.csv板中,将列重命名为V1-V167,然后立即将V1替换为txId,将V2替换为elliptic_time。 一些属性与图表的传入和传出度的值之间的相关性比其他属性更好:cor(out-degree,V16)= 0.689,cor(out-degree,V7)= 0.680,cor(in-degree,V6)= 0.589,cor(in-度(V8)= 0.582。 让我们看一下这些变量。


图片
散点图偏移量V6变量和来自elliptic_txs_edgelist的传入图形度


该图显示每个度数值都有一个V6值的上限,此外,如果对V6进行排序并找到相似值之间的差,它将以整数乘以一个常数而变化:


图片
用于更改已排序的V6(diff_V6),遇到的diff_V6值的频率(Freq)以及diff_V6与diff_V6的最小值之比的唯一值。


在V6更改表中,您可以看到0.075038的出现频率比其余值更多,并且可能与度数更改相关联为1。考虑到事务中的最小条目数为1(如果它不是基于币种的事务),我们编写:


input_count_V6 =(V6-最小值(V6))/最小值(diff_V6)+ 1。


对V7,V8,V16进行类似分析后:


  • input_count_V6 = 13.3266685112665 * V6 + 2.62544842444139,
  • input_unique_count_V8 = 11.9243179897452 * V8 + 2.34747189219164,
  • outputs_count_V7 = 50.3777694891647 * V7 + 4.21030186142152,
  • outputs_unique_count_V16 = 49.3957564403755 * V16 + 4.121809499973。

在这里,inputs_count_V6是事务中条目的总数,inputs_unique_count_V8是事务中唯一条目的数量,outputs_count_V7是事务中退出的数量,outputs_unique_count_V16是唯一退出的数量。


可能会出现问题-为什么V6而不是V8映射到inputs_count? 答案很简单,始终为inputs_count> = inputs_unique_count,然后在指定的公式中用elliptic_txs_features.csv替换V6和V8的值,我们可以确保不等式(13.3266685112665 V6 + 2.62544842444139)> =(11.9243179897452 V8 + 2.34747189 V6,V8,inputs_count和inputs_unique_count之间相关。 outputs_count和outputs_unique_count也是如此。


一旦找到输入和输出的数量,以及唯一输入和唯一输出的数量,您就可以找到其中这些数字的组合在整个比特币历史中仅出现一次的交易(直到椭圆数据集的发布)。 这使您可以找到唯一的交易和每个elliptic_time值的近似时间:


图片
找到每个elliptic_time的唯一交易的日期。


上图显示日期与elliptic_time线性相关:
大约时间= 1450468509.80488 + 1155672.19512195 * elliptic_time。
在这里,roximate_time是每个elliptic_time的近似unixtime。 并且由于elliptic_time从1到49之间变化,因此roximate_time日期从2016-01-01更改为2017-10-04,增量为1155672.19512195 / 3600/24 = 13.37584天。


给定可能交易的时间限制以及独特数量的输入和输出的组合,您可以找到189个适合这些条件的交易,并且在整个比特币区块链中仅发现一次。 例如,只有一个具有1个输入和13107个输出的事务-dd9f6bbf80ab36b722ca95d93268667a3ea6938288e0d4cf0e7d2e28a7a91ab3。


现在,您可以找到交易的其他特征,例如费用以及中本聪的总输入(total_in_value)和输出(total_out_value)总量。 相关搜索和线性回归有助于快速完成此操作,我只给出最终公式:


  • fee_V4 = 81341.4537626213 + 386323.710952989 * V4,
  • total_out_value_V3 = 2742460603.92287 + 15853961614.9796 * V3。

我们将从等式中找到所需的值total_in_value:
total_in_value = total_out_value +费用。


找到的总信息使我们能够识别所有椭圆数据集交易的92.9%。 如果您使用elliptic_txs_edgelist.csv中的交易图,将其与基于许多合适的交易建立的图进行比较,并将其连接记录在区块链上,则可以揭示出另一部分。这又增加了6.6%。


因此,很容易公开所有匿名交易的99.5%,也可以识别其余0.5%,但是花在其匿名处理上的时间可能与花在交易已公开部分上的时间相当。 您可以在此处查看去匿名化的数据集。 这是原始的椭圆数据。

Source: https://habr.com/ru/post/zh-CN479178/


All Articles