Vea También
En las criptomonedas, el registro de transacciones suele ser público. Por ejemplo, en Bitcoin, cualquiera puede leer qué transacciones han ocurrido.
Un registro público de transacciones puede revelar a quién paga cada usuario. Por ejemplo, desde 2013 hay estrategias para rastrear transacciones y clasificar el comportamiento de usuarios en Bitcoin.
Pongamos un símil de una habitación con una ventana que alberga a cuatro personas, llamadas Alicia, Bernardo, Carlota y David. Alicia y Carlota tienen un euro cada una y quieren pagar a Bernardo y David. Alicia cruza la habitación y da su euro a Bernardo. Carlota hace lo mismo con David.
Quien haya mirado por la ventana habrá visto dos transacciones: el pago de Alicia a Bernardo y el de Carlota a David. Esto quiere decir que se puede saber a quién pagan los demás.
Para proteger sus patrones de consumo y relaciones privadas de miradas indiscretas, Alicia, Bernardo, Carlota y David van a intentar confundir al observador. Ahora veremos cómo se puede hacer esto con un mezclador de monedas, que puede ser descentralizado o centralizado.
El mezclador descentralizado
Imagine que colocamos una caja en la habitación. Alicia deposita su euro en la caja y luego Carlota la imita. Posteriormente, los chicos echan a suertes quién recoge su moneda primero.
Ahora el observador no puede saber quién pagó a quién: los chicos cogen sus monedas en un orden aleatorio y no es posible saber de quién era la moneda que tienen en su poder. El observador solo ve una transacción, en la que Alicia y Carlota pagan, y en la que Bernardo y David reciben. Este protocolo se llama CoinJoin, y se mejoró posteriormente con un nuevo protocolo llamado CoinShuffle.
Un mezclador funcionará mejor cuantos más remitentes y destinatarios tenga la transacción. Consideremos que tenemos dos nuevos usuarios en la habitación, Elena, que también mete una moneda en la caja, y Fernando, que la va a recoger. En este caso, un observador no podría saber si Alicia pagó a Bernardo, a David o a Fernando.
En un entorno real, todos los remitentes también deben autorizar que solo los destinatarios puedan coger las monedas de la caja. Si uno de los primeros decide no dar su autorización, el proceso termina. En nuestro ejemplo, las chicas recuperarían sus monedas y habría que empezar otra vez. ¡Si cada vez que se inicia el proceso hay alguien que no da su autorización, nunca se puede completar un pago! Este problema no ocurre utilizando un mezclador centralizado.
El mezclador centralizado
Si se quiere confundir al observador con un mezclador centralizado, necesitaremos a Tomás, para que actúe como intermediario. No obstante, hay que tomar precauciones puesto que Tomás podría salir corriendo con el dinero. Del mismo modo, Bernardo y David podrían tratar de engañar a Tomás para que les dé dinero sin que Alicia ni Carlota hayan pagado.
Protocolos como TumbleBit o Blind Conditional Signatures dan una solución a ambas cuestiones.
Para evitar que Tomás escape con el dinero, debe hacer una promesa de pago irrevocable. En la práctica, podría bloquear su dinero en un tipo de smart-contract llamado Hash TimeLock Contract. De este modo, los destinatarios solo pueden obtener el dinero de Tomás si las chicas pagan.
Para simplificar, vamos a asumir que Tomás les da un cheque de un euro a cada chico, y que los cheques siempre se pueden canjear si están firmados.
Como Tomás no se fía de los unos ni de las otras, solo firmará cada cheque a cambio de un pago. Tomás entrega un cheque sin firmar a cada destinatario. Estos entregan sus cheques a las remitentes. Ahora, Alicia ofrece su moneda a Tomás a cambio de que le firme el cheque. Carlota hace lo mismo. Posteriormente, las chicas entregan los cheques firmados a los chicos.
Sin embargo, hay un problema: Tomás sabe quién paga a quién. Los cheques que entrega a Bernardo y David contienen los nombres de estos como destinatarios. Cuando Alicia muestra el cheque a Tomás para que lo firme, Tomás puede leer quien es el destinatario del cheque y descubrir que el cheque que le da Alicia es para Bernardo.
La firma ciega, clave para la privacidad
Tomás no debe saber qué cheque está firmando y para ello se puede usar la firma ciega. En un artículo explicamos en The Conversation cómo usar esta herramienta de criptografía para mejorar la privacidad de las tarjetas regalo. Ahora veremos cómo se usa en un mezclador centralizado.
Primero, Tomás entrega cheques sin firmar a Bernardo y David. Cada chico mete su cheque en un sobre distinto y los cierran. Entonces, Bernardo envía su sobre a Alicia y David a Carlota.
Alicia pide a Tomás que firme el sobre. Tomás lo hace y la tinta lo traspasa, quedando también impresa en el cheque. Alicia toma el sobre firmado y paga un euro a Tomás. Carlota hace lo mismo. Entonces, las chicas envían los sobres firmados a los chicos.
Bernardo y David abren sus sobres y encuentran los cheques firmados. Dado que Tomás ha firmado los sobres, no sabe qué cheque estaba dentro de cada sobre.
Sin embargo, cualquier observador puede ver los intercambios de sobres entre chicos y chichas e identificar quién ha pagado a quién. Para garantizar la privacidad, los canales de comunicación deben permanecer ocultos. En la mayor parte de las ocasiones, bastaría con usar WhatsApp o Signal. De este modo, ni Tomás ni ningún observador puede saber qué chica –remitente– pagó a qué chico –destinatario–.
Al igual que en el caso descentralizado, añadir a Elena y Fernando mejora la privacidad. A diferencia del caso descentralizado, las operaciones son independientes. De este modo, si Elena decide no pagar a Tomás y cancelar la operación, Alicia y Carlota todavía pueden realizar su pago a Tomás, por lo que Bernardo y David reciben sus cheques firmados.
En conclusión, los mezcladores de criptomonedas, aunque no resultan infalibles, son protocolos criptográficos muy flexibles que se pueden utilizar para mejorar la privacidad.
Diego Castejón Molina no recibe salario, ni ejerce labores de consultoría, ni posee acciones, ni recibe financiación de ninguna compañía u organización que pueda obtener beneficio de este artículo, y ha declarado carecer de vínculos relevantes más allá del cargo académico citado.