Saltar al contenido

Cómo instalar y utilizar Whirlpool Stats Tools (WST) para los cálculos de los sets de anónimato de las transacciones CoinJoins

Este artículo/tutorial es nivel avanzado, si eres un usuario que utiliza los servicios de Coinjoin y necesitas conocer el valor del set de anonimato de tus UTXOs. Aqui te mostraré cómo saberlo, instalando y utilizando la herramienta estadística de Whirlpool (WST)

En un artículo anterior te expliqué qué son los set de anonimato de en una transacción CoinJoin y cómo se determinan según la implementación que utilices . En el caso de Whirlpool de Samourai Wallet no existe a día de hoy una manera de saber en tiempo real qué valor de set de anonimato adquiren tus monedas a medida que participan en nuevos ciclos de remezcla, y es clave saberlo, porque de acuerdo a ese resultado es que puedes tomar una decisión de qué hacer, si es suficiente el anonimato para gastar, enviar tus monedas a un hardaware wallet o por el cotrario si debes participar en nuevos ciclo de remezcla. Si una cantidad considerable de tus monedas se están remezclando no te será sencillo saber el numero de ciclos en los que han participado, lo que te puede llevar a cometer errores al realizar un gasto de postmezcla. La solución eficiente a esto es utilizar la herramienta estadística de Whirlpool (WST) creada por los desarrolladores de SamouraiWallet.

¿Qué es Whirlpool Stats Tools (WST)?

Es una herramienta de código abierto que puedes ejecutar en tu PC con la interfaz de línea de comandos. WST automatiza el proceso de descarga de la información necesaria para generar los gráficos de las transacciones CoinJoin realizadas con Whirlpool, además de que, ejecuta los cálculos de los sets de anonimato (retrospectivo y prospectivo) y te muestra los resultados de manera consolidada.

Características Principales

  • Se descarga desde OXT la información (instantáneas) de las transacciones según la piscina de mezcla que has seleccionado (las instantáneas son actualizadas diariamente).
  • Para mayor privacidad, las descargas se realizan a través de SOCKS5 y es necesario Tor Browser.
  • Elabora cálculos de las métricas para cada pool de mezcla.
  • Genera gráficos dinámicos para cualquier instantánea descargada.
  • Te permite visualizar las métricas de los sets de anonimato para una transacción ConJoin almacenada.

Métricas Disponibles en WST

Set de anonimato

Set de anonimato retrospectivo (visión al pasado)

El set de anonimato retrospectivo de una UTXO (monedas), es el número de Tx0 (bloques amarillos) antepasadas que están vinculadas con la transacción en la que participa dicha UTXO. El vínculo lo establecen los UTXOs de ReMezcla (bloques verdes).

El UTXO de remezcla establece cuales son los Tx0 ancestros de la transacción evaluada (la de BOB, ALICE, STAICY y SEAN) hasta llegar a la mezcla génesis (Tx0 ancestros = 51).

Set de anonimato Prospectivo (visión de futuro)

El set de anonimato prospectivo de un UTXO, se define como el número de UTXOs (no remezclados) que se obtienen luego de la transacción CoinJoin.

El set de anonimato prospectivo siempre comienza con 5 inmediatamente después de una mezcla completa. Después de que 1 compañero participe en una transacción Remix, el set de anonimato prospectivo se actualiza a 9.

Requerimientos previos

Debes tener instalado:

  • Tor Browser.
  • git
  • Python 3.4.4 o superior.
  • pip3

Puedes consultar la versión de la siguiente forma:

Dependencias necesarias:

  • PySocks
  • requests[socks]
  • plotly 4.1.0 o superior.

Para instalar estas dependencias solo deberás aplicar los siguientes comandos:

pip install PySocks
pip install requests[sock5]
pip install plotly

Instalación de WST

1- Descarga la carpeta “whirlpool_stats-master”

  • Deberás ir al Github “Samourai-Wallet / whirlpool_stats” . Accede al enlace marcado para descargar la carpeta whirlpool_stats-master.
  • Una vez allí, debes descargar la carpeta whirlpool_stats-master dependiendo de tu sistema operativo.
  • Extrae la carpeta whirlpool_stats-master, la ubicación de esta carpeta no es importante (puedes extraerla en “Descargas”).

2- Crea una carpeta para que se almacenen las instantáneas que serán descargadas desde OXT

  • Puedes crear una carpeta con cualquier nombre y ubicación, lo importante es tener la ruta exacta. Para este ejemplo el nombre será whirlpool y la ruta será C:\Users\Peter\Downloads\whirlpool.

3- Instalación manual

  • Deberás abrir la interfaz de líneas de comandos e ingresar las siguientes instrucciones:
Imagen tomada del GitHub de Samourai wallet

¡Listo! Whirlpool Stats Tools ha quedado instalado.

Uso de WST

1- Inicia una sesión de WST

  • Deberás ingresar en la interfaz de líneas de comando la siguiente instrucción:
