Element/Matrix - Sustainable Instant Messenger

After analyzing why it is so difficult to get away from WhatsApp and defining the requirements for a sustainable instant messenger, I would like to analyze the Matrix protocol, or rather the associated client Element, after a month-long test phase and provide a test report.

For starters, I would like to explain the difference between Matrix and Element. Matrix is the free protocol used to communicate, and Element is the client that uses it. For example, you could compare it with browsers. There are different browsers where you can use the HTTP protocol to transfer web pages. Nevertheless, just because there is a protocol, you are not forced to choose a single client to use it, such as Firefox, Brave, or any other website browser. Using Matrix, you have the freedom to decide which client you want to use. However, many people unfortunately already seem to be overwhelmed by this freedom, as I have already described in this article about XMPP/Jabber. A fitting analogy would be that you would only be allowed to drive on the roads in one type of car, and that would probably be terrible if that car lacked the specifications you needed personally. For instance, a car with windows, an air conditioner, a heater, a ventilation system, and the like would be beneficial, which would all be features that no one would know about if there were no different cars. So I would also like to encourage you to not only check out Element but also other clients for Matrix. After all, Matrix is not limited to a smartphone, but it can also be used on a desktop PC, in a terminal, in a browser, or even on a Nintendo game console.

Matrix is a federated network. That means anyone could set up a Matrix server where users could then log in, and the servers would communicate with each other. This prevents an authoritarian person or party from controlling everything. After all, it would be a severe restriction of freedom if some authority could decide whether to delete your messages or even your entire account just because you made a negative comment about them. Of course, an administrator can ban you from their server if, for example, you have done something nasty like making racist comments in a group (on the same server) or other crimes. This does not have to be tolerated by anyone, and you can then look for another server to create a new user account, but this involves the effort of arduously transferring your contacts again. Also, it is questionable whether anyone would still want you on their server. So you should avoid committing crimes and behave politely, which is also a sensible tip in real life.

Does Matrix meet the requirements

For months, I communicated with administrators who manage Matrix servers themselves, which also vary in size. From a small hobby admin who manages a Matrix server for their family and friends to one of the largest German servers, you name it. Nevertheless, what I quickly noticed was that, unfortunately, the experts do not often agree when it comes to answering questions. Sadly, during my research, I also came across a somewhat toxic community that commented cynically or even aggressively for almost every question, which almost made me lose interest in this messenger because it made the research cumbersome. However, I took it in stride and said to myself, "That is just how people are in the 2020s. This is normal!" and carried on. So I cannot guarantee the accuracy of that either. Nonetheless, I have to point out that Matrix is a comparatively new technology and is under considerable development at this point in time. So some details could change in the future. Furthermore, some things that an administrator thinks would not work, or even never work, could be introduced in the future.

I have compiled the exact requirements for an instant messenger here.

Private messages

On Matrix, it is standard to communicate in encrypted form. However, you should pay close attention to what you write in public groups. These could be encrypted, depending on the server, but anyone could have access to this data if the access rights were liberally set by the group creator.

In fact, there are no direct messages because everything are rooms. A room consists of at least one person, which can be very convenient because you can safely send data to yourself between multiple devices. So a dialog is more like a room with two participants. Yet, even here, you have to be careful about what is allowed. The person who creates the room also configures it. For example, you can specify that participants who are added later can only read messages from the time they joined the group or even get rights to view the complete history since the creation of the group. Rather negatively, I found that everyone invited to the group is an administrator of the room by default and could tweak everything. Nevertheless, I suspect that it was a settings matter from the server. Firstly, you should work through the settings when creating a room to ensure that the messages also remain private. Not unwittingly or even completely unintentionally, your correspondent can invite someone into the room, who will then have complete access to everything.

The keys necessary for decrypting the messages are stored on the devices and can also be transmitted in an encrypted manner when logging in from another device. For instance, if you have the client Fluffychat on a smartphone and you log in to Element through your browser, you can verify the new session in the browser on your smartphone, and the encrypted keys can be transmitted. Alternatively, you can store a backup on your home server (the server where you created your account), which is, of course, password-protected. If you decide to do this, then make sure that it is a secure password because anyone with this key can use it to decrypt all your messages.

Matrix was developed by The Matrix.org Foundation, which is a Community Interest Company (CIC), meaning that the profits and assets are used for the common good. Therefore, the entire software was not developed by a massive data miner that is out to exploit your data as much as possible, which makes me personally feel better about using this software in the first place.

It is a matter of settings, and it depends on the respective Matrix administrator to decide what is used as the default on a Matrix server. However, to be extra safe, you should look at the settings in a group and find the right ones for yourself to guarantee your messages stay private. Although this involves more effort, it allows you to meticulously weed out any vulnerabilities that could compromise a private message.

Multiple devices & operating systems

If you, like me, find it inefficient, tedious, and time-consuming to write with your smartphone's keyboard, you can log in to the web or desktop version of Element and type everything on a regular keyboard. If you have an active session on your smartphone and log in on your desktop and start a new session, you only have to verify this session on your smartphone, and you have access to all the data. You can begin communicating immediately. Plus, the best thing is that your smartphone does not even have to be turned on to communicate.

Being able to turn off your smartphone and continue communicating is an important consideration, as smartphones are designed to capture your full attention, something that has been perfected over the past decade. On the computer, you can focus on important matters and even mute group chats, or more importantly, easily close the application completely when you need to be completely focused.

No mandatory telephone number

A major advantage of Matrix is that it does not require a phone number. You can simply log in to a server of your choice, and only a username and password are required. You should keep this data safe with a password manager like KeepassXC, for instance. Otherwise, you will have access to your account if the data gets lost. Nevertheless, there is an additional function that can be used completely voluntarily. You can provide your email address to recover your password. However, if you are a well-ordered person, you will not need this either, and another identification and security factor is thus eliminated.

