Contenido
- Introducción
- ¿Qué es el Coin Mixing?
- ¿Qué es una CoinJoin?
- ¿Cómo funciona una CoinJoin?
- Privacidad a través de la denegación
- Conclusión
Introducción
¿Qué es el Coin Mixing?
La seguridad y el anonimato de estos servicios centralizados son, por supuesto, cuestionables. Los usuarios no tienen ninguna garantía de que su dinero les será devuelto por el mixer, o que las monedas retornadas no estarán de algún modo "manchadas". Otro aspecto adicional a considerar al utilizar un mixer, es que las direcciones IP y de Bitcoin pueden ser registradas por un tercero. En definitiva, los usuarios ceden el control de sus fondos, esperando recibir a cambio otros que no estén vinculados.
Ahora bien, existe un enfoque presumiblemente más interesante bajo la forma de las llamadas transacciones CoinJoin -las cuales generan un grado significativo de "negación plausible". Lo que esto significa es que después de una CoinJoin ninguna evidencia puede vincular a un usuario con sus transacciones previas. Muchas soluciones de tipo CoinJoin ofrecen una alternativa descentralizada a los mixers. A pesar de que un coordinador puede verse involucrado en las mismas, los usuarios no necesitan sacrificar la custodia de sus fondos.
¿Qué es una CoinJoin?
Las transacciones de Bitcoin están compuestas por inputs y outputs. Cuando un usuario quiere realizar una transacción, toma sus UTXOs como inputs, especifica los outputs y firma los inputs. Es importante señalar que cada input se firma de manera independiente, y que los usuarios pueden establecer múltiples outputs (que se dirijan a direcciones distintas).
Si nos fijamos en una transacción concreta, compuesta por cuatro inputs (de 0.2 BTC cada uno) y dos outputs (de 0.7 y 0.09 BTC), podemos hacer una serie de suposiciones distintas. La primera es que nos encontramos ante la realización de un pago –el emisor está enviando a alguien uno de los outputs, y recibiendo de vuelta una parte como cambio. Dado que se han utilizado cuatro inputs, el output más grande es probable que sea para el destinatario. Cabe señalar que en los outputs faltarían 0.01 BTC -se trataría de la comisión pagada al minero.
También es posible que el remitente quiera crear un UTXO grande a partir de los más pequeños, de modo que consolide entradas más pequeñas para obtener el resultado deseado de 0.7 BTC.
Otra suposición que podemos hacer se basa en el hecho de que cada entrada se firma de forma independiente. Esta transacción podría tener hasta cuatro partes diferentes que firman las entradas. Y ahí radica el principio que hace que CoinJoining sea efectivo.
¿Cómo funciona una CoinJoin?
La idea es que múltiples partes se coordinarán para crear una transacción, cada una de las cuales proporcionará entradas y salidas deseadas. Como todas las entradas se combinan, resulta imposible decir con certeza qué salida pertenece a qué usuario. Considera el siguiente diagrama:
Aquí, tenemos cuatro participantes que desean romper el vínculo entre las transacciones. Se coordinan entre ellos (o por medio de un coordinador dedicado) para anunciar las entradas y salidas que les gustaría incluir.
El coordinador tomará toda la información, la elaborará en una transacción y hará que cada participante firme antes de transmitirla a la red. Una vez que los usuarios han firmado, la transacción no se puede modificar sin que se invalide. Por lo tanto, no hay riesgo de que el coordinador se escape con los fondos.
Pero incluso eso de ninguna manera está garantizado. ¿Quién puede decir, al mirar la transacción anterior, que hay cuatro participantes? ¿Esta persona está enviando sus fondos a cuatro de su propia dirección? ¿Dos personas que realizan dos compras separadas y devuelven 0.2 BTC cada una a sus propias direcciones? ¿Cuatro personas enviando a nuevos participantes, o de regreso a sí mismos? No podemos estar seguros.
Privacidad a través de la negación
El hecho mismo de que existan implementaciones de CoinJoin es suficiente para poner en duda los métodos utilizados para analizar las transacciones. Puedes deducir que se ha producido un CoinJoin en muchos casos, pero aún no sabe quién es el propietario de los resultados. A medida que crecen en popularidad, la suposición de que todas las entradas son propiedad del mismo usuario se debilita, un salto masivo para la privacidad en el ecosistema más amplio.
Conclusión
Para aquellos que confían en la integridad y la metodología de terceros, la combinación de servicios es una solución fácil. Para aquellos que prefieren una alternativa verificable y sin custodia, las alternativas de CoinJoin son superiores. Esto se puede hacer a mano para usuarios con conocimientos técnicos, o mediante el uso de herramientas de software que abstraen los mecanismos más complejos. Ya hay un puñado de estas herramientas que solo continúan creciendo en popularidad a medida que los usuarios luchan por una mayor privacidad.