Dénonymisation des transactions de jeux de données elliptiques

Bonjour à tous, je m'appelle Alexander et je suis data scientist chez Clain. Nous sommes engagés dans l'analyse des transactions de la blockchain pour leur affiliation avec des actions criminelles, telles que l'encaissement, le vol, le financement du terrorisme, etc.


Les rĂ©glementations sur les crypto-monnaies sont renforcĂ©es chaque annĂ©e, et les entreprises sont dĂ©sormais tenues de se conformer aux politiques AML \ KYC. À propos de la mĂȘme chose, la sociĂ©tĂ© Elliptic, qui a publiĂ© dĂ©but aoĂ»t 2019 un ensemble de donnĂ©es Ă©tiquetĂ©es de 200k transactions bitcoin.


Le but principal de leur publication est de fournir à la communauté cryptographique des données réelles afin de tester de nouvelles approches pour détecter les transactions douteuses en utilisant à la fois un ensemble d'attributs standard (le nombre d'entrées et de sorties, les transferts, les transferts aux mineurs, etc.) et la topologie du graphique construit sur ces transactions . L'ensemble de données est anonymisé et possÚde 167 attributs. Tous ont zéro moyenne et variance unitaire, sauf le premier, qui est l'identifiant, et le second - caractérise le temps de 1 à 49, ce qui correspond aux composants du graphique de transaction.


À l'aide du fichier elliptic_txs_edgelist.csv, vous pouvez crĂ©er un graphique orientĂ© et calculer les degrĂ©s entrants et sortants de chaque transaction txId. Cela vous permet d'estimer approximativement (puisque le graphique est coupĂ© de l'ensemble de la blockchain et qu'une partie des connexions est perdue) le nombre d'adresses d'expĂ©diteur et de destinataire pour chaque transaction. Dans la plaque elliptic_txs_features.csv, renommez les colonnes V1 - V167 et remplacez immĂ©diatement V1 par txId, V2 par elliptic_time. Certains attributs sont mieux corrĂ©lĂ©s que d'autres avec la valeur des degrĂ©s entrants et sortants du graphique: cor (out-degree, V16) = 0,689, cor (out-degree, V7) = 0,680, cor (in-degree, V6) = 0,589, cor (in- degrĂ©, V8) = 0,582. Regardons ces variables.


image
Scatterplot offset V6 variable et degré du graphique entrant depuis elliptic_txs_edgelist


Selon le graphique, pour chaque valeur en degrés, il existe une limite supérieure de valeurs V6, en outre, si vous triez V6 et trouvez la différence entre des valeurs similaires, elle changera comme un entier multiplié par une constante:


image
Valeurs uniques pour changer le V6 trié (diff_V6), la fréquence (Freq) des valeurs diff_V6 rencontrées et le rapport de diff_V6 à la valeur minimale de diff_V6.


Dans le tableau des modifications V6, vous pouvez voir que 0,075038 se produit beaucoup plus souvent que le reste des valeurs et est probablement associĂ© Ă  un changement de degrĂ© de 1. Étant donnĂ© que le nombre minimum d'entrĂ©es dans une transaction est 1 (si ce n'est pas une transaction coinbase), nous Ă©crivons:


inputs_count_V6 = (V6 - min (V6)) / min (diff_V6) + 1.


AprĂšs une analyse similaire pour V7, V8, V16:


  • inputs_count_V6 = 13.3266685112665 ​​* V6 + 2.62544842444139,
  • inputs_unique_count_V8 = 11.9243179897452 * V8 + 2.34747189219164,
  • output_count_V7 = 50.3777694891647 * V7 + 4.21030186142152,
  • outputs_unique_count_V16 = 49.3957564403755 * V16 + 4.121809499973.

Ici inputs_count_V6 est le nombre total d'entrées dans la transaction, inputs_unique_count_V8 est le nombre d'entrées uniques dans la transaction, outputs_count_V7 est le nombre de sorties de la transaction, outputs_unique_count_V16 est le nombre de sorties uniques.


La question peut se poser - pourquoi V6 et non V8 est-il mappĂ© Ă  inputs_count? La rĂ©ponse est simple, toujours inputs_count> = inputs_unique_count, et en remplaçant les valeurs de V6 et V8 de elliptic_txs_features.csv dans les formules indiquĂ©es, nous pouvons nous assurer que l'inĂ©galitĂ© (13.3266685112665 V6 + 2.62544842444139)> = (11.9243179897452 ) corrĂ©ler entre V6, V8, inputs_count et inputs_unique_count. Il en va de mĂȘme pour sorties_count et sorties_unique_count.


Une fois que vous avez trouvé le nombre d'entrées et de sorties, ainsi que le nombre d'entrées et de sorties uniques, vous pouvez trouver des transactions dans lesquelles des combinaisons de ces nombres ne se produisent qu'une seule fois dans toute l'histoire de Bitcoin (jusqu'à la publication de l'ensemble de données elliptique). Cela vous permet de trouver des transactions uniques et des heures approximatives pour chaque valeur elliptic_time:


image
Date des transactions uniques trouvées pour chaque elliptic_time.


Le graphique ci-dessus montre que la date dépend linéairement de elliptic_time:
approx_time = 1450468509.80488 + 1155672.19512195 * elliptic_time.
Ici approx_time est un unixtime approximatif pour chaque elliptic_time. Et comme elliptic_time varie de 1 Ă  49, la date approx_time change du 2016-01-01 au 2017-10-04, par incrĂ©ments de 1155672.19512195 / 3600/24 ​​= 13,37584 jours.


Étant donnĂ© les contraintes de temps sur les transactions possibles et les combinaisons d'un nombre unique d'entrĂ©es et de sorties, vous pouvez trouver 189 transactions qui conviennent Ă  ces conditions et ne se trouvent qu'une seule fois dans l'ensemble de la blockchain Bitcoin. Par exemple, une transaction avec 1 entrĂ©e et 13107 sorties, il n'y en a qu'une - dd9f6bbf80ab36b722ca95d93268667a3ea6938288e0d4cf0e7d2e28a7a91ab3.


Vous pouvez maintenant trouver d'autres caractéristiques des transactions, telles que les frais, ainsi que le volume total d'entrée (total_in_value) et de sortie (total_out_value) dans Satoshi. La recherche de corrélation et la régression linéaire aident à le faire rapidement, je ne donnerai que les formules finales:


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

Nous trouverons la valeur requise total_in_value à partir de l'égalité:
total_in_value = total_out_value + frais.


L'ensemble des informations trouvĂ©es nous permet d'identifier 92,9% de toutes les transactions de jeux de donnĂ©es elliptiques. L'autre partie peut ĂȘtre rĂ©vĂ©lĂ©e si vous utilisez le graphique des transactions de elliptic_txs_edgelist.csv, en le comparant avec un graphique basĂ© sur de nombreuses transactions appropriĂ©es avec leurs connexions enregistrĂ©es sur la blockchain, cela ajoute 6,6% supplĂ©mentaires.


Ainsi, 99,5% de toutes les transactions anonymes sont facilement divulguĂ©es, les 0,5% restants peuvent Ă©galement ĂȘtre identifiĂ©s, mais le temps consacrĂ© Ă  leur dĂ©sanonymisation est probablement comparable au temps consacrĂ© Ă  la partie dĂ©jĂ  divulguĂ©e des transactions. Vous pouvez voir l'ensemble de donnĂ©es dĂ©sanonymisĂ© ici . Et voici les donnĂ©es elliptiques originales.

Source: https://habr.com/ru/post/fr479178/


All Articles