Hence, Matrix can be used outright without a phone number or email address.

Simple deletion of your data

If you accidentally wrote something in a room that is not supposed to be there, like a password, you can have it removed afterward. It has been implemented so that the deletion request goes to all servers and clients involved, and the message is typically erased. However, it is not guaranteed 100%, which is only a slight drawback to the federated system. After all, if an administrator on their server has set it up so that deletion requests from other servers are ignored, tough luck! Then there is nothing you can do about it. However, as described above, it is also good that there is not a single authority that can do everything unrestricted. In this case, therefore, it would be prudent to find out beforehand if everyone involved is on servers that will follow up on a deletion request. Otherwise, just be careful what you post to which group.

Another vital component is automatic message deletion. After all, a significant security risk is old data that is stored on the devices of your communication partners. A typical example is emails in connection with auction/selling platforms. For example, formerly, bank data and postal addresses were sent to buyers/sellers by email after the end of an auction or a successful purchase/sale. Since this data remains in someone's inbox indefinitely after receipt, there is a serious risk that it will eventually fall into the wrong hands. So all a hacker has to do is download all the emails from a hacked email inbox, and they could steal your entire identity since your address, bank details, and possibly even more sensitive data are on file. Unfortunately, the danger of identity theft can last for years or even decades. If such people have an email address with a freemail provider whose security is as up-to-date as they were in the 1990s, things can go wrong incredibly quickly. Furthermore, you should not underestimate the risk of identity theft, as this could have negative consequences for your whole life, such as a bad credit history without any negligence on your side, which might prevent you from moving into a decent apartment.

In the Matrix Community, somebody mentioned a system that should allow you to automatically delete your messages after a certain amount of time has elapsed. You could do this with so-called room retentions. With room retentions, you could set a minimum and a maximum time for messages to be preserved. The minimum value is crucial here since administrators may have scheduled their servers to automatically delete messages after a brief period of time. If you would like to retain the displayed messages for a longer interval, the administrator has the option to either ignore your requests or allow your messages to be displayed for a greater duration. Nevertheless, it is essential that the server genuinely deletes the messages when the maximum time has elapsed. During the testing phase, however, I failed to set up such retentions for the simple reason that this feature has not been implemented yet. I received the information about this topic from people who had never used it themselves, in a "Trust me! This works!" kind of way.

Yet, there was a problem with data that did not consist of text. So-called media data is handled differently than text-only messages. So, as far as I know, a separate media server is referred to, and only the reference to this file is then deleted in the chat, but not the file itself. From here on, I have not found anyone who could give me clear answers, and their answers were contradictory to one another as well. However, if I understood correctly, data is not deleted properly. It is only when all references have been deleted, the memory of this file is released. So the file still exists, but because no one knows about its existence, it can be overwritten. Doing so would be a very dubious procedure because this is indeed how data on hard drives or SD cards can be recovered. At this point, I like to remind you that you should never sell your memory cards, although you may think that no more data is left after formatting. However, this is not the case because when formatting, often only the references are deleted, and the files themselves still exist. Nevertheless, the difference here is that with Matrix, everything is encrypted, so even if someone could recover an encrypted file, that individual would not be able to do anything with it.

What surprised me, and I do not think it is sustainable at all, is that if several participants in a room have different home servers, the media file is copied on the home servers of the participants before it is received on the end devices. So you are not working with a reference but with a copy. That makes things even more complicated if you want to delete something because the other server could also decline your deletion request.

In any case, I have now done some intensive reading about such features, so I will be happy in the future when room retentions start working. After all, it would be possible to set your own schedule for deleting old messages, which would be a considerable advantage over Signal, Telegram, and WhatsApp because they have a predefined time that is a maximum of one week. Nonetheless, one week is not enough in many cases, one to three months would be perfect because data that is older than that is usually no longer needed, but frequently, someone misses something in the chat over a week old.

Conclusion

  • Matrix embraces many interesting concepts, such as federalism, open-source, and a high degree of configurability, which gives you a great deal of freedom to use it the way you want and not just have everything very rigidly predetermined, as is the case with some other instant messengers.
  • Unfortunately, there were some incomprehensible errors and restrictions during the test. For example, there are servers that allow large file attachments (e.g., 50MB) and others that only allow tiny file attachments (e.g., 10MB). So if you try to send a large file that does not exceed the maximum size on your home server, you will not get an error, but if the recipient is on a server that does not allow such a size, you will get an encryption error, which is nonsensical. Figuring this out was very time-consuming, and it makes sending long voice messages viable only if they are post-edited and split into smaller chunks. However, because some people in the 2020s frequently communicate with long voice messages or even short videos, this could be a severe limitation.
  • The default configuration is very secure and sufficient for normal communication.
  • You can make voice calls, but you cannot record voice messages directly. You need an external application to record, and then you have to share the recording with the messenger to send it. For many casual users, this could be an impassable hurdle. Although, I personally think it is superior, as applications that are specifically developed for a particular task can do that one thing well. Plus, the audio quality was also noticeably better than usual, and it was super that you could easily pause the recording.
  • Since Matrix is still relatively new and under heavy development, there will be many interesting and innovative features in the future that other instant messengers do not offer.
  • Matrix can be used like Discord, meaning that a community with several different rooms can be created.
  • I have encountered a fairly toxic community, which I actually expect more with easy-to-use software. However, toxic communities are rather an exception with more complex software.
  • You should really spend the time and find a server near you that is not jam-packed to have a better experience. The preset default server is overcrowded because everyone who does not go the extra mile is there.