la introducción

A menudo se hace referencia a Bitcoin como dinero digital, pero esta comparación es cuestionable. Si Alice paga diez dólares en efectivo, Bob nunca sabrá de dónde salió el dinero. Si luego le daba este dinero a Carol, Carol no sabría que el dinero estaba en posesión de Alice antes de eso.

Bitcoin es diferente por su naturaleza pública. Cualquiera puede monitorear fácilmente el historial de una moneda en particular (o para ser precisos, su resultado de transacciones no gastadas (UTXO). Esto es como escribir el monto de la transacción y los nombres de sus participantes en papel moneda cada vez que se utiliza.

Sin embargo, los alias de direcciones públicas garantizan que las identidades de los usuarios no queden expuestas fácilmente. Pero Bitcoin no es una moneda completamente privada. Los métodos para analizar las redes blockchain son cada vez más sofisticados y pueden rastrear direcciones e identificar identidades con una eficiencia cada vez mayor. Junto con otros métodos de seguimiento, una entidad u organismo puede revelar las identidades de los usuarios de monedas digitales. Para abordar este problema, a lo largo de los años han surgido técnicas para ocultar los vínculos entre transacciones.


¿Qué es la mezcla de monedas?

En general, la mezcla de divisas puede referirse a cualquier actividad que implique ofuscar dinero cambiándolo por otro dinero. Pero en el ámbito de las criptomonedas, la mezcla de monedas se refiere a un servicio proporcionado por un tercero. Los proveedores de servicios normalmente toman las monedas de los usuarios (además de una pequeña tarifa) y les dan monedas que no están relacionadas con las monedas enviadas. Estos servicios también se conocen como servicios de dispersión o servicios de mezcla.

La seguridad y el anonimato de estos servicios centralizados, por supuesto, los hace cuestionables. No se garantiza a los usuarios que sus fondos les serán devueltos por el servicio de mezcla o que las monedas devueltas no estén corruptas de alguna manera. Otro aspecto a tener en cuenta al utilizar servicios combinados es que terceros pueden registrar su dirección IP y las direcciones de su billetera Bitcoin. En última instancia, los usuarios ceden el control de las monedas con la esperanza de que se les devuelvan monedas imposibles de rastrear.

Otro método que algunos encuentran más interesante son las transacciones CoinJoin, que crean un alto grado de duda razonable sobre el origen de las monedas. En otras palabras, después de realizar una transacción CoinJoin, un usuario no puede ser vinculado definitivamente a sus transacciones anteriores. Muchas soluciones CoinJoin ofrecen alternativas descentralizadas a los servicios combinados. Aunque un coordinador puede participar en el proceso, los usuarios no necesitan sacrificar la custodia de sus monedas.


¿Qué es CoinJoin?

Las transacciones CoinJoin son una propuesta presentada por primera vez por el desarrollador de Bitcoin Gregory Maxwell en 2013. En una colección de publicaciones que escribió, Maxwell ofrece una breve descripción del diseño de estas transacciones y cómo se pueden utilizar para lograr enormes ganancias en privacidad sin cambiar el protocolo. .

En esencia, una transacción CoinJoin implica combinar entradas de múltiples usuarios en una sola transacción. Antes de explicar cómo (y por qué) sucede esto, veamos la estructura de una transacción normal.

Las transacciones de Bitcoin se componen de entradas y salidas. Cuando un usuario quiere realizar una transacción, toma como entrada el resultado de la transacción no gastada, define el resultado y pone su firma en la entrada. Es importante tener en cuenta que cada entrada está firmada independientemente de las demás y los usuarios pueden colocar múltiples salidas (es decir, enviar monedas a diferentes direcciones).


image of an example transaction with four inputs and two outputs


Si analizamos una transacción con cuatro entradas (cada una con un valor de 0,2 BTC) y dos salidas (0,7 BTC y 0,09 BTC), hay algunas cosas que podemos suponer. En primer lugar, vemos que se realiza algún tipo de pago: el remitente envía uno de estos resultados a alguien y el resto regresa al remitente. Debido a que utilizó cuatro insumos, es probable que la producción mayor esté destinada al destinatario. Tenga en cuenta que faltan 0,01 BTC en la salida, esta es la tarifa que se le otorga al minero.

También es posible que el remitente quisiera una gran cantidad de salida no gastada de una pequeña salida, por lo que ingresó una pequeña entrada para terminar con los 0,7 BTC que quería enviar.

Podemos hacer una suposición basada en el hecho de que cada entrada está firmada de forma aislada de las demás entradas. Cuatro partes pueden participar en esta transacción y firmar las transacciones. Aquí radica el principio que hace que las transacciones CoinJoin sean eficientes.


¿Cómo funcionan las transacciones CoinJoin?

La idea es que varias partes se coordinen para crear una transacción, y cada parte proporcione las entradas y salidas deseadas. Cuando se combinan todas las entradas, es imposible confirmar qué salida sigue a qué usuario. Vea la siguiente figura:


image of an example coinjoin


Aquí tenemos cuatro participantes que quieren ocultar las conexiones entre sus transacciones. Estos participantes se coordinan entre ellos (o a través de un coordinador) y anuncian las entradas y salidas que desean.

El coordinador tomará toda la información y realizará una transacción con ella, y cada participante la firmará antes de enviarla a la red. Una vez que los participantes firman, la transacción no se puede modificar sin invalidarla. Por lo tanto, no existe ninguna posibilidad de que el coordinador se quede con el dinero.

Esta transacción es como una caja negra para transacciones mixtas. Recuerde que en realidad puede destruir los resultados de las transacciones no gastadas y crear otros nuevos. El vínculo entre los resultados antiguos y los nuevos es el mismo tratamiento, pero no es posible distinguir entre los participantes. Lo máximo que podemos hacer es decir que un participante dio una entrada a esta transacción y puede ser el nuevo propietario de una de las salidas resultantes.

Pero ni siquiera esto está garantizado. ¿Quién puede decir que hay cuatro participantes en la transacción que mencionamos anteriormente? ¿Es una persona que envía monedas a cuatro direcciones de su propiedad? ¿O dos personas que realizan compras por separado y 0,2 BTC volverán a sus respectivas direcciones? ¿O son cuatro personas enviando monedas a otros participantes o devolviéndoselas a ellos mismos? No puedo estar seguro.


Privacidad a través de la negación

El hecho de que existan transacciones CoinJoin es suficiente en sí mismo para arrojar dudas sobre los métodos utilizados para analizar las transacciones. Podemos inferir que en muchos casos se han realizado transacciones CoinJoin, pero no podemos saber quiénes son los propietarios de la salida. A medida que crecen en popularidad, no se puede asumir que todas las entradas sean necesariamente propiedad del mismo usuario: un gran salto para la privacidad en el ecosistema de las criptomonedas.

En el ejemplo anterior, dijimos que el propietario de una de sus salidas podría ser cualquiera de los cuatro participantes en la transacción, y este número se conoce como conjunto ciego. Cuantas más personas haya en el grupo de cifrado, menos probable será que sus transacciones estén vinculadas al propietario original. Afortunadamente, las implementaciones recientes de transacciones CoinJoin facilitan a los usuarios combinar entradas sin confianza con docenas de otros usuarios, lo que proporciona un alto grado de negación. Recientemente se llevó a cabo con éxito una transacción en la que participaron 100 personas.


Pensamientos concluyentes

Las herramientas de combinación de transacciones son una adición importante al arsenal de cualquier usuario que se tome en serio su privacidad. A diferencia de las mejoras de privacidad propuestas (como transacciones confidenciales), es compatible con el protocolo tal como está.

Para quienes confían en la integridad y conducta de terceros, los servicios combinados son una solución sencilla. Pero para aquellos que prefieren alternativas verificables y sin custodia, las alternativas de CoinJoin son mejores. Estas transacciones se pueden realizar manualmente para usuarios expertos en tecnología o mediante software que simplifique mecanismos más complejos. Ya existen varias de estas herramientas cuya popularidad está en constante crecimiento a medida que los usuarios buscan mejorar su privacidad.