Saltar al contenido

Qué sucede con el anonimato de tus bitcoins al participar en un CoinJoin

Qué sucede con el anonimato de tus bitcoins al participar en un CoinJoin

Ya sabes que un CoinJoin es un tipo de transacción coordinada para eliminar la trazabilidad y adquirir anonimato. También te expliqué cómo funcionan. En este artículo iré un poco más profundo, enseñándote qué es un set de anonimato, cómo puede verse afectado y cómo se determina según la implementación coinjoin que utilices: Wasabi Wallet o Whirlpool.

Una transacción CoinJoin recupera el anonimato de tus UTXOs (monedas) bajo 2 condiciones:

  1. El tamaño de la multitud en la que te puedes esconder con tu(s) moneda(s), llamada Set de anonimato, está definido por el número de participantes de la transacción que reciben monedas con iguales características.
  2. Quiebre de los vínculos deterministas, esta condición hace imposible determinar con certeza qué salida pertenece a qué participante. No existe evidencia que se pueda vincular a un propietario con sus transacciones pasadas (siempre que se use la estrategia correcta de gastos postmezcla).

Set de Anonimato (el tamaño de la multitud)

El set de anonimato de una transacción CoinJoin se determina contando la cantidad UTXOs (monedas) con iguales características (monto y formato de la dirección). Esto quiere decir que, mientras mayor es la cantidad de participantes que obtienen una moneda con las mismas características que las del resto, mayor será el set de anonimato.

Ejemplo Básico de un C.J y cómo se determina el set de anonimato

Si BOB, ALICE y STAICY participan en un CoinJoin y se generan tres UTXOs de iguales características, entonces se dice que tienen un set de anonimato de 3 (Anon set 3): 

3 participantes reciben 3 monedas de iguales caracteristicas (1 BTC).

  • No existirá forma de saber con exactitud cuál de las monedas con anon set 3 pertenece a BOB, ALICE o STAICY.
  • Un observador solo podrá suponer que una de las monedas de salida con anon set 3 es de BOB, ALICE o STAICY. Cualquier moneda puede pertenecer a cualquier participante.

Del ejemplo anterior se concluye que: Mientras más grande es la multidud, mayor será el Set de Anonimato.

Cómo puede verse afectado el set de anonimato?

Puede verse seriamente afectado por la salida de cambio, tanto así, que puede llevar el valor del set de anonimato de 100 a 1. ¿Cómo sucede? 

La moneda de cambio tendrá la mayoría de las veces un set de anonimato de valor 1, porque tiene características diferentes a las del resto de la multitud.

Cuando la moneda de cambio (Anon set 1) participa en la transacción CoinJoin, un observador puede intentar determinar a quién le pertenece, lo que le permitirá establecer un vínculo con una de las entradas.

De la imagen anterior, Si ALICE consolida su moneda anon set 3 (1 BTC) con su moneda de cambio anon set 1 (2 BTC); se degradaría el anonimato de todas sus monedas a anon set 1 y finalmente ALICE queda al descubierto y el coinjoin fue en vano. Como consecuencia también afecta al valor del set de anonimato de los demás participantes, BOB y STAICY, que bajaría a 2.

Cómo se determina el Set de anonimato según la implementación coinjoin que uses.

Wasabi wallet y Whirlpool de SamouraiWallet, son diferentes, tanto en la estructura propia de la transacción, como en la forma en que establecen los valores del set de anonimato.

  • Wasabi Wallet genera transacciones únicas de gran tamaño y con múltiples participantes, en las que con regularidad se obtienen salidas de cambio (cambio sin mezclar).
  • Whirlpool genera transacciones rápidas de solo 5 participantes en la que el cambio es eliminado en la transacción cero (Tx0).

Otra diferencia entre ambas es la tarifa del servicio. Mientras que en Wasabi Wallet dependerá del set de anonimato que obtengan tus monedas, en Whirlpool es fija y no existen recargos por el incremento del set de anonimato.

Wasabi Wallet

