Saltar al contenido

Cómo entender Whirlpool de Samourai Wallet sin morir en el intento

como entender whirlpool sin morir.jpg

Los CoinJoins (C.J) son transacciones coordinadas en las que participan diferentes usuarios de Bitcoin con el fin de obtener anonimato y combatir el análisis de gastos con entradas múltiples, que es una estrategia utilizada por empresas de vigilancia para romper tu privacidad en la red Bitcoin.

En este artículo explicaré de manera sencilla y esquemática cómo funciona la implementación de Samourai Wallet para transacciones CoinJoins llamada Whirlpool.

Whirlpool

Con cada ciclo de Whirlpool se elimina el vínculo existente entre la historia pasada y la actividad futura de tus monedas (UTXOs), aportando privacidad a tus ahorros y a tus pagos en bitcoins.

Características de cada ciclo C.J de Whirlpool

  • Cada ciclo C.J de Whirlpool tiene la cantidad máxima de entropía posible (10,54 bits) para una transacción con cinco entradas y cinco salidas (5 IN/5OUT). Cada UTXO cuenta con una densidad de entropía de 1.054 bits.
  • En un ciclo de Whirlpool existen 1496 posibles interpretaciones (100% de eficiencia), sin enlaces deterministas entre entradas y salidas.

Los datos anteriormente mencionados están basados en análisis Boltzmann:

Análisis de Boltzmann: Esta TX tiene una eficiencia del 100 % en comparación con un CoinJoin perfecto de 5 x 5 con 1496 interpretaciones.
  • Cada entrada tiene un 34% de probabilidad de estar transfiriendo valor a cada una de las salidas.
  • Cada par de entrada/salida aparece en 512 interpretaciones.
  • Participas con solo una entrada en cada ciclo.
  • Las monedas que estuvieron juntas en un ciclo, no vuelven a estarlo en uno nuevo.
  • No existe reutilización de direcciones.

Todas estas características aportan estos 3 beneficios

  1. Aumenta la privacidad de tus monedas, cuanto mayor número de interpretaciones (efectivas) tenga un ciclo de C.J, mayor será su entropía {E=log2 N} (donde E es entropía y N es número de interpretaciones). Una alta entropía proporciona una mayor privacidad a los usuarios de Bitcoin.
  2. Confunde a los espías, un Ciclo de C.J sin enlaces deterministas entre las entradas y las salidas, confunde a los espías de la blockchain de Bitcoin, porque no pueden determinar cuál entrada tiene mayor probabilidad de estar transfiriendo valor a una salida específica.
  3. Aumenta el set de anonimato, con cada UTXO diferente que participa en un ciclo de Coinjoin aumenta el anonimato, porque se hace cada vez más difícil vincular una UTXO específica contigo.

Funcionamiento de Whirlpool C.J

El software de Whirlpoolcoordinala transacción C.J en cuatro etapas: Tx0, PreMix, PostMix, ReMix. Para el usuario todo sucede de forma automática y simple, sin embargo, es interesante comprender en profundidad qué ocurre en cada etapa de un ciclo (transacción) C.J.

Esquema General

En la Txo el cambio tóxico es retirado antes de que ocurra la transacción CoinJoin.
  • Al menos 3 entradas y hasta 4 son de PreMix (PreMezcla).
  • Al menos 1 entrada y hasta 2 son de ReMix (ReMezcla).

Etapas

Etapas: Tx0> PreMix> PostMix (gasto) > Remix

Primera etapa: Transacción Cero (Tx0)

Es el punto de partida.

De Tx0 a PreMix

¿Qué sucede en esta primera etapa (Tx0)?

  • Las UTXOs que deseas mezclar se dividen automáticamente en montos similares según el Pool elegido. Existen tres pools con denominaciones de: 0,01BTC / 0,05 BTC / 0,5 BTC. La elección del pool dependerá de la estrategia de cada usuario (ahorrar o gastar), del monto que ingrese y del número de UTXOs quiera administrar en la etapa final.
  • Se realiza el pago de la tarifa por el servicio de coordinación del CoinJoin. El monto a pagar es fijo y depende de la denominación del pool que hayas elegido. Las tarifas son: 0,0005BTC / 0,0025BTC / 0,05 BTC, respectivamente.
  • Se paga la tarifa de minería por la transacción cero (Tx0).
  • Es separado el cambio tóxico antes de que ocurra la transacción CoinJoin. “El cambio tóxico” es el sobrante que se genera al dividir las UTXO(s) en montos iguales, según la denominación del pool que selecciones.

El cambio tóxico es llamado así para alertarte sobre la UTXO (moneda) de cambio generada en la primera etapa, ya que, posee información que puede servir como pista para rastrear tus UTXOS de postmezcla.

Este cambio tóxico es automáticamente almacenado en tu billetera Samourai como una UTXO no gastable, para utilizarla la debes habilitar manualmente como gastable.

Alerta: Nunca debes unir la UTXO de cambio (cambio tóxico) a las UTXOs resultantes del CoinJoin (PostMezcla).

Se debe eliminar cualquier posibilidad de que el cambio tóxico se vuelva a unir con los UTXOs de PostMezcla.

Es importante destacar que en otros servicios de CoinJoin el cambio tóxico  es parte de la transacción C.J, por lo tanto, se crea un enlace determinístico que sirve como pista y facilita el rastreo.

