¿Procedimiento para calcular la contaminación?

Me gustaría entender el análisis de contaminación cuantitativamente. Blockchain.info ofrece un servicio que calculará la contaminación, pero no he encontrado una buena explicación de cómo se calcula la contaminación.

La mejor (y única) explicación que he encontrado hasta ahora aparece en el documento Anonymity of Bitcoin Transactions :

ingrese la descripción de la imagen aquí

El análisis de contaminación funciona calculando el porcentaje de la cantidad de bitcoins que podrían originarse en otra dirección, revelando así conexiones en el gráfico de transacciones. En el ejemplo simplificado de la Figura 4, A 1 y A 3 tendrían una contaminación del 75 % y A 2 una contaminación del 25 %. Sin embargo, solo puede detectar conexiones directas en el gráfico y no considera ninguna información de contexto.

Esta explicación es confusa. La corrupción se mide entre dos seudónimos (direcciones). No es una propiedad de un seudónimo en particular. Parece que al documento le falta la parte que dice que los puntajes de contaminación para A 1 , A 2 y A 3 son relativos a A 4 . Si es así, entonces las puntuaciones tienen sentido.

Sin embargo, no está claro qué sucedería con cadenas de propiedad más complejas. Por ejemplo, imagina otro seudónimo, A 5 que paga A 1 5 BTC. ¿Cuál sería la puntuación de contaminación entre A 5 y A 4 ?

He visto esto , pero no explica cómo calcular una puntuación de corrupción entre dos seudónimos.

Lo que me gustaría ver es el esquema de un procedimiento paso a paso para calcular la contaminación, como lo hace Blockchain.info. Si tuviera que adivinar, así es como se vería el procedimiento:

  1. Encuentra dos seudónimos, S (fuente) y T (objetivo). Los fondos fluyen de S a T.
  2. Usando la cadena de bloques, encuentre una cadena de propiedad C i de cada moneda controlada por S a T.
  3. Para cada cadena de propiedad C i , encuentre la transferencia de moneda de menor valor m i .
  4. Sume todos los m i , dando m.
  5. Sume el valor de todas las salidas recibidas a través de T, dando s.
  6. La contaminación se define como m/s.

El uso de este procedimiento daría una puntuación de contaminación del 50 % entre A 5 y A 4 (2 / 4).

¿Es esto correcto?

No he llegado a ir a la fuente, pero también encuentro confuso el ejemplo. Si tuviera que pensar en una métrica, mediría la contaminación como un atributo de UTXO, no como direcciones. Es decir, 1 BTC reclamado como robado, por lo que gastar el 100 % contaminado junto con 0,5 BTC limpios daría como resultado un UTXO con contaminación de 2/3.
Ah, lo siento, comencé a leer el documento y me di cuenta de que usa la contaminación en un contexto diferente al que suele usar la comunidad de Bitcoin. Por lo general, "mancha" se refiere a la cantidad de monedas rastreables a un robo conocido; sin embargo, este documento lo usa como un término para medir la correlación de direcciones. Es por eso que estaba confundido y quitaré la etiqueta de monedas contaminadas en un momento.

Respuestas (1)

Creo que tengo una respuesta. No está claro si es así como lo hace blockchain.info, pero tampoco estoy seguro de que importe.

La contaminación es muy similar a la experiencia cotidiana de diluir un líquido.

Imagina empezar con tres vasos. Un vaso contiene jugo de naranja. El segundo contiene agua. El tercero está vacío.

Verter parte o todo el jugo de naranja en el vaso vacío no lo diluye en absoluto. Sin embargo, verter una mezcla 1:1 de jugo de naranja y agua en el vaso vacío diluye el jugo de naranja.

Podemos definir una métrica llamada factor de dilución. El factor de dilución es igual al volumen final contenido en el vaso antes vacío dividido por el volumen de jugo de naranja agregado. El factor de dilución para una mezcla 1:1 es por lo tanto 2 (2/1). Si no se lleva a cabo ninguna dilución, entonces el factor de dilución es 1. En términos más generales:

factor de dilución = V 2 / V 1 si V 2 > V 1

factor de dilución = 1 si V 2 <= V 1

Podemos añadir otro vaso vacío y diluir de nuevo. Por ejemplo, podemos tomar la mitad del jugo de naranja diluido y diluirlo con un volumen igual de agua. Esto da un segundo factor de dilución de 2.

El factor de dilución global es igual al producto acumulativo del factor de dilución en cada paso. En este caso, es 4 (2 x 2).

Ahora imagine que el valor monetario es como un líquido y una salida es como un contenedor. Podemos hacer análisis de dilución tal como lo hicimos con el jugo de naranja.

En este caso, el factor de dilución nos dice qué tan diluido se ha vuelto el valor de un producto en una cadena de propiedad en relación con un producto aguas abajo. Siempre que los límites de esta métrica sean claros, puede ser útil.

El líquido que se diluye es "mancha". En este modelo, "mancha" sería el inverso multiplicativo del factor de dilución. Un factor de dilución de 2 implica una contaminación del 50% (1/2).

Volviendo a la pregunta planteada anteriormente, dada esta cadena de propiedad, encuentre el factor de dilución entre A 5 y A 4 :

A 5 (5 BTC)->A 1 (2 BTC)->A 3 (3 BTC)->A 4 (4 BTC)

Los factores de dilución son, de izquierda a derecha: 1; 3/2; 4/3. Multiplicarlos juntos da 1 x 3/2 x 4/3, o 2. Esta es una corrupción del 50%, la misma respuesta que obtuve arriba.

Sin embargo, la respuesta postulada en mi pregunta original es incorrecta porque no tiene en cuenta la dilución en serie. Considere esta cadena de propiedad:

A 5 (1 BTC)->A 1 (5 BTC)->A 3 (3 BTC)->A 4 (4 BTC)

El factor de dilución en serie es 5 x 1 x 4/3 o 20/3.

Simplemente dividiendo el valor final por el valor mínimo aguas arriba da un factor de dilución entre A 5 y A 4 de 4/1.