Imagen tomada del GitHub de Samourai wallet

2- Accede a la ayuda

  • Para acceder la interfaz “ayuda” de WST, para lo que debes ingresar el siguiente comando:
Imagen tomada del GitHub de Samourai wallet

Tendrás las opciones: descargar, exportar, ayuda, cargar, trazar, salir, puntaje, socks5 y workdir

3- Configura el proxy Socks5 antes de descargar datos de OXT

  • Deberás ingresar el siguiente comando:
Imagen tomada del GitHub de Samourai wallet. “Nota: el puerto SOCKS predeterminado es 9150 para Tor Browser Bundle y 9050 para el Tor Expert Bundle”.

4- Cambia el directorio de trabajo para la sesión WST

  • Deberás ingresar el comando workdir y luego de un espacio colocar la ruta de la carpeta que creaste en paso (2) del apartado instalación. Para este ejemplo la ruta es: C:\Users\Peter\Downloads\whirlpool
Imagen tomada del GitHub de Samourai wallet.

5- Descarga en el directorio de trabajo una instantánea para cualquiera de las piscinas de mezcla.

  • Para este ejemplo se descargará una instantánea de la piscina de 0.5 BTC, debes abrir tu explordor Tor Browser y colocar el siguiente comando:
Imagen tomada del GitHub de Samourai wallet.
debes abrir el explorador Tor Browser, si no te saldra un error y no se descargará la instantánea

Si accedes a la carpeta “whirpool” que creaste verás los siguientes archivos:

6- Carga y calcula las estadísticas para la instantánea descargada

  • Deberás ingresar el siguiente comando para cargar la instantánea.
Imagen tomada del GitHub de Samourai wallet.

7- Genera un gráfico para una métrica dada de la instantánea activa (por ejemplo: set anonimato prospectivo)

  • Deberás ingresar el comando plot fwd anonset. el gráfico se cargará en el explorador que tengas configurado como predeterminado.
Imagen tomada del GitHub de Samourai wallet.

Gráfico generado:

8- Obtén las métricas calculadas para una transacción almacenada en la instantánea activa. Set de anonimato prospectivo y retrospectivo.

  • Deberás ingresar el comando score seguido del ID de la transacción que deseas evaluar. El ID debe corresponder con la denominación de la piscina de mezcla que has cargado. Para este ejemplo el ID corresponde a la piscina de 0.5BTC: 4e72519d391ce83e0659c9022a00344bedbb253de1747cf290162b3d3ea51479

8- Obtén las métricas calculadas para una transacción almacenada en la instantánea activa. Set de anonimato prospectivo y retrospectivo.

  • Deberás ingresar el comando score seguido del ID de la transacción que deseas evaluar. El ID debe corresponder con la denominación de la piscina de mezcla que has cargado. Para este ejemplo el ID corresponde a la piscina de 0.5BTC: 4e72519d391ce83e0659c9022a00344bedbb253de1747cf290162b3d3ea51479
Imagen tomada del GitHub de Samourai wallet.
Set de anonimato Restrospectivo y Set de anonimato Prospectivo.

9- Salir de WST

  • Deberás ingresar el comandoquit para salir de WST
Imagen tomada del GitHub de Samourai wallet.

10- Descarga en el directorio de trabajo las instantáneas para una piscinas de mezcla específica.

  • Para la piscina de 0.5 BTC el comando de descarga es download 05
  • Para la piscina de 0.05 BTC el comando de descarga es download 005
  • Para la piscina de 0.01 BTC el comando de descarga es download 001

Para cualquier piscina el procedimiento y los comandos son iguales a los descritos.

Consideraciones

  • Una vez que tu UTXO de postmezcla abandona la piscina de Whirlpool (al ser gastada) los puntajes de los sets de anonimato ya no son aplicables. Es por tal motivo que mantener tu UTXO remezclandose hasta realizar un gasto real es importante. 
  • Usar una billetera como Samourai wallet que pone énfasis en el gasto postmix con las herramientas cahoots es vital para mantener los beneficios de privacidad que obtienes con el CoinJoin.
  • Por lo general los usuarios envían sus monedas de postmezcla a un almacenamiento en frio en un hardware wallet (hww), básicamente por motivos de seguridad, pero, esta no una estrategia acertada en términos de set de anonimato, porque una vez que envías tu UTXO de postmezcla a tu hww pagas el fee de minería por la transferencia lo que modifica el monto de la UTXO, y por consiguiente su set de anonimato (no tendrá las mismas características que las monedas de la multitud que participo en el CoinJoin).
  • En un próximo artículo te explicaré una mejor estrategia para mantener tus monedas de postmezcla en un almacenamiento en frio sin degradar el set de anonimato que han conseguido con el CoinJoin de Whirlpool.

Referencias

https://github.com/Samourai-Wallet/whirlpool_stats

Creadores de WST

@LaurentMT 

@SamouraiDev


Artículo escrito por P_hold

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