Matrix, is a platform to organize decentralized communications, that is developed as a project that uses open standards and pays great attention to ensuring the security and privacy of users.
Matrix provides end-to-end encryption based on its own protocol, including the use of the Double Ratchet algorithm (part of the signal protocol). Final encryption is used in both direct messaging and chat rooms (using the Megolm mechanism).
The implementation of the encryption methods was audited by the NCC Group organization. Since the transport use HTTPS + JSON with the ability to use the WebSockets protocol, or on the basis of COAP.
The system it is formed as a community of servers that can interact with each other and come together in a common decentralized network.
The messages are replicated to all the servers to which the messaging participants are connected. Messages are distributed between servers in the same way as they are distributed between Git repositories.
In the event of a temporary server shutdown, messages are not lost, but rather are transmitted to users after the server resumes operation. Various user ID options are supported, including email, phone number, Facebook account, etc.
There is no single point of failure or message control on the network. All servers covered in the discussion are the same.
Any user can start their own server and connect it to the public network. Gateways can be created for Matrix to interact with systems based on other protocolss, for example, the services are prepared for the bidirectional sending of messages on IRC, Facebook, Telegram, Skype, Hangouts, email, WhatsApp and Slack.
In addition to instant messaging and chat, the system can be used to transfer files, send notifications, organize conference calls, make voice and video calls. Matrix allows you to use unlimited search and viewing of correspondence history.
It also supports advanced features such as write notification, online user presence evaluation, read receipt, push notifications, server-side search, history synchronization, and client status.
To coordinate the development of the project, recently created the non-profit organization Matrix.org Foundation, which will guarantee the independence of the project, develop Matrix-related standards and act as a neutral platform for joint decision-making.
The Matrix.org Foundation is led by a board of five non-commercial ecosystem directors who are respected in the community and called to uphold the mission of the project.
Directors included John Crowcroft (Jon Crowcroft, one of the pioneers of decentralized communications), Matthew Hodgson (Matthew Hodgson, Matrix co-founder), Amandine Le Pape (Amandine Le Pape, Matrix co-founder), Ross Schulman (Ross Schulman, Open Technology Institute lawyer specializing in Internet and decentralized systems), Yuta Steiner (Jutta Steiner, co-founder of the blockchain-based company Parity Technologies).
Also recently the first stable version of the protocol was released Matrix 1.0 and related libraries and specifications.
In which this new version of the Matrix is fully stabilized and has reached a suitable state as a basis for developing independent implementations of clients, servers, bots and gateways. The developments of the project are distributed under the Apache 2.0 license.
By default, Room Protocol 4 is used to create new chats. When migrating from previous versions, it should be noted that connecting to a common decentralized network now requires obtaining a valid TLS certificate.
As clients, you can use Riot (available for Linux, Windows, macOS, Web, Android, and iOS), Weechat (CLI in Lua), nheko (C ++ / Qt), Quaternion (C ++ / Qt), and Fractal (Rust / Gtk).
The next work on the server implementation is planned to optimize performance and reduce memory consumption. In addition to the reference server in Python, experimental implementations of Ruma (Rust) and Dendrite (Go) are also being developed.