Ejemplo real de la primera etapa (Tx0):

Un ejemplo de una transacción Tx0: este participante ingresó al grupo 0.01 con 0.05 BTC
  • OUT.1: Es el pago del servicio en el pool con denominación de 0,01 BTC (pago único)
  • OUT. 2: Es el cambio Toxico, Nunca debe juntar con UTXO(s) de PostMix (PostMezcla).
  • OUT. 3–7: Son las UTXOs registradas por el coordinador para participar en la próxima transacción CoinJoin (PreMix).

Segunda Etapa: PreMezcla (PreMix)

Los UTXOs de premezcla aún no han participado en un Coinjoin. Están registradas por el coordinador y tendrán prioridad para participar en el próximo ciclo de mezcla.

Las UTXOs de PreMezcla tienen un monto estándar según la denominación del pool en que participan.

Las UTXOs en PreMezcla son registradas por el Coordinador y participaran en la próxima transacción CoinJoin.

Una vez que se cumplen las condiciones, las UTXOs en esta etapa participan en la transacción CoinJoin.

Ejemplo esquemático de la segunda etapa (PreMix)

Ciclo de CoinJoin sin enlaces deterministas.

Tercera etapa: PostMezcla (PostMix)

Es la etapa posterior a la transacción Coinjoin. Cualquier UTXO que se haya mezclado al menos una vez y no haya abandonado el Pool, se considera en PostMezcla. Estos UTXOs ya han estado en un ciclo de CoinJoin, sin embargo, pueden seguir participando en nuevos ciclos de “mezcla”.

Ejemplo esquemático de la tercera etapa: PostMix (Postmezcla)

Las UTXOs en PostMix (PostMezcla) pueden ser almacenadas en un hardware wallet, gastadas en algún comercio, vendidas en alguna Exchange o pueden permanecer en ReMix hasta que las desees gastar.

Las UTXOs en PostMezcla pueden ser gastadas en cualquier momento.

Cuarta etapa: ReMezcla (ReMix)

Es recomendable realizar ciclos adicionales de CoinJoin con tus UTXOs en PotsMezcla, esto se conoce como ReMezcla. Es la manera de aumentar el set de anonimato.

El usuario (Freerider) que desea aumentar el set de anonimato de sus UTXOs puede realizar muchos ciclos (infinitos) de CoinJoin (ReMix) sin ningún cargo adicional

Con Whirlpool, el usuario no incurre en ningún gasto adicional por remezclar, y las tarifas de mineria son financiadas por los nuevos participantes que entran a primera etapa (Tx0). Tus UTXOS siempre mantendrán el mismo monto (según el pool que elegiste) sin importar el número de nuevos ciclos de ReMezcla en el que participen.

Para remezclar solo necesitas mantener tus UTXOs en la etapa de PostMezcla y dejar Whirlpool en funcionamiento en tu dispositivo móvil o computadora desktop. Si no está en funcionamiento, las UTXOS no se mezclarán en nuevos ciclos y quedarán en la etapa de PostMezcla.

Tres consideraciones que debes tener al gastar tus UTXOs de PostMezcla

  1. No gastes todo tu saldo de PostMezcla en una sola dirección (transacción) de otra de tus billeteras o de tu dispositivo de almacenamiento en frío (hardware Wallet). Esto se conoce como fusión de entradas y deshace por completo las ganancias de privacidad proporcionadas por Whirlpool.
  2. No agrupes (consolides) el cambio tóxico con ninguna de las UTXOs de PostMezcla.
  3. Utiliza las herramientas de PostGasto (Cahoots) que tiene disponible Samourai Wallet, StonewallStowawayStonewallx2, porque proporcionarán entropía adicional a tus gastos.

Conclusiones

  • SamouraiWallet es la única billetera con servicio de CoinJoins qué a día de hoy cuenta con estrategias y herramientas de postgasto.
  • Whirlpool tiene dos cuentas separadas, los UTXOS sin mezclar y los mezclados están en cuentas diferentes.
  • La Primera etapa de la mezcla (Tx0) es de gran importancia porque elimina la posibilidad de que el cambio tóxico participe en la transacción CoinJoin, con lo que se elimina cualquier posible enlace determinista y dificulta el rastreo
  • Whirlpool a diferencia de otros servicios se basa en muchos ciclos CoinJoins pequeños, rápidos y con alta entropía.
  • En Whirlpool no pagas por remezclar, esto significa que la tarifa se diluye mientras más remezclas y aumentas el set de anonimato de tus monedas.
  • En Whirlpool la tarifa se paga en la primera etapa (Tx0) y puedes remezclar de forma ilimitada (sin cargo adicional) hasta que decidas gastar tus UTXOs.
  • El set de anonimato de tus UTXOs aumenta mientras mayor sea el número de ciclos en el que participan.
  • La liquidez de los pools de denominación media y alta puede no ser la muy alta, aunque viene en aumento.

En un próximo artículo estaré abordando un tema relación con los CoinJoins: Sets de anonimato.

Para usar Whirlpool desktop puedes revisar el artículo de Arkad

Agradecimientos a @ErgoBTC que me ayudó a entender el concepto de Entropía.

«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