El usuario elige el set del anonimato que desea obtener para sus UTXOs (monedas) por medio de los escudos de Target Anonymity Set. Estos valores puede ser ajustados de forma manual. la tarifa del servicio dependera del set de anonimato obtenido segun la formula:  0.003% X Set de anonimato

Si el conjunto de anonimato seleccionado para tus monedas es 50, entonces:

Pagas 0.003% X 50 = 0.15% de los BTC incluidos por ti para participar en el CoinJoin.

Si estableces el anonimato objetivo en 53, Wasabi continuará mezclándo tus monedas hasta que alcancen el valor seleccionado, por lo que, puedes terminar con un set de anonimato de 60 (por ejemplo), entonces:

Pagarás 0.003% X 60 = 0.18% de los BTC incluidos por ti para participar en el CoinJoin

La cantidad de UTXOs (monedas) con igual denominación que se generan después de la mezcla, determina el valor aproximado del set de anonimato. Wasabi wallet colocará un escudo con el valor del set de anonimato obtenido al lado de cada UTXO resultante.

Su software Wasabi tiene información limitada sobre cuál debería ser el conjunto de anonimato, por lo que el conjunto de anonimato que le presenta el software es solo una estimación, no un valor exacto. Con Wasabi estamos tratando de hacer estimaciones más bajas, en lugar de las más altas.

Ejemplo de una transacción CoinJoin:

Transacción con 125 entradas y 224 salidas.

https://blockstream.info/tx/e4a789d16a24a6643dfee06e018ad27648b896daae6a3577ae0f4eddcc4d9174

Realizando un analisis de las salidas de la transacción, obtenemos:

  • 100 Salidas con monto de 0.10370144 BTC (anon set 100)
  • 22 Salidas con monto 0.20737592 BTC (anon set 22)
  • 9 Salidas con monto 0.10336226 BTC (anon set 9)
  • 5 Salidas con monto 0.82950368 BTC (anon set 5)
  • 2 Salidas con monto 1.65900726 BTC (anon set 2)
  • 2 Salidas con monto 3.31801472 BTC (anon set 2)
  • 2 Salidas con monto 0.10663656 BTC (anon set 2)
  • 2 Salidas con monto 0.41475184 BTC (non set 2)
  • 80 Salidas con montos diferentes, posiblemente cambios (anon set 1)

Whirlpool de Samourai Wallet

En este caso no existe una forma de establecer cuál set de anonimato se desea conseguir, este va aumentando en la medida que las UTXOs (monedas) participan en nuevos ciclos de C.J (ReMix). Las Remezclas no tienen cargo adicional.

El Conjoin genera 5 salidas indistinglibles entre si, por lo que, el set de anonimato (multitud) de cada UTXO postmix tiene en un principio un valor 5, además, no existen salidas de cambio, por lo tanto no se generaran posibles enlaces deterministas.

Ciclo CoinJoin de Whirlpool (pool de 0.05 BTC)

El Set de anonimato en Whirlpool se determina en dos modalidades:

  1. El set de anonimato Retrospectivo (mirada al pasado).
  2. El set de anonimato Prospectivo (visión del futuro).

1- Set de anonimato Retrospectivo

Se define como el número de Tx0 (transacciones cero) antiguas que guardan relación con la transacción que se desea calificar, teniendo como punto final del análisis, la mezcla génesis. Para calcular el set de anonimato retrospectivo de una transacción:

1- Se cuenta cada UTXO de premezcla (bloques amarillos) que participan en la transacción que se analiza.

2- Se sigue la ruta de cada UTXO de remezcla (bloques verdes) presente(s) en la transacción que se está analizando y se cuentan los UTXOs de premezcla (bloques amarillos) asociados con esa transacción. Este conteo se repite para cada remezcla hasta llegar a la mezcla génesis.

Ejemplo básico de como se establece el set de anonimato retrospectivo (el análisis es descendente):

