???? Respuesta rápida: CoinJoin
Básicamente el CoinJoin es un técnica/protocolo que se basa en mezclar diversas transacciones de forma que se puedan mejorar los niveles de privacidad de las mismas dentro de la blockchain.
¿Qué es un CoinJoin de Bitcoin?
El anonimato y la privacidad sobre la gestión de activos son algunos incentivos que atraen a un gran número de usuarios al sector de las criptomonedas. No obstante, no debemos olvidar que todas las transacciones en Bitcoin quedan registradas en la blockchain para siempre y es posible realizar un seguimiento de los fondos que mueven dichas transacciones.
El protocolo de Coinjoin permite mejorar la privacidad y el anonimato de los usuarios de Bitcoin mediante un método que consiste en unificar todas las transacciones de entrada y salida de numerosos usuarios que pactan en realizar una transacción conjunta, de tal modo que la persona que esté observando una transacción recibida en una de sus billeteras ni siquiera podría decir de donde provienen esos fondos.
El proceso de Coinjoin puede ayudarnos a proteger nuestra identidad ante posibles ataques cibernéticos por parte de hackers que utilizan sus herramientas para asociar nuestras direcciones o transacciones a nuestra identidad personal, ya que por lo general muchos usuarios utilizan una billetera con la medida de KYC (Know Your Customer) cómo entrada de su capital al mercado de criptomonedas, así que puede ser relativamente fácil encontrar la identidad del usuario rastreando sus posteriores movimientos.
Es una forma de desvincular nuestros movimientos en la blockchain a las anteriores transacciones que hayamos realizado con otra de nuestras direcciones.
Antes de existir este concepto podíamos encontrar opciones muy similares para garantizar nuestra privacidad, como es el caso de los Mixers, que realizaban el mismo proceso de un Coinjoin pero de forma centralizada.
Un usuario se encargaba de recoger las numerosas transacciones de varios usuarios que pactaron en participar en el proceso, y era este usuario el que se encargaba de unificar todas las transacciones y finalmente distribuirlas de forma equitativa a sus direcciones de destino.
La persona o entidad que realizaba este proceso se llevaba una parte de las tarifas cobradas en la red, pero podríamos estar expuestos a posibles estafas o retiros de nuestro capital, por esto se creó el protocolo de Coinjoin, de forma autónoma y descentralizada.
En agosto de 2013 Gregory Maxwell publicó un artículo en BitcoinTalk donde detallaba el proceso y el funcionamiento del protocolo Coinjoin, que además no implicaba la modificación en el protocolo de Bitcoin. Para realizar el proceso de Coinjoin podemos utilizar los protocolos que encontramos en Wasabi wallet, Samourai wallet o JoinMarket.
¿Cómo funciona el CoinJoin?
Para que el proceso de Coinjoin sea posible es necesario que varias direcciones con fondos establezcan una participación colectiva en una misma transacción. La transacción del Coinjoin recoge las entradas de cada dirección, las combina en una sola transacción mezclando las firmas de cada una de estas transacciones, y luego combina todas las salidas en una misma transacción.
Ejemplo:
Pedro y Ana deciden participar en la misma transacción de Coinjoin, así que cada uno realiza una transacción de entrada (Input) y el protocolo une estas dos transacciones y emite nuevas transacciones de salida (Output) mezcladas a nuevas direcciones bajo el control de Pedro o Ana, sin tener la posibilidad de saber cuál de estas transacciones de salida pertenece a cada usuario.
En el caso de una transacción tradicional podríamos observar qué movimientos y hacia qué direcciones han ido los fondos de Pedro o Ana, y en cuál de ellas se encuentran sus fondos. Pero en una transacción de Coinjoin solo vemos una sola transacción con múltiples entradas y salidas, por lo que no podemos encontrar las direcciones de destino de sus fondos.
Para aumentar el nivel de anonimato y realizar un Coinjoin de manera correcta, el protocolo se encarga de distribuir las mismas cantidades de bitcoin pactadas en cada una de sus transacciones de salida. De este modo, independientemente de la cantidad de bitcoins en nuestras entradas, sería imposible determinar cuál de todas las salidas pertenecen a una dirección del mismo usuario, ya que las salidas fueron todas con cantidades iguales y distintas a sus entradas.
Ejemplo:
En la imagen observamos el proceso de Coinjoin mediante la wallet de Wasabi. Como vemos las personas (P1,P2,P3,P4) que quieren participar en un Coinjoin realizan sus transacciones de entrada con cantidades diferentes y recibirán la misma cantidad de 0,1 BTC en sus respectivas direcciones de vuelta, es decir, la persona 2 (P2) enviará 0,2 BTC en una sola transacción de entrada (Input) y recibira dos transacciones de salida (Output) de 0,1 BTC en direcciones distintas para cada una, bajo su control.
En el caso de la persona 1 (P1) tendrá una transacción de cambio de 0,08 BTC, ya que es el sobrante de la cantidad a distribuir del Coinjoin de 0,1 BTC, qué recibirá en otra de sus nuevas direcciones. Al observar que el Input de esta persona fue de 0,18 BTC es posible determinar que la dirección que recibió el Output de 0,08 BTC sobrantes del Coinjoin pertenece a la persona 1. Es algo que debemos de tener en cuenta antes de enviar cierta cantidad de bitcoins a una dirección de Coinjoin.
Si quieres más información como ésta, únete a nuestro canal de Telegram:
¿Qué son las UTXO en Bitcoin?
Bitcoin no es un activo tangible, por lo que la distribución de su valor consiste en la transmisión de transacciones de unas direcciones a otras mediante el esquema de las UTXO (Unspent transactions Outputs).
Todas estas transacciones quedan registradas en la blockchain como un gran libro distribuido de contabilidad en el que se registran todos los Hash de las transacciones con sus entradas (Inputs) y salidas (Outputs).
En el caso de Bitcoin, cuando nosotros recibimos una cantidad de bitcoin ésta queda registrada en un mismo Input en nuestra dirección. Si nosotros queremos enviar cierta cantidad que recibimos de ese Input lo que hará el protocolo de Bitcoin será emitir 2 Outputs, uno hacia la dirección de destino con la cantidad que queremos enviar, y otro hacia una dirección de cambio bajo nuestra custodia.
Ejemplo:
Si nosotros recibimos 1 BTC en una misma entrada y queremos enviar 0,8 BTC a otra dirección, la transacción contará con dos salidas, los 0,8 BTC hacia el destinatario, y los 0,2 BTC hacia nuestra dirección de cambio. En la imagen vemos también una transacción de 0,002 BTC desde un Input de 0,007 BTC con un Output de cambio de 0,005 BTC.
Errores que debes evitar en un CoinJoin
No es oro todo lo que reluce, realizar un Coinjoin con nuestros activos puede conllevar un riesgo, debemos realizarlo de forma correcta tanto antes como después del proceso.
Para evitar un posible análisis de nuestros movimientos y aumentar el nivel de privacidad es recomendable utilizar la billetera de Samourai para crear distintos tipos de direcciones con las que realizar varios saltos con nuestras criptomonedas antes de enviar la cantidad total a una dirección de Coinjoin. De esta manera realizaremos diferentes Inputs a diferentes direcciones de Coinjoin con cantidades distintas.
Nunca debemos agrupar las cantidades recibidas del Coinjoin (Outputs) en una misma dirección final, ya que así el proceso de Coinjoin perdería sentido y estaríamos más expuestos a un análisis en la blockchain. La agrupación de varios Outputs, hacia una misma dirección final, que han participado en un Coinjoin podría demostrar que ésta última dirección que recibió los fondos es propiedad de la misma persona que realizó un Input con la misma cantidad de bitcoins, desclasificando aquellas direcciones que enviaron una cantidad menor a la cantidad final, durante el Coinjoin, cómo vemos en la imagen con la persona 3 (P3).
Es posible que algunos exchanges centralizados puedan cancelar nuestras transacciones a una dirección de Coinjoin aunque no tengamos la medida de KYC en nuestra billetera, esto lo hacen como medida de seguridad anti blanqueo de capitales y no suelen ser muy partícipes de este proceso. Por esta misma razón tampoco debemos participar en ningún movimiento hacia el Coinjoin desde una billetera con el KYC activado, ya que esto podría exponer nuestra identidad durante el proceso.
Uno de los riesgos más comunes es la posibilidad de adquirir Bitcoins manchados provenientes de una adquisición ilícita por parte de otro usuario durante el proceso de intercambio de criptomonedas en el Coinjoin. Algunos exchanges pueden detectar estos Bitcoins manchados y cancelar su depósito en alguna de sus direcciones. También podría vincular de forma errónea el robo de los activos a nuestra identidad.
Te puede interesar…