Decentralized encrypted chat

Published: Fri 12 November 2021

We're pleased to announce the latest feature built as part of our NGI grant: decentralized encrypted chat. Why build yet another chat protocol, you ask? Our implementation of chat is an application inside Peergos, i.e. it benefits from all the privacy guarantees and access control without having to re-implement all of it.

First, let’s see how it looks.

chat
Decentralized encrypted chat.

The user interface is fairly familiar. However, one difference to most messengers is that it is built to respect you and your attention: no notifications and no nagging pop ups to "install our native app where we can track you more". You can only chat with your friends on Peergos. No unwanted messages - you have to accept someone as a friend before they request a chat with you. All you need to start a chat with a friend is their username - unlike some messengers that demand your phone number, and require you to share it with those you chat with.

You can do all the usual things: textual messages, images, videos, emoji. The app allows one-to-one chats and group chats. Group chats can have any number of members and any number of admins; admins can grant and revoke admin status to others. Your Peergos server doesn't even know you're sending chat messages, because these are just regular files in your Peergos space.

group chat
Group chat.

Under the hood, each chat stores its messages as an append-only file in Peergos. Messages are not pushed to other recipients - to send a message, you simply append it to your own copy of the chat log. Other members will then pull the message and copy it into their log the next time they open the app – messages propagate peer-to-peer, from member to member. The messages themselves form a merkle dag with each message containing a merkle link to previous messages. With this structure, we are able to maintain causal order. That means you only see a reply to a message after seeing the message it is replying to. In group chats, when a member leaves, or is removed from a chat, then their access to the chat is revoked, preventing them from seeing any future messages.

Want to try it out already? To enable the chat app, simply login or create an account at https://peergos.net/?chat=true - note the "?chat=true" in the URL. We will enable chat by default once the UX is more polished.

This work was built as part of our grant from the Next Generation Internet program (NGI POINTER).




NGI Pointer NGI Pointer

This project has received funding from the European Union’s Horizon 2020 research and innovation programme within the framework of the NGI-POINTER Project funded under grant agreement No 871528




RECENT POSTS

Back to Top