Deanonymizing transacciones de conjuntos de datos elípticos

Hola a todos, mi nombre es Alexander y soy científico de datos en Clain. Nos dedicamos al análisis de las transacciones de blockchain para su afiliación a actos criminales, como el cobro, el robo, el financiamiento del terrorismo y similares.


Las regulaciones de criptomonedas se ajustan cada año, y ahora las empresas deben cumplir con las políticas AML \ KYC. Casi lo mismo, la compañía Elliptic, que a principios de agosto de 2019 publicó un conjunto de datos etiquetado de 200k transacciones de bitcoins.


El objetivo principal de su publicación es proporcionar a la comunidad de cifrado datos reales para probar nuevos enfoques para detectar transacciones dudosas utilizando un conjunto de atributos estándar (el número de entradas y salidas, transferencias, transferencias a mineros, etc.) y la topología del gráfico construido en estas transacciones . El conjunto de datos es anónimo y tiene 167 atributos. Todos ellos tienen cero media y varianza unitaria, excepto el primero, que es el identificador, y el segundo, caracteriza el tiempo de 1 a 49, que corresponde a los componentes del gráfico de transacción.


Usando el archivo elliptic_txs_edgelist.csv, puede construir un gráfico dirigido y calcular los grados entrantes y salientes de cada transacción txId. Esto le permite aproximadamente (dado que el gráfico se corta de toda la cadena de bloques y parte de las conexiones se pierden) estimar el número de direcciones de remitente y destinatario para cada transacción. En la placa elliptic_txs_features.csv, cambie el nombre de las columnas como V1 - V167 e inmediatamente reemplace V1 con txId, V2 con elliptic_time. Algunos atributos se correlacionan mejor que otros con el valor de los grados entrantes y salientes del gráfico: cor (out-degree, V16) = 0.689, cor (out-degree, V7) = 0.680, cor (in-degree, V6) = 0.589, cor (in grado, V8) = 0.582. Veamos estas variables.


imagen
Scatterplot offset V6 variable y grado de gráfico entrante de elliptic_txs_edgelist


Según el gráfico, para cada valor en grados hay un límite superior de valores de V6, además, si clasifica V6 y encuentra la diferencia entre valores similares, cambiará como un entero multiplicado por una constante:


imagen
Valores únicos del cambio de V6 ordenado (diff_V6), la frecuencia encontrada (Freq) de los valores de diff_V6 y la relación de diff_V6 al valor mínimo de diff_V6.


En la tabla de cambios de V6, puede ver que 0.075038 ocurre con mucha más frecuencia que el resto de los valores y probablemente esté asociado con un cambio en el grado de 1. Dado que el número mínimo de entradas en una transacción es 1 (si no es una transacción de coinbase), escribimos:


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


Después de un análisis similar para V7, V8, V16:


  • input_count_V6 = 13.3266685112665 ​​* V6 + 2.62544842444139,
  • input_unique_count_V8 = 11.9243179897452 * V8 + 2.34747189219164,
  • salidas_cuenta_V7 = 50.3777694891647 * V7 + 4.21030186142152,
  • salidas_unique_cuenta_V16 = 49.3957564403755 * V16 + 4.121809499973.

Aquí input_count_V6 es el número total de entradas en la transacción, input_unique_count_V8 es el número de entradas únicas en la transacción, salidas_count_V7 es el número de salidas de la transacción, salidas_unique_count_V16 es el número de salidas únicas.


Puede surgir la pregunta: ¿por qué V6 y no V8 se asignan a input_count? La respuesta es simple, siempre input_count> = input_unique_count, y sustituyendo los valores de V6 y V8 de elliptic_txs_features.csv en las fórmulas indicadas, podemos asegurarnos de que la desigualdad (13.3266685112665 V6 + 2.62544842444139)> = (11.9243179897452 V8 + 2.34 también permite que el mismo V8 + 2.34 correlacione entre V6, V8, inputs_count y input_unique_count. Lo mismo ocurre con salidas_cuenta y salidas_cuenta_única.


Una vez que encuentre el número de entradas y salidas, así como el número de entradas únicas y salidas únicas, puede encontrar transacciones en las que las combinaciones de estos números ocurren solo una vez en el historial completo de Bitcoin (hasta la publicación del conjunto de datos Elliptic). Esto le permite encontrar transacciones únicas y tiempos aproximados para cada valor de elliptic_time:


imagen
Fecha de las transacciones únicas encontradas para cada elliptic_time.


El gráfico anterior muestra que la fecha depende linealmente de elliptic_time:
tiempo_proximadamente = 1450468509.80488 + 1155672.19512195 * tiempo_elíptico.
Aquí aproximadamente_tiempo es un tiempo aproximado aproximado para cada elíptico_tiempo. Y dado que el_líptico_tiempo varía de 1 a 49, la fecha aproximada_tiempo cambia de 01/01/2016 a 04/10/2017, en incrementos de 1155672.19512195 / 3600/24 ​​= 13.37584 días.


Dados los límites de tiempo para posibles transacciones y combinaciones de un número único de entradas y salidas, puede encontrar 189 transacciones que son adecuadas para estas condiciones y se encuentran solo una vez en toda la cadena de bloques de Bitcoin. Por ejemplo, solo hay una transacción con 1 entrada y 13107 salidas: dd9f6bbf80ab36b722ca95d93268667a3ea6938288e0d4cf0e7d2e28a7a91ab3.


Ahora puede encontrar otras características de las transacciones, como la tarifa, así como el volumen total de entrada (total_in_value) y output (total_out_value) en Satoshi. La búsqueda de correlación y la regresión lineal ayudan a hacer esto rápidamente, solo daré fórmulas finales:


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

Encontraremos el valor requerido total_in_value de la igualdad:
total_in_value = total_out_value + tarifa.


La información total encontrada nos permite identificar el 92.9% de todas las transacciones de conjuntos de datos elípticos. La otra parte se puede revelar si usa el gráfico de transacciones de elliptic_txs_edgelist.csv, comparándolo con un gráfico construido en muchas transacciones adecuadas con sus conexiones registradas en blockchain, esto agrega otro 6.6%.


Por lo tanto, el 99.5% de todas las transacciones anónimas se divulgan fácilmente, el 0.5% restante también se puede identificar, pero es probable que el tiempo dedicado a su desanonimización sea comparable al tiempo dedicado a la parte ya revelada de las transacciones. Puede ver el conjunto de datos desanonimizado aquí . Y aquí están los datos elípticos originales.

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


All Articles