Introducción

Bitcoin a menudo se llama dinero digital, pero esta es una comparación dudosa. Si Alice le paga a Bob diez dólares en efectivo, Bob no tendrá idea de dónde proviene ese dinero. Si más tarde se los devuelve a Carol, ella no sabrá que Alice alguna vez tuvo ese dinero.

Bitcoin se caracteriza por su naturaleza abierta. La historia de cualquier moneda (más precisamente, la salida de transacciones no gastadas o UTXO) puede ser fácilmente revisada por cualquiera. Este concepto es similar al registro de la suma de la transacción y los nombres de las partes en cada transacción.

Aun así, el hecho de que la dirección pública sea seudónima garantiza que la identidad del usuario no se revele fácilmente. Pero Bitcoin no es completamente privado. El análisis de la cadena de bloques se vuelve cada vez más sofisticado y capaz de vincular direcciones con datos personales de manera más eficiente. Junto con otros métodos de rastreo, algunas organizaciones pueden desanonimizar a los usuarios de criptomonedas. Para evitarlo, con el tiempo surgieron tecnologías para romper el vínculo entre transacciones.


¿Qué es la mezcla de monedas?

En un sentido amplio, la mezcla de monedas puede significar cualquier actividad relacionada con enredar el historial de fondos y reemplazar sus datos. Sin embargo, en el ámbito de las criptomonedas, la mezcla de monedas suele referirse a un servicio ofrecido por un tercero. Por lo general, los proveedores de servicios toman las monedas del usuario (y una pequeña comisión) y devuelven monedas que no están vinculadas a las enviadas. Estos servicios también se conocen como mezcladores o tumblers.

La seguridad y el anonimato de esos servicios centralizados, por supuesto, están en duda. Los usuarios no tienen garantías de que recuperarán sus fondos ni de que no serán perjudicados de alguna manera. Además, al usar un mezclador, conviene tener en cuenta que las direcciones de propiedad intelectual y Bitcoin pueden ser registradas por un tercero. Como resultado, los usuarios renuncian al control sobre sus fondos, esperando recibir fondos no vinculados.

Existe un enfoque más interesante en forma de transacciones CoinJoin, que brindan un mayor grado de confidencialidad. Es decir, después de CoinJoin no se pueden encontrar pruebas que vinculen con certeza al usuario con sus transacciones anteriores. Muchas soluciones CoinJoin son una alternativa descentralizada a los mezcladores. Aunque en el esquema pueda haber un coordinador, los usuarios no necesitan renunciar a custodiar sus fondos.


¿Qué es CoinJoin?

Las transacciones CoinJoin fueron propuestas originalmente por el desarrollador de Bitcoin, Gregory Maxwell, en 2013. Dio una breve descripción de cómo se estructuran este tipo de transacciones y de cómo se puede lograr un aumento del nivel de confidencialidad sin cambiar el protocolo.

La idea de CoinJoin es combinar fondos de varios usuarios en una sola transacción. Antes de explicar cómo (y por qué), veamos la estructura de la transacción básica.

Las transacciones de Bitcoin se componen de entradas y salidas. Cuando un usuario quiere realizar una transacción, toma sus UTXO como datos de entrada, especifica los datos de salida y firma los datos de entrada. Es importante recalcar que cada entrada se firma de forma independiente y que los usuarios pueden indicar múltiples salidas (para retirar a direcciones distintas).


зображення прикладу транзакції з чотирма входами і двома виходами


Si observamos esta transacción, compuesta por cuatro entradas (0,2 BTC cada una) y dos salidas (0,7 BTC y 0,09 BTC), podemos hacer varias suposiciones diferentes. En primer lugar, observamos cómo se realiza el pago: el remitente envía fondos a alguien y se devuelve una parte. Como se usan cuatro entradas, la salida más grande probablemente está destinada al destinatario. Tenga en cuenta que en las salidas no hay 0,01 BTC; esa es la recompensa del minero.

