What is SimpleX Chat ?
SimpleX is a platform that offers an alternative to other centralized or federated messaging applications, such as Signal, thanks to total confidentiality, no identifiers, protects against spam and gives users control over their data because it is stored on the device (not on a centralized server).
Components
This application uses the SimpleX platform, which consists of several components:
SimpleX Messaging Protocol (SMP) is a protocol for sending messages in one direction to a recipient, with a server in between. Messages are delivered via one-way queues created by the recipients.
SMP relies on a transport protocol (such as TLS) to ensure integrity, server authentication, confidentiality and binding to the transport channel.
A SimpleX server is one of these servers.
The SimpleX network is the term used to designate the set of SimpleX servers that facilitate the SMP.
SimpleX client libraries speak SMP to SimpleX servers, providing a low-level API that is not generally intended for use by applications.
SimpleX agents interface with SimpleX clients to provide a higher-level API for use by applications. They are usually integrated as libraries, but are designed to be abstracted into local services.
https://github.com/simplex-chat/simplexmq/blob/stable/protocol/overview-tjr.md
How does it work?
This article is designed to explain simply how SimpleX works. Shortcuts can be taken, but full details of how it works can be found here: https://github.com/simplex-chat/simplexmq/blob/stable/protocol/overview-tjr.md
SimpleX Chat uses the various components mentioned above. In concrete terms, SMP (Simple Messaging Protocol) is the communication protocol used by network elements to exchange messages. The SimpleX agent is used as an abstraction layer to simplify the management of operations, and will also offer functionalities such as adding noise to protect the privacy of people using the application.
The use of simplex queues is the major difference with other platforms such as WhatsApp, Signal or Matrix. Unlike other platforms, SimpleX doesn’t require users to create an account, and users don’t have a login as such.
For those who use the application, the way it works is no different from any other messaging platform.
The first step is to create a SimpleX address, which can be used on a one-time or persistent basis.
To explain, 2 people Bob wants to send a message to Alice. Alice will share her previously created SimpleX address with Bob. When Bob adds his contact, Alice will receive a request offering the possibility of refusing or accepting.
Once the connection has been accepted, the queue creation process will start on the SMP server, and will be used by Bob to deposit (as it were) messages for Alice, and then his application will retrieve the messages and display them in SimpleX Chat. This queue creation part has to be done for Bob, so for Alice to be able to send messages and reply to him, another SMP server can be used, thus improving resilience and user privacy. The complete process is much more comprehensive and can be found here.
In the end, 2 queues will have been created for this discussion between Alice and Bob
One used by Bob to send a message to Alice
One for Alice to send a message to Bob
In the end, the server will only see a client retrieving messages, but will not have a complete view of who that person is communicating with, when and how often. As soon as a message is retrieved by a person, it is removed from the queue on that server. Unlike other more centralized applications, where a central server like Telegram or Mastodon takes care of receiving messages, storing them and notifying the various clients.
Other interesting features offer a real solution for protecting data and privacy:
Incognito mode
Allows you to protect your profile (image and nickname) by not transmitting this information when you start a new discussion. A random name is generated for each new contact, making it possible to chat with 2 people without them knowing that they’re chatting with the same person. You could compare this to a browser’s private browsing.
Live message
This feature may seem useless at first glance, but it can be useful in some cases. It allows you to write messages without having to send them, and the recipient will see what you’re typing live (while standing in front of his phone), so there’s no need to wait. This can be useful in a place where you can’t talk but want to exchange information, or as an example, given on the https://simplex.chat/ website:
An activist reporting live when there’s a risk of losing his phone or connection at any moment. This function allows you to send as many messages as possible, right down to the last word, without having to send only very short messages.
Chat profile
Different from the “incognito” mode, this function offers the possibility of separating different discussions while having a complete profile with a photo and a name, and being able to navigate easily between them.
Conclusion
This application offers a more decentralized and less invasive alternative to Signal (no phone number required, for example). However, challenges such as the ability to synchronize discussions across multiple devices, and optimal management of large groups are still present and need to be resolved to enable SimpleX Chat to become more widespread.
No Trust Verify provides an SMP server, to add it you can use this address smp://
HZOF26feHaaMXqYuLTzhBFB652DEYENZEN8zpLxIeKs=@simplex.notrustverify.ch
or by scanning the QR code below
In future articles, we’ll be taking a closer look at how to use the application, such as improving its security using Tor and other proposed mechanisms, adding other SMP servers to the application and managing file uploads.
Ressources
Download SimpleX Chat
Useful links
Subscribe to my newsletter
Read articles from cgi-bin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by