Matrix (communication protocol)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Matrix
Communications protocol
Matrix logo.svg
Purpose Federated messaging and data synchronization
Introduced December 2014; 3 years ago (2014-12)[1]
Based on HTTP, WebRTC
OSI layer Application layer

Matrix is an open 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 communications 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.[2][3] It can integrate with standard web services via WebRTC, facilitating browser-to-browser applications.

Other attempts at defining an open instant messaging or multimedia signalling protocol of this type and getting it widely adopted (e.g. XMPP and IRCv3) have highlighted the challenges involved, both technological and political.[4] It is unclear if there is enough demand among users for services which interoperate among providers.[5][6]

Development[edit]

Development of Matrix is led by New Vector Limited, a private company based in the United Kingdom[7], which hopes to make it an open standard for decentralised, persistent and interoperable communications over the Internet.[8] 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.[2]

Client software is available for open-federated Instant Messaging (IM), Voice over IP (VoIP) and Internet of Things (IoT) communication.

Matrix was the winner of the Innovation award at WebRTC 2014 Conference & Expo,[9] and of the Best in Show award at WebRTC World in 2015.[10]

Protocol[edit]

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.[1] 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.

Clients[edit]

Riot is the reference implementation of a client. Many other clients, bots, bridges, servers and other implementations of the Matrix protocol exist too.[11]

See also[edit]

References[edit]

  1. ^ a b Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry (September 2016). "End-to-End Encrypted Messaging Protocols: An Overview". In Bagnoli, Franco; et al. 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. 
  2. ^ a b Nathan Willis (2015-02-11). "Matrix: a new specification for federated realtime chat". LWN.net. Retrieved 2015-06-28. 
  3. ^ Adrian Bridgwater (2014-09-09). "Matrix.org Reloads Inside "Illusion of Control" Vortex". Dr. Dobb's Journal. Retrieved 2015-07-20. 
  4. ^ Andrew Prokop (2015-02-23). "Solving the WebRTC Interoperability Problem - Post". No Jitter. Retrieved 2015-06-28. 
  5. ^ 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. 
  6. ^ Matt Weinberger (2014-09-16). "Matrix wants to smash the walled gardens of messaging". ITworld. Retrieved 2015-07-20. 
  7. ^ "Free company information from Companies House (UK Government)". Retrieved 2018-07-30. 
  8. ^ "Matrix". CrunchBase. Retrieved 2015-06-28. 
  9. ^ "Award Winners of the WebRTC 2014 Conference & Expo - Upperside Blog". WebRTC. 2014-12-23. Retrieved 2015-06-28. 
  10. ^ "WebRTC World Miami Wrap Up and Review". WebRTC. 2015-05-18. Retrieved 2015-06-28. 
  11. ^ "Try Matrix Now!". Matrix.org. Retrieved 13 August 2017. 

External links[edit]