Oddbean new post about | logout
 Aquí vemos tres transacciones independientes. Siendo una de Bob, otra de Alice y otra de Carol. Cada uno de ellos ha creado una transacción en su wallet determinando fees de envio, cantidad a transmitir y dirección de destino donde irán los fondos. 

https://m.primal.net/Ifdf.png 
https://m.primal.net/Ifdg.png 
https://m.primal.net/Ifdd.png 

¿Y si en vez de emitir cada uno su transacción por su cuenta deciden unirlas en una sola haciendo una unión de monedas (coin+join)? 

Esto lo harían sin perder la custodia ni interferir en sus compañeros. Cada uno firma su parte y paga su fee. Por último, se emite la tx.

https://m.primal.net/Ifdj.png 

Esta forma de unión en una sola transacción no aporta nada de privacidad ya que se pueden correlacionar entradas con salidas. Pero que pasaría si decidiesen hacerlo de una forma en la que pudieran obtener privacidad...

https://m.primal.net/Ifds.png 

Bob, Alice y Carol deciden, cada uno, crear una transacción donde se transmita una misma cantidad a una dirección de destino (cada uno elige la suya).  

https://m.primal.net/Ifed.png 

https://m.primal.net/Ifec.png 

https://m.primal.net/Ifee.png 

Así quedaría la transacción cuando unen sus entradas y salidas: 

- Para un observador externo sería muy dificil relacionar las salidas de la misma cantidad con cualquiera de los 3 compañeros.

- En este caso se mantendría una buena privacidad para las salidas de 5 BTC.

https://m.primal.net/IffN.png 

Y todo este proceso se realiza sin perder la custodia de los fondos, sin la capacidad de robar fondos a los compañeros con los que te unes. Cada uno verifica la tx y la firma, para posteriormente emitir la tx.

Este proceso se ha hecho de forma manual, uno de los compañeros coordina todo para que se pueda hacer. Pero es limitado ya que se necesita interacción, cada uno sabe las entradas y salidas de cada uno. Es muy limitado.

¿Qué pasaría si existiera un coordinador que haga el trabajo sucio de mensajero entre varias entidades de forma remota. Y que además fuera ciego, es decir, que no supiera relacionar entradas y salidas. Y que además se basara en un algoritmo que siempre hiciese el mismo proceso?

Pues eso ya existe, y es para eso crearon diferentes implementaciones de coinjoin, ofreciendo servicio y facilitando el proceso a los usuarios.

Hoy en día hay desarrolladores condenados por crear coordinadores para facilitar el proceso a usuarios, que como hemos visto se podría hacer de forma manual.

¿Cómo de ilegal ves esto?
¿Debería Bob ser condenado por ser coordinador junto a sus compañeros en un coinjoin?

¿Es un mixer lo mismo que un coinjoin?
Rotundamente no. En un mixer hay una entidad central que recibe y custodia monedas (UTXOs) de otros y luego los reparte de forma "aleatoria" para intentar "romper" la trazabilidad. 

https://m.primal.net/Ifes.jpg 

Es un servicio con pérdida de custodia, con alta probabilidad de robo y de pérdida de historial (pérdida de privacidad), en la que no se rompe el trazo porque lo que haces es heredar el historial de otra persona (y ceder el tuyo).

En un coinjoin mantienes siempre la custodia, obtienes monedas sin historial previo ya que no se puede asociar con su pasado, manteniendo así una privacidad, algo fundamental y necesario en los pagos, por derecho y por seguridad personal.

Aqui un ejemplo de coinjoin real.

https://m.primal.net/Ifew.jpg 

Podríamos decir que un coinjoin es una transacción cifrada en contraposición con una transacción común de #Bitcoin que es totalmente transparente y rastreable.

En un coinjoin no se mezclan monedas, se UNEN monedas de varios usuarios como ya hemos visto. Son transacciones colaborativas.