Evaluando el set de anonimato retrospectivo de la transacción en la que participan BOB, ALICE, STAICY, SEAN y el freerider se obtiene:

  • UTXOs de Premezcla en la transacción evaluada: 4.
  • UTXOs de premezcla asociadas a la ruta establecida por los UTXOs de remezcla (hasta llegar a la mezcla génesis): 47
  • Set de anonimato Retrospectivo de las UTXOs de BOB, ALICE, STAICY y SEAN: 4+47 = Anon Set 51

El valor resultante del Set de Anonimato retrospectivo te indica cuántos Tx0 potenciales podrías reclamar como tuyos, uno más alto significa más negabilidad, ya que hay más vías potenciales a la mezcla génesis, básicamente al ingresar al pool seleccionado para mezclar, te escondes dentro de su multitud, lo que le dificultara a un observador realizar un análisis partiendo de cualquier transacción y con miras hacia el pasado.

2- Set de anonimato Prospectivo

El set de anonimato prospectivo se define como el número de UTXOs resultantes de transacción CoinJoin que no se han remezclado.

Inmediatamente después de una transacción CoinJoin, el set de anonimato prospectivo es 5, ya que, se generan 5 UTXOs. Suponiendo que ninguno de los participantes remezclen estos UTXOs de postmezcla, la puntuación prospectiva se mantendrá en 5.

La puntuación prospectiva siempre comienza como 5 inmediatamente después de una mezcla completa.

Si uno de los participantes del CoinJoin inicial ingresa en un nuevo ciclo (Remezcla) el valor del anon set prospectivo aumentara a 9.

Se resta al Conjoin inicial la salida que se está remezclado en el nuevo ciclo descendente, lo que deja el anon set en 4.

Al mismo tiempo, se crearán 5 UTXOs de Postmezcla en el nuevo ciclo de CoinJoin en el que participa uno de los usuarios del ciclo inicial. Esto provocara que el anon set de la transacción inicial sea 9.

Después de que 1 compañero participe en una transacción Remix, la puntuación prospectiva se actualiza a 9

El set de anonimato prospectivo no permanece congelado y se refiere al tamaño de la multitud de la transacción seleccionada. El comportamiento de los participantes de la transacción CoinJoin tendrá un impacto en el set de anonimato prospectivo. A medida que los participantes que descienden de la transacción inicial, participen en nuevos ciclos de Remezclas, el anon set continuará aumentando.

Herramienta de estadísticas de Whirlpool

Para obtener el valor del set de anonimato de cualquier transacción de Whirlpool, existe una herramienta de línea de comandos de código abierto que se puede ejecutar localmente llamada Herramienta de estadísticas de Whirlpool o WST por sus siglas en ingles. En un próximo articulo te mostraré como instalar y usar esta herramienta.

WST automatiza el proceso de descarga de las instantáneas del gráfico de las transacciones y realiza los cálculo descrito anteriormente, para asi obtener los puntajes de cualquier transacción.

Verificación independiente de los set de anonimato de transacciones con WST

Una vez que tu(s) UTXO(s) abandona la piscina de whirlpool al realizar un gasto de Postmezcla, estos puntajes ya no son aplicables. En ese caso puedes usar las siguientes herramientas:

OXT.me : Para análisis de la Blockchain y como explorador de bloques.

KYCP.org: Te permite una búsqueda rápida de cualquier transacción y ver sus enlaces deterministas.

No Confíes, Verifica

Sobre el autor de este artículo

Aprender y enseñar sobre Bitcoin son de las actividades que más disfruto. Si  quieres apoyar mi trabajo, en temas de Seguridad y Privacidad en el uso de Bitcoin, puedes hacer una libre aportación via Lightning network u on chain 🙌
P_Hold

Paynyms (Samourai Wallet)

PM8TJLCBidk5DFPG8Q8HwpRthCEQRJm5BRCzgUPdVYzJnRqfTH4WzKBkdCk5HnBBmfCtuVhuuB9ipvyu89AjiZ6XDe9TpefZdj7wEjR8Cp2LMX9Zzndp +muddymath92c