L’un des principaux objectifs de la plateforme blockchain Horizen est de rendre la confidentialité en ligne accessible au plus grand nombre de personnes possible. Parce que les conversations sécurisées et privées sont une part importante de cet objectif, nous avons développé ZenChat, notre première application sur la plateforme blockchain Horizen.

ZenChat permet aux utilisateurs de communiquer d’une personne à une autre ou par le biais de messages et de canaux de groupe. Vous pouvez choisir d’envoyer des messages à partir d’une adresse identifiable ou complètement anonyme.

La valeur de notre protocole de messagerie ne repose pas seulement sur une communication régulière entre les utilisateurs, mais aussi sur la communication entre différents clients, nœuds et applications au niveau du protocole. Cela permettra de construire des applications hautement interopérables sur notre plateforme.

Par où commencer ?

Si vous souhaitez commencer à utiliser la messagerie ZenChat, la façon la plus simple de le faire est de télécharger notre application phare Sphere by Horizen et de créer un portefeuille. Vous devez activer le mode complet dans les paramètres afin d’utiliser ZenChat. Une fois que vous avez configuré votre portefeuille, vous devez créer une identité de messagerie et choisir un pseudonyme. Les utilisateurs doivent créer et échanger une clé de conversation pour démarrer une conversation. Cette clé de conversation peut être échangée extérieurement, par exemple via Discord.

Un utilisateur est libre d’inclure d’autres informations dans son identité de messagerie comme bon lui semble. La solution que nous souhaitons à long terme est un registre distribué des identités ZenChat sur la blockchain Horizen.

Protocole de messagerie

Les messages dans ZenChat sont en fait des transactions sur une blockchain, tout comme ceux que vous utilisez pour envoyer des fonds. Une zone de données spéciale, la zone mémo, qui n’est généralement pas occupée lors de transactions classiques, est alors utilisée. Les utilisateurs peuvent envoyer des messages d’une adresse T (Transparente, publique) à une adresse Z (privée) s’ils souhaitent être identifiables, ou d’une adresse Z à une autre adresse Z s’ils souhaitent communiquer anonymement.

L’expéditeur d’un message doit avoir deux adresses :

  • une adresse Z pour l’envoi et la réception de la transaction de messagerie (utilisée uniquement pour le “transport”) ;
  • une adresse T pour signer le message envoyé et dans le cas où l’utilisateur n’est pas anonyme, prouver l’identité de l’expéditeur.

Ci-dessous, vous pouvez voir à quoi ressemble une transaction de messagerie (“zenmsg”). Elle se compose d’un champ de données indiquant la version (“ver”) du protocole exécuté par le client de chat, de l’adresse de l’expéditeur (“from”), du message réel et d’une signature (“sign”). Avec ce format de message, la longueur maximale effective d’un message utilisateur (“message”) est d’environ 340 caractères. Les futures versions du protocole pourront permettre des messages plus volumineux en envoyant un message divisé en plusieurs transactions.

Lorsqu’un utilisateur envoie un message, l’adresse T signe le message texte de l’expéditeur et inclut la signature dans le message. Il n’est pas nécessaire d’inclure un destinataire car la signature contient des informations sur la personne qui peut lire le message.

{
   "zenmsg":
   { "ver": 1,
     "from": "znn9wRVAkgNnKCYJvsHu9nm4Q7c6AxLE2qR",
     "message": "Le message se trouve ici",
     "sign": "H5L3vhCQ+3EAz7BRrpNqy2x42VF+oY1WowGxCwEJkMlcbfX+GLU3PWOzPwJK+BUBY5YoDk/hAkF4GwtqyWWOngI="
   }
}

Ne vous inquiétez pas si cela vous semble trop compliqué à première vue, le client de messagerie se chargera de toutes les formalités. Une fois que vous avez échangé la clé de conversation avec un autre utilisateur, l’interface ressemblera à toute autre application de chat que vous connaissez déjà.

Messages anonymes

Si vous décidez d’envoyer un message anonyme, la transaction du message sera légèrement différente. Le message ne contiendra aucun expéditeur. Le thread ID (le fil de discussion) remplace l’expéditeur et la signature. L’interface de chat génère l’ID du fil de discussion et contient des informations sur l’expéditeur et la direction du message.

Il n’est pas possible pour le destinataire de répondre à un tel message, car il ne dispose d’aucune information sur la personne à qui envoyer la réponse

{
   "zenmsg":
   {
     "ver": 1,
     "message": "Le message se trouve ici",
     "threadid": "123e4567-e89b-12d3-a456-426655440000"
   }
}

Messages de groupe

La messagerie de groupe implique que plusieurs utilisateurs envoient des messages à un seul canal/groupe. Les messages sont visibles par tous les utilisateurs concernés. Le canal dispose d’une adresse Z dédiée à laquelle tous les utilisateurs envoient des messages. Les messages peuvent avoir des expéditeurs identifiables ou être anonymes. Les utilisateurs peuvent envoyer un message spécial au canal contenant leurs données d’identité s’ils souhaitent les partager. Si un utilisateur n’envoie pas un tel message spécial, les autres utilisateurs connaîtront son adresse T mais ne sauront pas nécessairement qui est derrière elle.

La façon d’obtenir une adresse Z pour un canal de messagerie est spécifique à l’implémentation. Une façon recommandée pour la commodité de l’utilisateur est de laisser les utilisateurs utiliser une expression commune, telle qu’un #hashtag. Les utilisateurs convertissent individuellement cette phrase en une adresse Z et l’importent dans leur portefeuille/client GUI.

Résumé

Une messagerie est un ajout appréciable à la pile de fonctionnalités de notre plateforme blockchain. Elle permet non seulement aux utilisateurs de communiquer d’une personne à une autre ou en groupes/canaux mais aussi par le biais de différents logiciels clients, portefeuilles et applications. Les utilisateurs peuvent créer autant d’identités de messagerie qu’ils le souhaitent et peuvent choisir de communiquer anonymement ou ouvertement. Un message dans l’application ZenChat est une transaction avec un message joint dans un champ de données. Les messages via notre application ZenChat peuvent contenir environ 340 caractères.

Alors que les utilisateurs doivent actuellement échanger leurs identités de messagerie en dehors de l’application, il est souhaitable à long terme d’avoir un registre distribué des identités de messagerie sur la blockchain Horizen. Afin de créer un canal de messagerie, une phrase commune ou #hashtag peut être convertie en adresse Z.

Envie d’essayer notre messagerie ZenChat ? Pour ce faire, téléchargez notre application phare Sphere by Horizen, activez le Full Mode (mode complet en français) dans les paramètres et envoyez votre premier message. Si vous ne possédez pas encore de ZEN, visitez notre Faucet ZEN où vous recevrez une petite quantité de ZEN gratuitement et pourrez commencer à explorer notre application de messagerie.