El protocolo de Bitcoin (BTC) permite a sus usuarios realizar transacciones pseudoanónimas. La privacidad es uno de los elementos centrales de la creación de Satoshi Nakamoto, entidad anónima que dio a conocer la criptomoneda. Sin embargo, dado que su registro es público y verificable, este elemento puede perderse.

Y es que con el crecimiento económico Bitcoin y su intercambio por monedas nacionales, han emergido nuevos servicios que han ido mellando estas características, al solicitar a los clientes identificarse completamente, haciendo que determinados bitcoins pseudónimos se vuelvan atribuibles a una identidad legal gracias a las medidas de Conoce tu Cliente (KYC) y Contra el Lavado de Dinero (AML).

En este artículo hablaremos de CoinJoin, un método de envío de BTC que busca retomar la privacidad que ofrece el protocolo pese al crecimiento de estos servicios y a la irrupción de empresas especializadas en el análisis de la blockchain de Bitcoin. 

https://lh5.googleusercontent.com/nM7DzCR1mnJDA3g3zEowTX_hZLWjcA51C0bIOeDJL9sIG0cvaP3-6-qDHqy7LXx72Mz_lX9cxc5osxKaYEABKxhVjvLe06_TYXYPlIqTVUQQn1JpN9Bdc65MAT8nObUFuU4BAsgy

Este tipo de transacciones no requiere un cambio en el protocolo, a diferencia de otras mejoras para mejorar la privacidad que se espera sean añadidas. A través de una combinación matemática externa, se puede crear una transacción que ayuda a mejorar la privacidad.

Como veremos, CoinJoin sencillamente aprovecha el hecho de que en cada transacción de Bitcoin debe haber al menos 1 entrada o input (una UTXO bajo el control de ese usuario) y al menos 2 salidas u output (una con el envío al destinatario y otra con lo que sobra de la UTXO-el total enviado).

¿Qué pasa si añadimos N entradas en una transacción colectiva antes de gastar nuestras UTXO? CoinJoin responde esta pregunta.

¿Qué es CoinJoin?

El principio básico de CoinJoin es que los usuarios puedan combinar múltiples entradas de pago (preferiblemente del mismo monto), para realizar una transacción común de la que, una vez transmitida a la blockchain, no puede saberse el origen individual (cada participante) ni el destino (la dirección a la que cada usuario envía la UTXO que recibe de la mezcla). Solo pueden conocerse los montos transferidos.

No hay forma de saber qué bitcoins fueron enviados a dónde; inclusive, ni los destinatarios de la transacción sabrán desde qué direcciones se les pagó concretamente. Los desarrolladores de este tipo de servicio acuerdan el tamaño de las UTXO y de las salidas que deben ser pagadas, de manera que la transacción final tendría N salidas de ese mismo monto. Todos los participantes deben firmar la transacción donde se agrupan los fondos (algo que hace el monedero de manera automática) antes de transmitirse. Dado que es imperativa esta firma, al hacer CoinJoin no hay riesgo de robo.

Podemos ilustrarlo así:

Imaginemos que 4 usuarios de oro quieren mover 100 gr. de oro que cada uno tiene; pero quieren hacerlo de manera privada, de forma tal que el gobierno no pueda confiscar el botín. Deciden tener una fundición común, aunque no coordinada, en la que cada uno añadirá 100 gr. de oro a la fundición, y retirará una cantidad igual tras el proceso. Todos acuerdan que deben recibir una pieza producto de la fundición, y sin su consentimiento personal no puede realizarse esta entrega. Además, por los servicios, los encargados de la fundición recibirán una pequeña cantidad del oro, de manera que cada nueva pieza tiene un peso de 99 gr. Se acuñan las nuevas 4 piezas y se envían de nuevo a su destinatario.

Como hemos dicho, este tipo de transacciones no requieren una modificación en el protocolo de Bitcoin y, de hecho, es una solución que ha estado disponible prácticamente desde el principio de Bitcoin.

El 22 de agosto de 2013, el desarrollador y colaborador de Bitcoin Core, Greg Maxwell, el primero en publicar un artículo con una explicación técnica, daba cuenta el principio de las firmas independientes de las entradas de cada usuario de la siguiente forma:

“Las firmas, una por entrada, dentro de una transacción son completamente independientes entre sí. Esto significa que es posible que los usuarios de Bitcoin acuerden un conjunto de entradas para gastar y un conjunto de salidas para pagar, y luego firmar una transacción individual y por separado y luego fusionar sus firmas. La transacción no es válida y la red no la aceptará hasta que se proporcionen todas las firmas, y nadie firmará una transacción que no sea de su agrado.”

Principales servicios o productos para utilizar CoinJoin

Existen más de 15 diferentes implementaciones de CoinJoin, que ofrecen distintos planteamientos para crear este tipo de transacciones, comentaremos Whirpool, de Samourai Wallet, Wasabi Wallet y JoinMarket, dado que son los que presentan la mayor liquidez de este tipo de servicios.

