Hola Habr!
Hoy hablaré sobre cómo desarrollamos un mezclador de transacciones para nuestro messenger. Hasta ahora hablaré sobre el concepto en su conjunto; Espero que sea interesante tanto para los desarrolladores como para los apasionados del anonimato, la protección de datos y el resto del banco de cifrado.
Breve historia Como ya sabe, nuestro messenger opera en su propia cadena de bloques e implementa transferencias de varias criptomonedas en las salas de chat. Agregar: las conexiones entre las billeteras son públicas. Por lo tanto, el hecho de la correspondencia y la transferencia de tokens está disponible y confirmado en blockchain. ¡Pero a veces es el hecho de la comunicación (o transferencia de fondos) lo que puede comprometer! Todos recuerdan los Tres Mosqueteros y los colgantes de la Reina, ¿verdad?

Nuestros usuarios nos han señalado que es hora de eliminar este "vacío de privacidad". Entonces, en primer lugar, eliminamos las transacciones de mensajes y transacciones de servicio de nuestro explorador de bloques. Por lo tanto, un usuario ordinario ahora no puede establecer el hecho de la correspondencia entre dos números.
Pero las transacciones aún se almacenan en la cadena de bloques, y sus metadatos se pueden recuperar utilizando la API. Por lo tanto, decidimos crear un mezclador de transacciones que podría conectarse si es importante ocultar el hecho de la transferencia o la correspondencia.
Cómo funciona: ensamblar y compartir
Decidimos usar una tecnología similar a la utilizada por las criptomonedas anónimas populares: Z-Cash, Monero y otras.
El mezclador aquí actúa como intermediario. Como cualquier usuario de nuestro mensajero, tendrá su propia dirección única. Cuando se envía un mensaje o traducción a través del mezclador, aparecerá un registro en la cadena de bloques en el que el usuario A realizó una transacción a la dirección del mezclador.
El mezclador acumula mensajes y traducciones, y los envía a los destinatarios desde su dirección. El usuario B recibirá un mensaje no del usuario A, sino del mezclador.
Mientras más personas usan el servicio, más anonimato brinda. Cuando el mezclador tiene muchas transacciones entrantes y salientes, es difícil rastrear a qué dirección el usuario A envió un mensaje. Además, el mezclador realizará transacciones intermedias entre billeteras internas.
No se puede confiar en nadie
No se puede confiar en nadie en Internet, incluido un mezclador. Por lo tanto, lo hicimos para que el intermediario no pudiera descifrar el texto del mensaje, solo la dirección del destinatario. Esto se logra por el hecho de que el mensaje se cifra dos veces.
Mecanismo de envío clásico
Mecanismo de envío del mezcladorPermítanme explicar con palabras cómo ocurre el proceso.
- Alice primero cifra el texto del mensaje con la clave de Bob.
- Luego agrega la dirección de Bob y la encripta nuevamente con la clave Mixer.
- El mezclador solo puede descifrar su parte y obtener la dirección de Bob.
- Después de eso, el Mezclador agrega su dirección al mensaje cifrado de Alice y se cifra con la clave de Bob.
- Bob extrae el mensaje de la cadena de bloques, en el primer descifrado, reconoce al remitente, en el segundo, el texto del mensaje.
Sin embargo, el mezclador conoce las direcciones de los remitentes y destinatarios, y existe el riesgo potencial de revelar esta información. Con la ciber paranoia del nivel superior, puedes defenderte en un 146% usando un sistema de varios mezcladores.
Un poco más de alta cocina
Los pagos de criptomonedas dentro de nuestro messenger también se pueden hacer a través de un mezclador. Esto ocultará la conexión entre las billeteras. El remitente indica la cantidad de transferencia, las direcciones y el retraso máximo de tiempo, y el mezclador envía tokens en partes y en diferentes momentos. Recopilará transacciones de varios usuarios y realizará transacciones entre billeteras internas, y así ocultará la conexión entre destinatarios y remitentes.

Al mismo tiempo, la criptomoneda se almacenará en sus billeteras durante algún tiempo. Por lo tanto, el mezclador tendrá que ser confiable. Para que el fraude no sea rentable, introduciremos una tarifa por registrar mezcladores públicos y realizar clasificaciones.
Los fundadores del mezclador tendrán la opción de hacerlo público (accesible para todos), al mismo tiempo que cobran tarifas de transacción y obtienen ganancias. O no lo registre en el registro general. Entonces el mezclador será anónimo, pero tampoco recibirá ganancias de las transacciones. Esta es una opción para aquellos que desean configurar el servicio por sí mismos, por ejemplo, para la correspondencia de los empleados de la empresa.
Si implementamos con éxito el concepto, un poco más tarde haré una publicación "técnica" sobre el mismo tema.