[Mimi] Matrix and MIMI
Matthew Hodgson <matthew@matrix.org> Mon, 25 July 2022 09:51 UTC
Return-Path: <matthew@matrix.org>
X-Original-To: mimi@ietfa.amsl.com
Delivered-To: mimi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EDFBFC157B36 for <mimi@ietfa.amsl.com>; Mon, 25 Jul 2022 02:51:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.91
X-Spam-Level:
X-Spam-Status: No, score=-4.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, PDS_OTHER_BAD_TLD=1.997, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=messagingengine.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 91wi5_b09bFF for <mimi@ietfa.amsl.com>; Mon, 25 Jul 2022 02:51:21 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 164E7C14CF12 for <mimi@ietf.org>; Mon, 25 Jul 2022 02:51:02 -0700 (PDT)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 5A8E85C0160 for <mimi@ietf.org>; Mon, 25 Jul 2022 05:51:01 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Mon, 25 Jul 2022 05:51:01 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:date:feedback-id:feedback-id:from:from:in-reply-to :message-id:mime-version:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1658742661; x=1658829061; bh=uCQj7YiFOuZSY3JB0n8LLNQDe3rT suwSnK/1sNdqov0=; b=BSZAawmykWNev6pOzzDAHbx/3yDUSN/kiAAay68pZNx7 6PWu6ZyvUDMWuIfNdnPzoM4VN7Mvpm3YHI45FnvYZDavm3wd69BjgYcQ5jppt2nx xcSNifzkmkHESeurpFOVjyDaKFJmIO4c0kDGFvGLceTYptK38aWoI7e0S8dIE+8n 3/TduTEIWkQJz5qJhic/D9ondvBZHsnTyRWcXlK5SjrNbk48DfsppOaRYWoAsj/p QQY0I3v/64bi+9kT+gsIX810rJ9gNVYuveFTQQ6dAA/ga77ENfRK1xgzc3evFy+L T35ZwLjyydd0h82U8yWS4LHjftQh87fMC2f0hLDQaQ==
X-ME-Sender: <xms:hWfeYlnsfX1jS2nlZwhOEPMfrgsjNrtCraJN6VuoSZX9sj7GfFvSmw> <xme:hWfeYg209-g7AR3R0c3jICymEnya0AfN00xx3APiP37I4B_WqQcDTUL9lR7yWudiO W1hHnRY26syG-BRefU>
X-ME-Received: <xmr:hWfeYrqvl_ZIMp-hE_8BPf2kF1bdwpx-CyNHqlV56Vy_0u540WnZFaiG1Pq0U8RtNAHaVSgVBfUxyvrc2Qh_2b0pgFE>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvddtkedgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgfrhhlucfvnfffucdludegmdenucfjughrpefkff ggfgfvhffutgfgsehtkeertddtfeejnecuhfhrohhmpeforghtthhhvgifucfjohgughhs ohhnuceomhgrthhthhgvfiesmhgrthhrihigrdhorhhgqeenucggtffrrghtthgvrhhnpe ejtdfhhedvkedtffefheehveejtddvjeeiieetfeefueffgeelfeffheetgeevgeenucff ohhmrghinhepihgvthhfrdhorhhgpdhmrghtrhhigidrohhrghdpuggvtggvnhhtrhgrlh hishgvugdrohhrghdpvghlvghmvghnthdrihhopdhsihhfthgvugdrvghupdgtohhmmhgt ohhnrdighiiipdhgihhthhhusgdrtghomhdprhgvrggumhgvrdhmugenucevlhhushhtvg hrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrghtthhhvgifsehmrght rhhigidrohhrgh
X-ME-Proxy: <xmx:hWfeYlla0tbikTel1BI06yRR1kVEHBi6r-nJ7E_8qxRMfJKTiLKF0Q> <xmx:hWfeYj0yDCn-WTo_NDOoJJvC__kHIWQL_nT6oLcbrX7FOhfeogNpSA> <xmx:hWfeYkvOdibgfyt-zLaG5VPe4wrEcaVMAXhE9TKMFMEUnYQcW0izxQ> <xmx:hWfeYtoZk_xzuvoMb5LPtWeUvqd56hEnWCcO4hMhgFj7IYPCCSzXJw>
Feedback-ID: i2b1146ac:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for <mimi@ietf.org>; Mon, 25 Jul 2022 05:51:00 -0400 (EDT)
Message-ID: <6ba4e382-b7f2-e039-98c7-801417bf2e88@matrix.org>
Date: Mon, 25 Jul 2022 10:50:59 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Thunderbird/103.0
To: mimi@ietf.org
From: Matthew Hodgson <matthew@matrix.org>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/mimi/T3diEGrSNKevyBJh-7xoVCUNzxI>
Subject: [Mimi] Matrix and MIMI
X-BeenThere: mimi@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: More Instant Messaging Interoperability <mimi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mimi>, <mailto:mimi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mimi/>
List-Post: <mailto:mimi@ietf.org>
List-Help: <mailto:mimi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mimi>, <mailto:mimi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jul 2022 09:51:26 -0000
Hi all, Many thanks for taking the initiative to improve standardisation around comms interop! It's very clear that the Digital Markets Act has shifted messaging interop from being an aspirational goal to something much more concrete and timely, and the IETF is well positioned to support such work. Particularly, there are some very significant unsolved problems surrounding decentralised identity (discovering which services a given user has actually authorised to host their communication) and decentralised reputation/abuse (ensuring that open interoperable APIs aren't used as a mechanism for spam). On the identity side, MIMI's problem space statement at https://www.ietf.org/archive/id/draft-mahy-mimi-identity-00.html is great - and it's also fantastic to see SPIN emerging as a potential concrete approach at https://www.ietf.org/archive/id/draft-rosenberg-dispatch-spin-00.txt. Finally, it's clear that we also need a common application-layer communication protocol on top of MLS: it's no use having end-to-end encryption if everyone speaks different languages on top, necessitating bridges which then undermine E2EE. However, this is also an area with significant prior art - and I'm really surprised to see CPIM being proposed as the content layer in MIMI. CPIM is almost 20 years old, and its approach reflects the previous generation of communication apps. Specifically, the proposal here seems to be to pass CPIM envelopes between participants in a conversation. However, the reality is that these days the majority of modern collaborative communication apps (Slack, Teams, Wire, Telegram, etc) are focused on *consistently synchronising message history* (i.e. scrollback, and per-conversation metadata) across the users and devices participating in a conversation. Back in 2014 we started working on Matrix (https://matrix.org) as an independent open standard to establish an application layer protocol for these semantics: specifically, modelling communication as conversation history which should be replicated over the participants. Matrix expresses each conversation not as a loose stream of messages, but as a Merkle DAG (directed acyclic graph) of conversation history very similar to a Git repository. This gives the following main advantages over a message-passing approach such as XMPP MUCs, MSRP, SMTP, etc: * Conversation history becomes the primary first-class citizen: all clients automatically get synchronised consistent scrollback; lazily loading it in from other nodes as needed; automatically providing resilience to network partitions. Everyone is guaranteed to see a maximally consistent view of the same conversation. * Conversation history is democratised and shared equitably over all participants - no single entity ends up becoming a defacto privileged node thanks to storing or relaying history: in fact, you can't communicate with others without equally sharing ownership of the conversation with them. This is highly aligned with the various 'avoiding internet centralisation' initiatives within IETF. * This highly decentralised structure also ensures that the underlying protocols must also be decentralised. For instance, we've been gently contributing to MLS standardisation work, and particularly Decentralised MLS (https://gitlab.matrix.org/matrix-org/mls-ts/-/blob/decentralised2/decentralised.org) - to ensure that MLS sequencing does not create an unnecessary form of centralisation. * Conversations automatically benefit from decentralised access controls - given there is no central point of control over rooms, access control is provided in a byzantine-fault tolerant manner by requiring each participant to include a simple proof of their permission to emit each event: https://matrix.org/blog/2020/06/16/matrix-decomposition-an-independent-academic-analysis-of-matrix-state-resolution * Conversations are decorated with structured key/value data, versioned in the timeline of the room, providing an incredibly useful decentralised key-value store as a first-class primitive alongside the conversational data itself (e.g. for room names, topics, icons, or much much more) * Account portability and multi-homed accounts become much easier: user history is automatically replicated onto whatever servers that host a given user's identity (currently WIP). We built Matrix as a protocol for interoperability both between native Matrix implementations and existing communication systems. In fact, the name Matrix was picked because it acts as a matrix that can connect N platforms together in an NxN matrix. The direct inspiration for Matrix's improved semantics was learning from our experiences implementing various RCS/IMS/MSRP/CPIM and XMPP based communication systems for the telco industry in 2010-2014. We hope these learnings might be relevant here! Matrix has turned out to be successful as an approach: with a vibrant and highly hetrogenous ecosystem, there are hundreds of bridges now implemented which link existing communication systems via Matrix; three major independently-developed server implementations (in Python, Go and Rust); and hundreds of clients which natively speak the protocol. The public network can see over 64M addresses (of which 30M are natively on Matrix, and about 15M are long-term users) - spread over around 95K server instances. Meanwhile, an ever increasing number of independent (and sometimes competitive) commercial organisations have been successfully using the protocol for interoperability, including IBM, Ericsson, Thales, Palantir, LivePerson, Beeper, Famedly, Rocket.Chat, Element and many more. The French state has adopted Matrix as its official communication system (https://element.io/case-studies/tchap), as has the German armed forces (https://sifted.eu/articles/european-armies-matrix/), German healthcare industry (https://matrix.org/blog/2021/07/21/germanys-national-healthcare-system-adopts-matrix), and significant uptake in the UK, US and Scandanavia. The protocol has also proven to go far beyond basic instant messaging, supporting decentralised VoIP/Video conferencing (https://2021.commcon.xyz/talks/extending-matrix-s-e2ee-calls-to-multiparty) and even interoperable spatial collaboration (https://github.com/matrix-org/thirdroom/blob/main/README.md). Matrix itself is currently published as an open standard (https://spec.matrix.org) by an independent non-profit foundation (https://matrix.org/foundation) and the spec evolves via an open governance process (https://spec.matrix.org/unstable/proposals/). However, we are approaching the point of maturity where Matrix could be ratified by a dedicated international standards body - and as such we'd be very interested to hear if there is interest in Matrix being considered as the application layer on top of MLS for interoperable communication. We are already working on using MLS for Matrix's E2EE - and after all; we have a proven track record to date of running code and rough consensus as an interoperable comms standard. We did present Matrix as an HotRFC at IETF-101, but at the point the protocol was still very much in fux - whereas nowadays we're in a much better position to discuss if/how Matrix could exist in IETF. I was hoping to be present at the BOF in Philly today and raise this for discussion there: however, it looks like i am not going to be able to make it - instead Travis Ralston from the Matrix spec core team will hopefully be there to represent (or failing that we will try to do remote participation). Otherwise, thoughts would be very welcome here on whether Matrix could provide a better application layer than a linear CPIM-based approach for MIMI? thanks, Matthew -- Matthew Hodgson Project Lead Matrix.org
- [Mimi] Matrix and MIMI Matthew Hodgson
- Re: [Mimi] Matrix and MIMI Matthew Wild
- Re: [Mimi] Matrix and MIMI Rohan Mahy
- Re: [Mimi] Matrix and MIMI Matthew Hodgson