-JoinMarket

Lanzada el 1 de septiembre de 2015, JoinMarket es uno de los servicios de CoinJoin más reconocidos del ecosistema de Bitcoin. La idea era crear un mercado de ofertas de CoinJoin, de manera que los usuarios pudieran encontrar otros usuarios interesados en hacer este tipo de transacciones para juntar sus UTXO. El incentivo para proveer esta liquidez era ganar una pequeña comisión gracias a la realización de la transacción.

Te puede interesar: Arrestan al CEO de Ninja Coin por presunto lavado de USD 311 millones con las herramientas de privacidad de Bitcoin

“JoinMarket funciona creando un nuevo tipo de mercado que asignaría estos recursos de la mejor manera. Un grupo de participantes (llamados creadores de mercado) siempre estará disponible para participar en CoinJoins en cualquier momento. Otros participantes (llamados tomadores del mercado) pueden crear un CoinJoin en cualquier momento. Los tomadores pagan una tarifa que incentiva a los fabricantes. Se crea una forma de contrato inteligente, lo que significa que las claves privadas nunca se transmitirán fuera de su computadora, lo que resulta en un riesgo de pérdida prácticamente nulo”, se lee en su repositorio de GitHub.

Uno de los elementos centrales de JoinMarket es que no hay posibilidad de rastrear las comisiones recibidas por el servicio, puesto que no existe un coordinaror de comisiones dentro del servicio, lo que hace aún más difícil saber cuando una transacción proviene de este mercado de CoinJoin.

Es importante señalar que este monedero, de los más populares en el mercado de este tipo de servicios, ganó un premio de financiamiento propuesto por Maxwell, un reconocido forista y conocedor de Bitcoin pseudónimo llamado Theymos y el desarrollador de Bitcoin Core, Pieter Wuile.

-Whirpool

Creado por los desarrolladores de Samourai Wallet en 2019, este servicio es uno de los más populares, junto con Wasabi. Un elemento llamativo de Whirpool es que en vez de enfocarse en un ciclo de CoinJoin con varios participantes, utiliza las UTXO de estos usuarios para hacer pequeños CoinJoins antes de que los satoshis estén listos para gastar. Esto hace que haya menos posibilidad de establecer nexos entre los fondos, añadiendo más niveles de entropía con cada nuevo salto. Cada ciclo se puede interpretar 1,496 formas diferentes, como explican en su web.

“Whirlpool es un marco respaldado por una colección de herramientas de software que disocia matemáticamente la propiedad de las entradas a las salidas en una transacción de bitcoin dada. Esto es para aumentar la privacidad de los usuarios involucrados, proteger contra la vigilancia financiera y aumentar la fungibilidad de la red de Bitcoin en su conjunto”, se lee en su GitHub.

Te puede interesar: El mezclado de bitcoins llegó a los teléfonos móviles

A finales de febrero de 2020, los desarrolladores publicaron la versión 0.99.9 de su monedero que, entre otras actualizaciones, añadió una versión móvil de Whirpool, haciendo que las transacciones CoinJoin estén al alcance de la mano de cualquier usuario de Android, y puede ser utilizado con Tor, para mayor rendimiento de privacidad; además Samourai tiene Stonewall, un tipo de transacciones que simulan una CoinJoin con UTXO del mismo usuario.

-Wasabi

Wasabi está enfocada en la versión de escritorio. Se trata de un monedero para Bitcoin que también implementa CoinJoin para ofuscar las direcciones de destino. Este monedero, como Samourai, tiene un enfoque especialmente fuerte en la privacidad y como JoinMarket, fue merecedor de una cantidad importante de recursos para continuar su desarrollo.

Para ayudar a darle más privacidad a la herramienta, todo el tráfico de Wasabi se hace a través de Tor, y el usuario no debe configurarlo, aunque, si lo desea, puede desactivarlo (lo que en contextos de baja conectividad, podría hacer que la navegación sea más rápida).

“Puedes desactivar Tor en la Configuración. Tenga en cuenta que en este caso aún es privado, excepto cuando se une a un CoinJoin, y cuando transmite una transacción. En el primer caso, el coordinador conocería los enlaces entre sus entradas y salidas en función de su dirección IP. En el segundo caso, si transmite una transacción suya a un nodo completo que lo está espiando, sabrá el vínculo entre su transacción y su dirección IP”, se lee en su FAQ.

Este es un panorama general sobre CoinJoin, qué es, cómo funciona y algunos servicios en los que está disponible. El objetivo central de este tipo de transacciones es añadir privacidad a las mismas. Sin embargo, cabe recordar que algunos usuarios han tenido problemas para movilizar sus fondos desde servicios centralizados como Binance por estar relacionados con proveedores de este tipo de transacciones. Esta polémica la atenderemos.

Sigue leyendo: