Uno de los objetivos principales de la cadena de bloques de Horizen es el de hacerle accesible al mayor número de personas posible la privacidad en línea. Ya que la posibilidad de tener conversaciones seguras y privadas forma parte central de este objetivo, hemos desarrollado ZenChat como nuestra primera aplicación en la plataforma de la cadena de bloques de Horizen.

Zen chat les permite a sus usuarios enviar mensajes desde una dirección no identificable o de manera completamente anónima.

El valor de nuestro protocolo de mensajería no depende solo de la comunicación entre usuarios regulares, sino también de la comunicación entre diferentes clientes, nodos y aplicaciones a nivel protocolo. Esto permitirá que se desarrollen aplicaciones altamente interoperables a partir de nuestra plataforma.

Cómo empezar

Si le gustaría empezar a utilizar ZenChat lo más fácil es descargar nuestra aplicación insignia Sphere by Horizen y crear una billetera. Debe también activar el modo completo (full mode) en la sección de ajustes. Ya con una billetera, es preciso crear una identidad para mensajear y elegir un seudónimo. Los usuarios deben crear e intercambiar una llave de conversación para empezar, y dicha llave puede compartirse de manera externa.

El usuario tiene la libertad de incluir otra información en su identidad de mensajería según lo considere necesario. La solución que buscamos a largo plazo es un registro distribuido de las identidades de ZenChat en la cadena de bloques de Horizen.

El protocolo de mensajería

Los mensajes que se envían a través de ZenChat son en realidad transacciones en la cadena de bloques como las que se emplean para enviar fondos. Un campo de datos especial contiene el mensaje que se quiere intercambiar; el campo de notas que generalmente permanece vacío en una transacción regular. Los usuarios pueden enviar mensajes de una dirección T a una dirección Z si un usuario desea ser identificable, o de una dirección Z a otra si prefiere comunicarse de manera anónima.

El remitente de un mensaje debe tener dos direcciones:

  • Una dirección Z para enviar y recibir la transacción de mensajería (empleada solo para transportar)
  • Una dirección T para firmar el mensaje que se está enviando y, en caso de que el usuario no decida permanecer anónimo, para comprobar la identidad del remitente.

Debajo puede ver cómo luce una transacción de mensajería (“zenmsg”) real. La componen el campo de datos que indica la versión (“ver”) del protocolo que ejecuta el cliente de chat, la dirección del remitente (“from”), el mensaje y la firma (“sign”). Empleando este formato de mensajería, la extensión máxima de un mensaje (“message”) es de aproximadamente 340 caracteres. Puede que versiones futuras del protocolo permitan el envío de mensajes más extensos repartiendo un solo mensaje en varias transacciones.

Cuando el usuario envía un mensaje, la dirección T firma el mensaje de texto del remitente e incluye la firma del mensaje. No hay necesidad de incluir un receptor porque la firma incluye información sobre quién puede leer el mensaje.

{
   "zenmsg":
   { "ver": 1,
     "from": "znn9wRVAkgNnKCYJvsHu9nm4Q7c6AxLE2qR",
     "message": "El mensaje de chat actual está aquí, etc.", 
     "sign": "H5L3vhCQ+3EAz7BRrpNqy2x42VF+oY1WowGxCwEJkMlcbfX+GLU3PWOzPwJK+BUBY5YoDk/hAkF4GwtqyWWOngI="
   }
}

No se preocupe si todo esto le parece abrumador en un principio, el cliente del chat se encargará de todas las formalidades. Una vez que haya intercambiado su llave de conversación con otro usuario, la interfaz del chat lucirá como la de otras apps que ya ha utilizado.

Mensajes anónimos

Si el usuario decide enviar un mensaje anónimo la transacción de mensajería lucirá un poco diferente. El mensaje no contendrá un remitente de ningún tipo. El identificador del hilo reemplaza al remitente en la firma. La interfaz del chat genera el identificador e incluye información sobre el remitente y la dirección del mensaje.

No es posible responder a un mensaje de este tipo, pues el receptor no cuenta con información alguna para dirigir una respuesta.

{
   "zenmsg":
   { 
     "ver": 1,
     "message": "El mensaje de chat actual está aquí, etc.", 
     "threadid": "123e4567-e89b-12d3-a456-426655440000"
   }
}

Mensajes grupales

La mensajería grupal se da cuando varios usuarios se envían mensajes a través de un solo canal o grupo donde los mensajes les son visibles a todos los participantes. Cada canal tiene una dirección Z dedicada a la que todos los usuarios envían sus mensajes. Los mensajes pueden tener remitentes identificables o pueden ser anónimos. Los usuarios pueden mandar un mensaje especial al canal con sus detalles identitarios en caso de que deseen compartirlos. Si el usuario no envía dicho mensaje, los demás participantes conocerán su dirección T pero no sabrán a quién pertenece.

La manera de obtener una dirección Z para un canal de mensajería depende de la implementación. Un método recomendado y conveniente para el usuario es permitirles a los usuarios utilizar una frase común, como por ejemplo un hashtag, para crear la dirección. Los usuarios convierten esta frase a una dirección Z de manera individual y luego la importan a su billetera o cliente GUI.

Resumen

Un servicio de mensajería es un adición valiosa al grupo de funciones de nuestra plataforma de cadenas de bloques. Nuestro servicio no solo les permite a sus usuarios comunicarse uno a uno o en grupos o canales sino también a través de diferentes clientes, billeteras y aplicaciones. Los usuarios pueden crear el número de identidades de mensajería que deseen y pueden decidir si comunicarse de manera abierta o anónima. Un mensaje en la aplicación de ZenChat es una transacción con un mensaje adjunto en un campo de datos adicional y puede tener una extensión de aproximadamente 340 caracteres.

Mientras que los usuarios se ven obligados a compartir sus identidades externamente por el momento, nuestro plan a largo plazo es tener un registro distribuido de las identidades de mensajería de ZenChat en la cadena de bloques de Horizen. Para crear un canal de mensajería, una frase común o hashtag puede convertirse en una dirección Z.

Pruebe usted mismo las funciones de ZenChat. Descargue nuestra aplicación insignia, Sphere by Horizen, active el modo completo en los ajustes y envíe su primer mensaje. Si aún no tiene ZEN, visite la Fuente ZEN para recibir una pequeña cantidad de ZEN gratuitos y empiece a explorar nuestra aplicación.