This article may contain excessive or inappropriate references to self-published sources. (February 2019) (Learn how and when to remove this template message)
|Purpose||Federated messaging and data synchronization|
|Developer(s)||The Matrix.org Foundation|
|Based on||HTTP, WebRTC|
|OSI layer||Application layer|
Matrix is an open standard and lightweight protocol for real-time communication. It is designed to allow users with accounts at one communications service provider to communicate with users of a different service provider via online chat, voice over IP, and videotelephony. That is, it aims to make real-time communication work seamlessly between different service providers, just like standard Simple Mail Transfer Protocol email does now for store-and-forward email service.
From a technical perspective, it is an application layer communication protocol for federated real-time communication. It provides HTTP APIs and open source reference implementations for securely distributing and persisting messages in JSON format over an open federation of servers. It can integrate with standard web services via WebRTC, facilitating browser-to-browser applications.
The initial project was created inside Amdocs, while building a chat tool called "Amdocs Unified Communications", by Matthew Hodgson and Amandine Le Pape. Amdocs then funded most of the development work from 2014 to October 2017.
The protocol received praise mixed with some cautionary notes after it launched in 2014. Reviewers noted that other attempts at defining an open instant messaging or multimedia signalling protocol of this type had difficulties becoming widely adopted—e.g. XMPP and IRCv3—and have highlighted the challenges involved, both technological and political. Some were unclear if there was enough demand among users for services which interoperate among providers.
In July 2017 the funding by Amdocs was announced to be cut and in the following weeks the core team created their own UK-based company, "New Vector", which was mainly built to support Matrix and Riot development. During this time period, there were multiple calls for support to the community and companies that build on Matrix, to help pay for the wages of at least part of the core team. Patreon and Liberapay crowdfunding accounts were created, and the core team started a video podcast, called Matrix "Live" to keep the contributors up to speed with ongoing developments. This was expanded by a weekly blog format, called "This Week in Matrix", where interested community members could read, or submit their own, Matrix-related news.
In the early weeks after its creation, there the Matrix team and the company Purism published plans to collaborate in the creation of the Librem 5 phone. The Librem 5 was intended to be a Matrix native phone, where the default pre-installed messaging and caller app should use Matrix for audio and video calls and instant messaging.
In April 2018 the French Government announced plans to create their own instant messaging tool, which was later confirmed, by the Matrix team, to be based on Riot and Matrix. New Vector is said to provide some support to the government in this endeavour.
In February 2019, the KDE community announced to adopt Matrix for its internal communications needs, as a decentralized alternative to other modern tools like Telegram, Slack, and Discord, and operate its own server instance.
In April 2019, Matrix.org suffered a security breach in which the production servers were compromised. This breach was not an issue with the Matrix protocol and did not directly affect homeservers other than matrix.org.
Matrix targets use cases like voice over IP, Internet of Things and instant messaging, including group communication, along with a longer-term goal to be a generic messaging and data synchronization system for the web. The protocol supports security and replication, maintaining full conversation history, with no single points of control or failure. Existing communication services can integrate with the Matrix ecosystem.
Client software is available for open-federated Instant Messaging (IM), voice over IP (VoIP) and Internet of Things (IoT) communication.
The Matrix standard specifies RESTful HTTP APIs for securely transmitting and replicating JSON data between Matrix-capable clients, servers and services. Clients send data by PUTing it to a ‘room’ on their server, which then replicates the data over all the Matrix servers participating in this ‘room’. This data is signed using a git-style signature to mitigate tampering, and the federated traffic is encrypted with HTTPS and signed with each server’s private key to avoid spoofing. Replication follows eventual consistency semantics, allowing servers to function even if offline or after data-loss by re-synchronizing missing history from other participating servers.
The Olm library provides for optional end-to-end encryption on a room-by-room basis via a Double Ratchet Algorithm implementation. It can ensure that conversation data at rest is only readable by the room participants. With it configured, data transmitted over Matrix is only visible as ciphertext to the Matrix servers, and can be decrypted only by authorized participants in the room. The Olm and Megolm (an expansion of Olm to better suit the need for bigger rooms) libraries have been subject of a cryptographic review by NCC Group, whose findings are publicly available, and have been addressed by the Matrix team. The review was sponsored by the Open Technology Fund.
Matrix does support bridging messages from different chat applications into Matrix rooms. These bridges are programs that run on the server and communicate with the non-Matrix servers. Bridges can either be acting as puppets or relays, where in the former the individual users account is visibly posting the messages, and in the latter a bot posts the messages for non puppeteered user accounts.
Currently there are official bridges for:
The following bridges are maintained by the community:
- Apple iMessage
- Facebook Messenger
- Google Hangouts
- RSS/Twitter feeds
- Signal Messenger
Riot is the reference implementation of a client. Fractal is the official client of the GNOME desktop. Many other clients, bots, bridges, servers and other implementations of the Matrix protocol also exist.
- Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry (September 2016). "End-to-End Encrypted Messaging Protocols: An Overview". In Bagnoli, Franco; et al. (eds.). Internet Science. INSCI 2016. Florence, Italy: Springer. pp. 244–254. doi:10.1007/978-3-319-45982-0_22. ISBN 978-3-319-45982-0.
- Nathan Willis (2015-02-11). "Matrix: a new specification for federated realtime chat". LWN.net. Retrieved 2015-06-28.
- Adrian Bridgwater (2014-09-09). "Matrix.org Reloads Inside "Illusion of Control" Vortex". Dr. Dobb's Journal. Retrieved 2015-07-20.
- "Unified Communications". amdocs. Archived from the original on 2014-10-03. Retrieved 2018-11-04.
- "Who is Matrix.org?". matrix.org. 2019-02-20. Retrieved 2018-10-20.[self-published source]
- "Award Winners of the WebRTC 2014 Conference & Expo". Upperside Blog. 2014-12-23. Retrieved 2015-06-28.
- Phil Edholm (2015-05-18). "WebRTC World Miami Wrap Up and Review". WebRTC. Retrieved 2015-06-28.
- Andrew Prokop (2015-02-23). "Solving the WebRTC Interoperability Problem - Post". No Jitter. Retrieved 2015-06-28.
- Ian Scales (2015-05-11). "To interop or not to interop? Is Matrix.org the answer for silo'd comms services?". TelecomTV. Retrieved 2015-06-22.
- Matt Weinberger (2014-09-16). "Matrix wants to smash the walled gardens of messaging". ITworld. Retrieved 2015-07-20.
- "Linkedin entry for Vector Creations Limited". Retrieved 2018-10-22.[self-published source]
- "Free company information from Companies House (UK Government)". Retrieved 2018-07-30.
- "New Vector - We believe the future will be open and decentralized". New Vector. Retrieved 2018-10-20.[self-published source]
- "A Call to Arms: Supporting Matrix!". matrix.org. 2017-07-07. Retrieved 2018-10-20.[self-published source]
- "Hello world! | Matrix.org on Patreon". Patreon. Retrieved 2018-11-04.[self-published source]
- Matrixdotorg (2017-07-21), Matrix Live - Episode 1: July 14th 2017, retrieved 2018-10-22[self-published source]
- "This Week in Matrix". matrix.org. Retrieved 2018-10-22.[self-published source]
- "Matrix". CrunchBase. Retrieved 2015-06-28.
- "Awesome hosting for Matrix". www.modular.im. Retrieved 2018-10-20.[self-published source]
- Armasu, Lucian (2018-06-06). "Purism's Privacy-Focused Librem 5 Smartphone's On Track For A Jan '19 Release". Tom's Hardware. Retrieved 2018-11-04.
- "Librem 5 – A Security and Privacy Focused Phone". shop.puri.sm. Retrieved 2018-11-04.[self-published source]
- https://blogs.kde.org/2017/09/05/konversation-2x-2018-new-user-interface-matrix-support-mobile-version[self-published source]
- Rogers, Stewart (2018-01-29). "Status invests $5 million in Matrix to create a blockchain messaging superpower". VentureBeat. Retrieved 2018-10-20.
- "Status Invests $5M In Riot.im". Status Blog. 2018-01-29. Retrieved 2018-10-20.[self-published source]
- Rosemain, Mathieu. "France builds WhatsApp rival due to surveillance risk". U.S. Retrieved 2018-11-04.
- "Matrix and Riot confirmed as the basis for France's Secure Instant Messenger app". matrix.org. 2018-04-26. Retrieved 2018-11-04.[self-published source]
- "THE MATRIX.ORG FOUNDATION – Overview (free company information from Companies House)". beta.companieshouse.gov.uk. Retrieved 2018-11-04.
- "Introducing the Matrix.org Foundation (Part 1 of 2)". matrix.org. 2018-10-29. Retrieved 2018-11-04.[self-published source]
- Michael Larabel (2019-02-20). "KDE To Support Matrix Decentralized Instant Messaging". Phoronix. Retrieved 2019-02-20.
- "We have discovered and addressed a security breach". Matrix.org. Retrieved 2019-04-12.[self-published source]
- Alex Balducci; Jake Meredith (18 November 2016). "Matrix Olm Cryptographic Review". www.nccgroup.trust. Retrieved 2018-10-20.
- "Matrix's 'Olm' End-to-end Encryption security assessment released – and implemented cross-platform on Riot at last!". matrix.org. 2016-11-21. Retrieved 2018-10-20.[self-published source]
- "matrix-org/matrix-appservice-gitter". GitHub. 2018-09-27. Retrieved 2018-10-20.[self-published source]
- "matrix-org/matrix-appservice-irc". GitHub. Retrieved 2018-10-20.[self-published source]
- "matrix-org/matrix-appservice-slack". GitHub. Retrieved 2018-10-20.[self-published source]
- General purpose bridging using libpurple . Contribute to matrix-org/matrix-appservice-purple development by creating an account on GitHub, matrix.org, 2018-12-29, retrieved 2018-12-31[self-published source]
- "Half-Shot/matrix-appservice-discord". GitHub. Retrieved 2018-10-20.[self-published source]
- A Signal bridge for Matrix, matrix.org, 2019-06-16, retrieved 2019-06-23[self-published source]
- "tulir/mautrix-telegram". GitHub. Retrieved 2018-10-20.[self-published source]
- "tulir/mautrix-whatsapp". GitHub. Retrieved 2018-10-20.[self-published source]
- "Try Matrix Now!". Matrix.org. Retrieved 13 August 2017.[self-published source]