También es posible que el remitente quiera crear un UTXO grande a partir de otros más pequeños, así que combina entradas más pequeñas para lograr el resultado deseado de 0,7 BTC.

Otra suposición que podemos hacer es que cada entrada está firmada por separado. Esta transacción puede tener hasta cuatro partes diferentes que firman las entradas. Y en eso reside el principio que hace que CoinJoin sea efectivo.


¿Cómo funciona CoinJoin?

La idea es que participen varias partes en la transacción, aportando fondos e indicando la salida deseada. Como las entradas se combinan, se vuelve imposible decir con precisión qué entrada pertenece a qué usuario. Veamos el esquema a continuación:


зображення прикладу coinjoin


Aquí tenemos cuatro participantes que quieren romper el vínculo entre transacciones. Se unen entre sí (o mediante un coordinador especial) para anunciar las entradas y salidas que les gustaría activar. 

El coordinador recibe toda la información, incluye los datos en la transacción y cada participante la firma antes de enviarla a la red. En cuanto los usuarios la confirman, la transacción puede modificarse sin volverse inválida. Por lo tanto, no hay riesgo de que el coordinador huya con los fondos. 

Esa transacción sirve como una especie de caja negra para mezclar monedas. Recuerde que destruimos efectivamente UTXO para crear uno nuevo. El único vínculo entre el UTXO antiguo y el nuevo que tenemos es la transacción en sí, pero no podemos distinguir a sus participantes. En el mejor de los casos, podemos decir que un participante proporcionó una de las salidas y que posiblemente es el nuevo propietario de la salida final.

Pero incluso eso no está garantizado. ¿Quién diría, al observar la transacción anterior, que hay cuatro participantes? ¿Puede ser que una sola persona envíe sus fondos a cuatro direcciones? ¿O quizá dos personas realicen dos compras separadas y devuelvan 0,2 BTC cada una a su propia dirección? ¿O dos personas realizan dos compras separadas y devuelven 0,2 BTC a sus propias direcciones? No podemos estar seguros.


Confidencialidad por negación

El mero hecho de que exista una implementación de CoinJoin es suficiente para poner en duda los métodos usados para analizar transacciones. En la mayoría de los casos, puede entender que se utilizó CoinJoin, pero no puede saber a quién se enviaron los fondos. Con el aumento de popularidad de CoinJoin, las suposiciones de que los datos de entrada pertenecen a un solo usuario se volvieron injustificadas, lo que condujo a un aumento masivo y abrupto de la confidencialidad del ecosistema.

Dijimos que la transacción del ejemplo anterior tenía un conjunto de anonimato de cuatro entradas, cuya contraparte podría ser cualquiera de los cuatro participantes involucrados. Cuanto mayor es el conjunto de anonimato, menor es la probabilidad de que las transacciones puedan vincularse con su propietario original. Las nuevas implementaciones de CoinJoin permiten a los usuarios combinar de forma fiable sus datos de entrada con decenas de otros, proporcionando un alto nivel de negación. Recientemente se ejecutó con éxito una transacción con 100 personas.


Pensamientos finales

Las herramientas de mezcla de monedas son una adición importante al arsenal de cualquier usuario que se tome en serio la confidencialidad. A diferencia de las actualizaciones de confidencialidad propuestas (como transacciones confidenciales), nuestras opciones son compatibles con el protocolo actual. 

Para quienes confían en la fiabilidad y la metodología de terceros, una solución sencilla sería usar servicios de mezcla. Para quienes prefieren servicios transparentes y sin custodia, como alternativa encaja CoinJoin. Esto se puede hacer manualmente para usuarios con conocimientos técnicos o mediante herramientas de software que abstraen mecanismos más complejos. Ya existen varias de esas herramientas, y su popularidad solo va en aumento a medida que los usuarios buscan más confidencialidad.