SlideShare a Scribd company logo
The future of communication is
decentralised, secure and
interoperable
matthew@matrix.org
http://www.matrix.org
A non-profit open
standard for
defragmenting
communication
To create a global
encrypted communication
meta-network that bridges
all the existing silos &
liberates our
communication to be
controlled only by us.
4
PSTN
Skype
…
Hangouts
Github
5
PSTN
Skype
…
Hangouts
Github
No single party own your
conversations – they are
shared over all participants.
6
Matrix is for:
Group Chat (and 1:1)
WebRTC Signalling
Bridging Comms Silos
Internet of Things Data
…and anything else which needs to
pubsub persistent data to the world.
7
Matrix Architecture
Clients
Home
Servers
Identity
Servers
Application
Servers
The Matrix Ecosystem
The	Matrix	Specification	(Client/Server	API)
client-sideserver-side
Other	Servers	and	
Services
Synapse
(Reference	Matrix	
Server)
Matrix	Application	
Services	and	Bridges
Other	
Clients
Matrix	
iOS
Console
MatrixKit (iOS)
matrix-ios-sdk
Matrix	
Web	
Console
matrix-
angular-
sdk
matrix-js-sdk
Android	
Console
matrix-android-sdk
matrix-
react-
sdk
What do you get in the spec?
• Decentralised conversation history
(timeline and key-value stores)
• Group Messaging
• End-to-end Encryption (new!)
• VoIP signalling for WebRTC
• Server-side push notification rules
• Server-side search
• Read receipts, Typing Notifs, Presence
• Synchronised read state and unread counts
• Decentralised content repository
• “Account data” for users per room
10
Clients
• >30 matrix clients (that we know about)
– Ranging from text UIs (Weechat, Emacs(!))
– …to desktop apps (Quaternion, NaChat, Pidgin)
– …to glossy web and mobile clients (Riot)
– …to protocol proxies (matrix-ircd)
• Over 15 client-side SDKs:
– Official: JS, React, iOS, Android
– Semi-official: Python, Perl5, Go
– Community: Erlang, Ruby, Lisp, Elixir, Haskell, Rust…
11
Home servers
• Synapse:the original reference Matrix home
serverimplementation.
– 50K lines of Python/Twisted.
– Some perf and maintainability challenges…
• Ruma: Community project Rust implementation…
early but promising!
• Dendron: skeleton Golang reference impl
– Wraps synapses, incrementally migrating endpoints
• BulletTime (Go), Pallium (Go), jSynapse (Java)
experiments from the community
12
What does it look like?
https://riot.im
13
The client-server API
To send a message:
curl -XPOST -d '{"msgtype":"m.text", "body":"hello"}'
"https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_
ID/send/m.room.message?access_token=ACCESS_TOKEN"
{
"event_id": "YUwRidLecu"
}
14
The client-server API
To set up a WebRTC call:
curl -XPOST –d '{
"version": 0, 
"call_id": "12345”, 
"offer": {
"type" : "offer”,
"sdp" : "v=0rno=- 658458 2 IN IP4 127.0.0.1…"
}
}'
"https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_
ID/send/m.call.invite?access_token=ACCESS_TOKEN"
{ "event_id": "ZruiCZBu” } 15
Basic 1:1 VoIP Matrix Signalling
Caller Callee
m.call.invite ----------->
m.call.candidate -------->
[more candidates events]
User answers call
<------ m.call.answer
[media flows]
<------ m.call.hangup
16
Bridges and Integrations
Existing App
Application
Service
3rd party
Server
3rd party
Clients
Latest Bridges!
• Official ones:
– IRC
– Slack
– Gitter
– Rocket.Chat
– MatterMost
– FreeSWITCH
– Asterisk (Respoke)
– libpurple
• Community ones
– Twitter
– Telegram
– Hangouts
– Slack webhooks
– Gitter (‘sidecar’)
– ~8 IRC ones…
– ~4 XMPP ones...
Typical Bridging Stack
19
matrix-
appservice-
irc
matrix-appservice-bridge
matrix-appservice-node
matrix-js-sdk
Node	JS
matrix-
appservice-
slack
matrix-
appservice-
purple …
Community Status
• Started out in Sept 2014
• Currently in very late beta
• ~450K user accounts on the Matrix.org
homeserver (many of these are bridged)
• ~400K messages per day
• ~50K rooms that Matrix.org participates in
• ~1000 federated servers
• ~50 companies building on Matrix
20
21
22
End to End Crypto with Olm
23
https://matrix.org/git/olm
End to End Encryption
• 2 years in the making!
• Based on Open Whisper Systems’ “Double
Ratchet” alg as used in Signal etc.
• Audited by NCC Group
• Started final roll-out in Sept on Web
• Launching next week on iOS & Android (on
develop branches currently)
• Supports per-target-device encryption
• Supports flexible history privacy per-room.
24
Olm
• Apache License C++11 implementation of
Trevor Perrin / Moxie Marlinspike’s Double
Ratchet, exposing a C API.
• Supports encrypted asynchronous 1:1
communication.
• “Megolm” layer adds group
communication too.
• 130KB x86-64 .so, or 208KB of asm.js
25
26
Olm	+	Megolm C	API
Account
• Keys
Session
• Initial	Key	Exchange
Ratchet
• Encrypt
• Decrypt
Crypto
• Curve25519
• AES
• SHA256
Megolm Group	
Ratchet
Alice Bob
Alice and Bob both generate identity (I) &
ephemeral (E) elliptic curve key pairs
Initial Shared Secret (ISS) =
ECDH(Ea, Ib) +
ECDH(Ia, Eb) +
ECDH(Ea, Eb)
Discard Ea
Derive chain key from ISS (HMAC)
Derive message key (K0) from chain key
(HMAC)
Derive new chain key ß hash ratchet
M0 = Message plaintext
C0 = Authenticated Encryption of (M0, K0)
Ra0 = generate random ratchet key pair
Ja0 = incremental counter for each hash
ratchet advancement
Ia, Ea, Eb, Ra0, Ja0, C0
A Double ratchet.
Kinda sorta.
Alice Bob
Compute same Initial Shared Secret =
ECDH(Ea, Ib) +
ECDH(Ia, Eb) +
ECDH(Ea, Eb)
Compute same K0
M0 = Authenticated decryption of (C0, K0)
To respond, B starts new ratchet chain:
Rb1 = generate random ratchet key pair
New Initial Shared Secret =
ECDH(Ra0, Rb1) ß ECDH Ratchet
C0 = Authenticated Encryption of (M, K0)
Ra0 = generate random ratchet key
Ja0 = incremental counter for each hash
ratchet advancement
Rb1, Jb1, C1
A Double ratchet.
Kinda sorta.
29
Alice
Sending | Receiving
MK CK RK CK MK
-- -- -- -- --
ECDH(A0,B0)
|
|
ECDH(A1,B0) +
/|
/ |
/ + ECDH(A1,B1)
CK-A1-B0 |
| | 
MK-0 ----+ | 
| | CK-A1-B1
MK-1 ----+ | |
| | +---- MK-0
MK-2 ----+ | |
| +---- MK-1
ECDH(A2,B1) +
/|
/ |
/ |
CK-A2-B1 |
| + ECDH(A2,B2)
MK-0 ----+ 


CK-A2-B2
|
+---- MK-0
|
+---- MK-1
Group chat
• Adds a 3rd type of ratchet: “Megolm”,
used to encrypt group messages.
• Establish 'normal' 1:1 ratchets between all
participants in order to exchange the
initial secret for the group ratchet.
• All receivers share the same group ratchet
state to decrypt the room.
30
Flexible privacy with Olm
• Users can configure rooms to have:
– No ratchet (i.e. no crypto)
– Full PFS ratchet
– Selective ratchet
• Deliberately re-use ratchet keys to support
paginating partial eras of history.
• Up to participants to trigger the ratchet (e.g. when
a member joins or leaves the room)
– Per-message type ratchets?
31
• More hosted bridges, bots, services etc
• Threading
• Message tagging (e.g. “Like” support)
• Group ACLs
• File tagging and management
• Decentralised identity
• “Fixing spam”
32
Matrix: What’s coming up?
We need help!!
33
• We need people to try running their own
servers and join the federation.
• We need people to run gateways to their
existing services
• We need feedback on the APIs.
• Consider native Matrix support for new
apps
• Follow @matrixdotorg and spread the
word!
34
Thank you!
matthew@matrix.org
http://matrix.org
@matrixdotorg
35

More Related Content

PPTX
Comando grep y expresiones regulares
PDF
Introduction - Trend Micro Deep Security
PPT
Presentation, Firewalls
PDF
MogileFSをバックエンドとしたPrivate S3の作り方
PPTX
Ransomware - Impact, Evolution, Prevention
PDF
Module 19 (evading ids, firewalls and honeypots)
PPTX
Http Vs Https .
PDF
VPN - Virtual Private Network
Comando grep y expresiones regulares
Introduction - Trend Micro Deep Security
Presentation, Firewalls
MogileFSをバックエンドとしたPrivate S3の作り方
Ransomware - Impact, Evolution, Prevention
Module 19 (evading ids, firewalls and honeypots)
Http Vs Https .
VPN - Virtual Private Network

What's hot (20)

PDF
MroongaとPGroonga
PPTX
MongoDB and Azure Databricks
ODP
Web Application Firewall
PDF
F5 Web Application Security
PDF
Linux Hardening - nullhyd
PPTX
Cyber security
PDF
Secure PHP Coding
PPTX
Application Layer and Protocols
PPTX
Evading Microsoft ATA for Active Directory Domination
PPTX
F5 - BigIP ASM introduction
PDF
Security in the Internet of Things
PPTX
Introduction to shodan
PDF
Ch 11: Hacking Wireless Networks
PPTX
Reverse proxies & Inconsistency
PPTX
Hacking
PDF
Zero Trust Model Presentation
PDF
OReilly-Web-Application-Security-NGINX.pdf
PPTX
DDoS ATTACKS
MroongaとPGroonga
MongoDB and Azure Databricks
Web Application Firewall
F5 Web Application Security
Linux Hardening - nullhyd
Cyber security
Secure PHP Coding
Application Layer and Protocols
Evading Microsoft ATA for Active Directory Domination
F5 - BigIP ASM introduction
Security in the Internet of Things
Introduction to shodan
Ch 11: Hacking Wireless Networks
Reverse proxies & Inconsistency
Hacking
Zero Trust Model Presentation
OReilly-Web-Application-Security-NGINX.pdf
DDoS ATTACKS
Ad

Viewers also liked (10)

PPTX
Presintation on Project constraint
PPT
2. characteristics of a projec
PDF
Effective communication matrix
PPTX
Chapter 8 product, service, and brands (building customer value)
PPT
Project organization
PPTX
Triple Constraints of Projects: Scope, Cost & Schedule
PPT
Product, Services, and Branding Strategy
PDF
6 Characteristics of a Project
PPTX
Chapter 4 Types Of Organization
PPSX
Project organization
Presintation on Project constraint
2. characteristics of a projec
Effective communication matrix
Chapter 8 product, service, and brands (building customer value)
Project organization
Triple Constraints of Projects: Scope, Cost & Schedule
Product, Services, and Branding Strategy
6 Characteristics of a Project
Chapter 4 Types Of Organization
Project organization
Ad

Similar to Matrix: The future of communication is decentralised, secure and interoperable (20)

PPTX
Building a new ecosystem for interoperable communications
PPTX
Construyendo un nuevo ecosistema para comunicaciones interoperables
PDF
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
PDF
Matrix - One-year in, Matthew Hodgson, Matrix.org
PDF
The missing signalling layer for WebRTC
PDF
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
PDF
DevCon 5 (July 2013) - WebSockets
PPTX
Decentralised comms Meetup - The dawn
PPTX
IOT Communication And Open Platforms 4TH UNIT.pptx
PDF
IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
PDF
Berlin Devops: Managing systems with Marionette Collective
PDF
WebCamp 2016: Python. Вячеслав Каковский: Real-time мессенджер на Python. Осо...
PDF
Mesh network presentation
PDF
WebCamp Ukraine 2016: Instant messenger with Python. Back-end development
PDF
Defcon 23 - David Huerta - alice and bob are really confused
PDF
5.3. Undercover communications
PDF
Computer network (10)
PPTX
BitChat_Seminar_Presentation.pptx sjsjks
PDF
how to develop a serverless in-app notification system - beSharp serverlessda...
Building a new ecosystem for interoperable communications
Construyendo un nuevo ecosistema para comunicaciones interoperables
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Matrix - One-year in, Matthew Hodgson, Matrix.org
The missing signalling layer for WebRTC
Matrix, The Year To Date, Ben Parsons, TADSummit 2018
DevCon 5 (July 2013) - WebSockets
Decentralised comms Meetup - The dawn
IOT Communication And Open Platforms 4TH UNIT.pptx
IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
Berlin Devops: Managing systems with Marionette Collective
WebCamp 2016: Python. Вячеслав Каковский: Real-time мессенджер на Python. Осо...
Mesh network presentation
WebCamp Ukraine 2016: Instant messenger with Python. Back-end development
Defcon 23 - David Huerta - alice and bob are really confused
5.3. Undercover communications
Computer network (10)
BitChat_Seminar_Presentation.pptx sjsjks
how to develop a serverless in-app notification system - beSharp serverlessda...

More from Alan Quayle (20)

PDF
What is a vCon?
PDF
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
PPTX
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
PDF
What makes a cellular IoT API great? Tobias Goebel
PDF
eSIM as Root of Trust for IoT security, João Casal
PPTX
Architecting your WebRTC application for scalability, Arin Sime
PPTX
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
PDF
Programmable Testing for Programmable Telcos, Andreas Granig
PDF
How to best maximize the conversation data stream for your business? Surbhi R...
PDF
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
PDF
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
PDF
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
PDF
Open Source Telecom Software Survey 2022, Alan Quayle
PDF
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
PDF
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
PDF
What happened since we last met TADSummit 2022, Alan Quayle
PDF
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
PDF
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
PDF
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
PDF
How to bring down your own RTC platform. Sandro Gauci
What is a vCon?
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
What makes a cellular IoT API great? Tobias Goebel
eSIM as Root of Trust for IoT security, João Casal
Architecting your WebRTC application for scalability, Arin Sime
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
Programmable Testing for Programmable Telcos, Andreas Granig
How to best maximize the conversation data stream for your business? Surbhi R...
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Open Source Telecom Software Survey 2022, Alan Quayle
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
What happened since we last met TADSummit 2022, Alan Quayle
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
How to bring down your own RTC platform. Sandro Gauci

Recently uploaded (20)

PDF
Zenith AI: Advanced Artificial Intelligence
PDF
project resource management chapter-09.pdf
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
August Patch Tuesday
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Zenith AI: Advanced Artificial Intelligence
project resource management chapter-09.pdf
A novel scalable deep ensemble learning framework for big data classification...
TLE Review Electricity (Electricity).pptx
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Encapsulation_ Review paper, used for researhc scholars
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
August Patch Tuesday
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
1 - Historical Antecedents, Social Consideration.pdf
Hindi spoken digit analysis for native and non-native speakers
Unlocking AI with Model Context Protocol (MCP)
Digital-Transformation-Roadmap-for-Companies.pptx
A comparative study of natural language inference in Swahili using monolingua...
Group 1 Presentation -Planning and Decision Making .pptx
OMC Textile Division Presentation 2021.pptx
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf

Matrix: The future of communication is decentralised, secure and interoperable

  • 1. The future of communication is decentralised, secure and interoperable matthew@matrix.org http://www.matrix.org
  • 2. A non-profit open standard for defragmenting communication
  • 3. To create a global encrypted communication meta-network that bridges all the existing silos & liberates our communication to be controlled only by us.
  • 6. No single party own your conversations – they are shared over all participants. 6
  • 7. Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which needs to pubsub persistent data to the world. 7
  • 10. What do you get in the spec? • Decentralised conversation history (timeline and key-value stores) • Group Messaging • End-to-end Encryption (new!) • VoIP signalling for WebRTC • Server-side push notification rules • Server-side search • Read receipts, Typing Notifs, Presence • Synchronised read state and unread counts • Decentralised content repository • “Account data” for users per room 10
  • 11. Clients • >30 matrix clients (that we know about) – Ranging from text UIs (Weechat, Emacs(!)) – …to desktop apps (Quaternion, NaChat, Pidgin) – …to glossy web and mobile clients (Riot) – …to protocol proxies (matrix-ircd) • Over 15 client-side SDKs: – Official: JS, React, iOS, Android – Semi-official: Python, Perl5, Go – Community: Erlang, Ruby, Lisp, Elixir, Haskell, Rust… 11
  • 12. Home servers • Synapse:the original reference Matrix home serverimplementation. – 50K lines of Python/Twisted. – Some perf and maintainability challenges… • Ruma: Community project Rust implementation… early but promising! • Dendron: skeleton Golang reference impl – Wraps synapses, incrementally migrating endpoints • BulletTime (Go), Pallium (Go), jSynapse (Java) experiments from the community 12
  • 13. What does it look like? https://riot.im 13
  • 14. The client-server API To send a message: curl -XPOST -d '{"msgtype":"m.text", "body":"hello"}' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ ID/send/m.room.message?access_token=ACCESS_TOKEN" { "event_id": "YUwRidLecu" } 14
  • 15. The client-server API To set up a WebRTC call: curl -XPOST –d '{ "version": 0, "call_id": "12345”, "offer": { "type" : "offer”, "sdp" : "v=0rno=- 658458 2 IN IP4 127.0.0.1…" } }' "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ ID/send/m.call.invite?access_token=ACCESS_TOKEN" { "event_id": "ZruiCZBu” } 15
  • 16. Basic 1:1 VoIP Matrix Signalling Caller Callee m.call.invite -----------> m.call.candidate --------> [more candidates events] User answers call <------ m.call.answer [media flows] <------ m.call.hangup 16
  • 17. Bridges and Integrations Existing App Application Service 3rd party Server 3rd party Clients
  • 18. Latest Bridges! • Official ones: – IRC – Slack – Gitter – Rocket.Chat – MatterMost – FreeSWITCH – Asterisk (Respoke) – libpurple • Community ones – Twitter – Telegram – Hangouts – Slack webhooks – Gitter (‘sidecar’) – ~8 IRC ones… – ~4 XMPP ones...
  • 20. Community Status • Started out in Sept 2014 • Currently in very late beta • ~450K user accounts on the Matrix.org homeserver (many of these are bridged) • ~400K messages per day • ~50K rooms that Matrix.org participates in • ~1000 federated servers • ~50 companies building on Matrix 20
  • 21. 21
  • 22. 22
  • 23. End to End Crypto with Olm 23 https://matrix.org/git/olm
  • 24. End to End Encryption • 2 years in the making! • Based on Open Whisper Systems’ “Double Ratchet” alg as used in Signal etc. • Audited by NCC Group • Started final roll-out in Sept on Web • Launching next week on iOS & Android (on develop branches currently) • Supports per-target-device encryption • Supports flexible history privacy per-room. 24
  • 25. Olm • Apache License C++11 implementation of Trevor Perrin / Moxie Marlinspike’s Double Ratchet, exposing a C API. • Supports encrypted asynchronous 1:1 communication. • “Megolm” layer adds group communication too. • 130KB x86-64 .so, or 208KB of asm.js 25
  • 26. 26 Olm + Megolm C API Account • Keys Session • Initial Key Exchange Ratchet • Encrypt • Decrypt Crypto • Curve25519 • AES • SHA256 Megolm Group Ratchet
  • 27. Alice Bob Alice and Bob both generate identity (I) & ephemeral (E) elliptic curve key pairs Initial Shared Secret (ISS) = ECDH(Ea, Ib) + ECDH(Ia, Eb) + ECDH(Ea, Eb) Discard Ea Derive chain key from ISS (HMAC) Derive message key (K0) from chain key (HMAC) Derive new chain key ß hash ratchet M0 = Message plaintext C0 = Authenticated Encryption of (M0, K0) Ra0 = generate random ratchet key pair Ja0 = incremental counter for each hash ratchet advancement Ia, Ea, Eb, Ra0, Ja0, C0 A Double ratchet. Kinda sorta.
  • 28. Alice Bob Compute same Initial Shared Secret = ECDH(Ea, Ib) + ECDH(Ia, Eb) + ECDH(Ea, Eb) Compute same K0 M0 = Authenticated decryption of (C0, K0) To respond, B starts new ratchet chain: Rb1 = generate random ratchet key pair New Initial Shared Secret = ECDH(Ra0, Rb1) ß ECDH Ratchet C0 = Authenticated Encryption of (M, K0) Ra0 = generate random ratchet key Ja0 = incremental counter for each hash ratchet advancement Rb1, Jb1, C1 A Double ratchet. Kinda sorta.
  • 29. 29 Alice Sending | Receiving MK CK RK CK MK -- -- -- -- -- ECDH(A0,B0) | | ECDH(A1,B0) + /| / | / + ECDH(A1,B1) CK-A1-B0 | | | MK-0 ----+ | | | CK-A1-B1 MK-1 ----+ | | | | +---- MK-0 MK-2 ----+ | | | +---- MK-1 ECDH(A2,B1) + /| / | / | CK-A2-B1 | | + ECDH(A2,B2) MK-0 ----+ CK-A2-B2 | +---- MK-0 | +---- MK-1
  • 30. Group chat • Adds a 3rd type of ratchet: “Megolm”, used to encrypt group messages. • Establish 'normal' 1:1 ratchets between all participants in order to exchange the initial secret for the group ratchet. • All receivers share the same group ratchet state to decrypt the room. 30
  • 31. Flexible privacy with Olm • Users can configure rooms to have: – No ratchet (i.e. no crypto) – Full PFS ratchet – Selective ratchet • Deliberately re-use ratchet keys to support paginating partial eras of history. • Up to participants to trigger the ratchet (e.g. when a member joins or leaves the room) – Per-message type ratchets? 31
  • 32. • More hosted bridges, bots, services etc • Threading • Message tagging (e.g. “Like” support) • Group ACLs • File tagging and management • Decentralised identity • “Fixing spam” 32 Matrix: What’s coming up?
  • 34. • We need people to try running their own servers and join the federation. • We need people to run gateways to their existing services • We need feedback on the APIs. • Consider native Matrix support for new apps • Follow @matrixdotorg and spread the word! 34