Matrix (communication protocol)

Matrix
Communications protocol
Purpose Federated messaging and data synchronization
Introduced December 2014 (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

Development of Matrix is led by Matrix.org, a non-for-profit initiative based in the United Kingdom, which hopes to make it an open standard for decentralised, persistent and interoperable communications over the Internet.[7] 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,[8] and of the Best in Show award at WebRTC World in 2015.[9]

Protocol

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

Riot is a hosting service and open source client that uses Matrix. It is owned by Amdocs and its CTO is Matthew Hodgson, who is also the technical lead of Matrix.org.[10]

See also

References

  1. 1 2 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. 1 2 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. "Matrix". CrunchBase. Retrieved 2015-06-28.
  8. "Award Winners of the WebRTC 2014 Conference & Expo - Upperside Blog". WebRTC. 2014-12-23. Retrieved 2015-06-28.
  9. "WebRTC World Miami Wrap Up and Review". WebRTC. 2015-05-18. Retrieved 2015-06-28.
  10. Butcher, Mike (19 September 2016). "Riot wants to be like Slack, but with the flexibility of an underlying open source platform". TechCrunch. Retrieved 13 October 2016.
This article is issued from Wikipedia - version of the 10/15/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.