Hello and good morning again. So I think we should get started. So I have fun. We are
here something about Metrics 2.0 and how to break the communication silos and the UE
Digital Markets Act. Thank you very much. Let's go.
Good morning everybody. This is cruel and unusual to be here at 10 o'clock in the morning
for me. Quite a lot of you guys. So thank you everybody for turning up to hear all about
the latest things of Metrics and indeed the European Union Digital Markets Act. This
talk is going to be in two halves. First of all we are going to talk about Metrics 2.0
and where things are at back there and then we are going to switch through to the DMA
side. So don't think you are being short changed that the first half doesn't really
talk about DMA because we will make up for it later. Unless I run out of time, which
point will all be about Metrics 2.0. So hopefully folks know that Metrics is an open network
for security and network for security centralised real time communication. I am Matthew and
the project leads and co-founder. Metrics gets used for lots of things but today we
will be talking about chat and VoIP. We will not be talking about fancy stuff like VR, AR
or IoT. Our mission continues to be to build the real time communication layer of the open
web where no single party can ever own your conversations where conversations are replicated
in some magical utopia between all participants. Some stats. So this year I thought we would
look at monthly active users reported home by servers. So when you install Synapse or
then drive you have the option to go and report stats back to the mothership. If you do it
ends up in a nice database called Panopticon and we aggregate it together to see where
things are at. If you look at where things were at back in January of last year we were
at about 2 million monthly active users and since then we have more than doubled up to
almost 4.5 million active users, monthly active users. And people always ask when they see
these graphs does this include bridged users. I asked Neil who wrote this and said Neil does
this include bridged users. He said no. So these are real proper matrix users with access
tokens talking on actual home servers. So it is not exponential at the moment but it
is pretty reassuring linear going up and you can see how the wider public network is growing
there. Another random metric which I think we have to talk about is Stack Overflow. Every
year polls everybody on Stack Overflow as to what their favourite technology is and for
the synchronous communications tool this year and this came out last week or the week before
they asked people what their most desired tool was and also what their most admired tool
was. And honestly we were pretty chuffed the matrix came in as the most admired I hyped
synchronous communication tool going and even beating discord by 0.3 of a percent. Also
the most desired open source one unless you consider signal to be open source which is
a little bit controversial. So kind of fun to see that at least in the Geek Stack Overflow
community people appreciate the stuff that we are doing with matrix. Now I wanted to talk
about uptake across the sort of real worlds of matrix because the project does continue
to grow and grow and decided to focus on the public sector. So what I have done is to try
to map out all of the big public sector deployments I know of of matrix across the world and what
I have tried to also do is to call out the minor problem if you have noticed that we
have around funding matrix development at the moment. In that there are many dots on
this map here and if we go from left to right we go from kind of thousands to tens of thousands
to hundreds of thousands to millions of users on the size of these deployments and then the
size of the yellow circles shows you roughly how much these deployments contribute back
to the costs of the core team working on matrix with a matrix foundation or the folks who work
at elements on the core team. And as you can see it's a little bit asymmetrical in that we
have friends at BWI who support a lot the BV messenger an awful lot of element acts and
matrix rest SDKs thanks to their support. We have the open desk project with BMI in Germany.
We have the Phoenix streets which is sovereign workplace capability and done by data port.
We've got some all the schools in NRW with Barring Point and Loginio and then there are
some smaller deployments like in Sweden, US, UK, NATO, etc. But some of the really big ones
like CHAP or Luxembourg or Hessin or Bavaria which are in millions of users are kind of
contributing very very little back to the core project in terms of cash at least in 2023.
We're hoping to fix this and hopefully all of these instances hence calling them out here.
However, across 2023 honestly we had a really crap year. First of all we'd been depending a lot
on COVID funding which evaporated as the pandemic sort of became a endemic rather than pandemic
and general macroeconomic slowdown thanks to post COVID and the situation in Ukraine.
This problem of lots and lots of deployments basically not helping fund the underlying dev.
We also found a really interesting problem that the FSSE's mantra of public money for public code
encourages governments to only fund features we find. It's like this is taxpayer money,
we have to go and put this to something demonstrable therefore can we implement I know polls, can we
implement location sharing, can we do 3D location sharing and we're saying guys what we really need
is to support the core foundations. We need encryption that works, we need a Rust SDK that
is indestructible in audited and all this stuff and it turns out the getting funding for the
maintenance layer is quite hard. So really 2023 was pretty miserable, we had to shrink the
core team as well as element significantly and this is basically manifested as forcing focus.
So right now we are focusing on matrix 2.0, Synapse, Rust SDK, Enablement X on top,
JS SDK for Enablement Web Enablement Core and nothing else. So I'm sorry but if you're hoping
that I'm going to strap on an Apple Vision Pro and launch myself off the stage demonstrating VR
and ain't going to happen this year, everything else is paused. Peer-to-peer matrix is on hold,
pseudo IDs and crypto IDs despite the amazing work that Devon did over the course of 2023
to set up for account portability where you replace matrix IDs with public keys so you can
port between servers completely shelved for now. Low bandwidth matrix so using noise and other
transports for really low bandwidth is gone. Dendrite is continuing but some not funded by
element for now at least. Critical bug fixes only on the old iOS and Android SDKs so the classic
element iOS and Android apps if you haven't noticed have been since June. Libol, the old C++
encryption implementation again is just in critical bug fixes and security fix only mode
replaced by Vitozmat, the Rust encryption implementation and poor old third room is
completely on high since now and the team has gone on to other things involving Apple Vision
Pros ironically. So this is also real shame as in a different world I'll be showing you some really
cool stuff in third room and if you're interested in the 3D on matrix stuff go and check out the
final release they did because it has an entire direct manipulation in World Editor
complete with write your own like apps on top of it in real time and it was really cool.
Meanwhile on the element side we ended up switching developments of Synapse to AGPL away
from the Apache license as a fairly desperate measure to try to get folks who build on top of
Synapse to contribute back to either the code or the costs of building it. So long story short
for Matrix to prevail we really need your support so the foundation that looks after the spec many
other aspects of Matrix now runs entirely independently with Josh Simmons he used to be
president of OSI as managing director. They've gone and set up a governing board from across the
ecosystem which is going to stay the direction of the project we have elections for that in April
if you want to get involved become a member, vote, put yourself forwards for the governing
board and you too can stay the direction of the protocol. Right now there is a funding drive that
we launched earlier in the week to support the core spec work trust and safety bridging running
matrix.org infrastructure and governance work and the target there is 900k please get involved if
you're in this room and you're not just chipping in a couple of I think it's like 60 bucks a year
from memory so whatever that is and coffee please please get involved and meanwhile do you remember
that an awful lot of well almost all of gether.com slash matrix is actually maintained by the core
team who now work at Element who donate and Element donate their time to the project so if you're a
government hypothetically wanting to use Matrix please work with Element to support the underlying
infrastructure. That said lots of people getting involved we have 716 individual donors already
we've got some amazing companies like Beeper and Xwiki, Gamartic the German healthcare interoperability
agency, Furcom obviously Element, Criphead and Thunderbird all signed up now as organizational
members. So enough plea for help let's talk about Matrix 2 quickly so we introduced Matrix 2.0 last
year at Fosn 2023 the mission is to make Matrix as fast and as usable as mainstream alternatives
so practically speaking that means it syncs instantly logs in instantly and launches instantly
you can join rooms instantly or at least fast you get native VoIP with entwined encryption
and you get open ID connects this is not a new spat release yet I have to say that otherwise
Travis will go and kill me this is showcased in Matrix Rust SDK and is then used in Element X
and quite a lot of it in fractal 5 and 6 in Nome so I have to say last year when I stood here and
used about Matrix 2.0 it was very alpha now we got the demo working at 3am the night before or
something like that so all of 2023 has been polishing this and trying to get it into the
proper production and in September we did launch it in the form of Element X ignition
to everybody so they could actually play with rather than talking about it let me show you where
things are at probably the easiest way to do that might be to just show you my Element X
so hopefully that is coming up and is vaguely visible or perhaps not let me zoom in a bit
is that more visible so this is just my personal account I'm not going to log in again apparently
we've got a blinking stream apologies if we've got painful flickering of the slides sorry if you're
online but this is kind of fun hello world you can see since last year many many things going on
here we've got our read receipts going down the right hand side we've gone and got fancy
animations as people go and heckle the animation obviously the login and the launch is as fast as
it ever was but we've really gone and fleshed out a lot of the features here so for instance I could
or not navigate my laptop whilst zoomed in I could for instance go and send a location share
and this is using open street map and for mapbox and map Libre in the background and so I can go
and say that I'm in Brussels and hit share on that and it'll come up I could go and show
things like the rich text editor at least I thought I could although I might have it turned off on
this account let me go and dip into our beautiful settings go into advanced settings turn the rich
text editor on go back out again and now if I go down here I can say text formatting and this is an
entire this isn't using the sort of native iOS macOS stuff this is a rough rich text editor that
we actually bought that would be cross platform and cross android iOS and web I can say hello world
like that again select bold it and I turn a link on it or whatever else I need to do by the way
this is obviously the iOS app but running on macOS also runs on iPad I'm just doing it here on
macOS because it's easier to demo rapidly and yes bundles messenger is from the bv messenger
creators but if you use bundles messenger at moment at least nothing directly comes back to us just
saying what else can I show you whilst I'm in here perhaps you can show a voice message which will
probably get deleted by the by the moderation system but if I give it permission to use my
microphone here you can see me blathering away like this I'm going to hit stop on it so I can
obviously go and replay that here you can see me blather and go and hit send and if any like the
moderation system will go and kick in and probably delete it because it's not helpful for people to
go and send voice messages into rooms or not so as you can see things have gone and moved on an
awful lot from where they were on element x a few years ago but we also have these beautiful gray
dots which are surprisingly hard to put together these are unread status and one of the things we're
trying to get right in elements some acts is calculating unread state correctly everybody I
suspect will be aware that over the last year we've had a lot of problems with stuck notifications
and unread state on element web and we were determined to get it right here on element x
instead so um well else can I tell you that that's probably enough now let's go back to the actual
slides and possibly zoom out a bit so let's quickly talk about the component bits of sliding sink
of element x the big one here is sliding sink the idea is that the server should only tell the
client about the rooms that the client needs to display so it should be constant complexity with
the number of rooms rather than linear complexity with the number of rooms to say that it's been a
bit of a journey as an understatement since last year we have rewritten the entire rest SDK
implementation we've gone and added the unread room state as we mentioned but we've really come up
against a fundamental problem here what is the right balance between server side calculation of the
order of the rooms that you care about and the client side calculation now the original genius
idea from yours truly was that we were completely rip off discord and we would calculate the ordering
entirely server side the clients get the sliding window into that and then you recede you send
updates to the client as the ordering changes on the server now obviously that's not going to work
with end-to-end encryption because for end-to-end encrypted rooms only the client knows for sure
what the correct ordering is but that will be all right we'll fix it up on the client and so you'll
get the optimal solution pre-order on the server and then fix it up in the client it turns out this
is a disastrous idea it is a real pain in the ass to implement it was a pain in the ass to implement
it last year it was then a pain in the ass to reimplement it and throughout the point now where
even I realized it was a terrible idea and people are saying guys please can we simplify this a
little bit because the problem is that really clients are the only ones you know the right order
end-to-end encrypted rooms are pretty common these days and so the fix up process would be
entirely horrible and we've never really even got it right so what we're doing instead is to
switch to sort primarily on the client and we use course heuristics on the server to send a rough
estimation of the correct ordering I mean sort of naming this or dubbing it pragmatic sync however
this is a subset if sliding sync but without the sliding bit so not quite implemented yet I saw
that a PR pops up a few days ago from Ivan and three six eight on the rest SDK repository
that does actually implement client slides and ordering as well as lays the groundwork for
filtering rooms there now as a result we're not yet doing native sliding sync implementations
because we are still iterating on the API as I said this is just deleting stuff now it's not a
massive rework or anything it's just simplifying it to make it easier to work with as an API and
lots of people say I'm not going to use sliding sync until it's native until it's fully in the spec
seriously it's really easy to run one of these it is just a single blob of go you build it you
give it a postgres database and you run it and you point one URL at it on your load balance so
you're done all right I've done it and I never had to touch again enough of it to occasionally
update it so please do dog food this play with it in element acts then on the end-to-end group
void lots and lots of fun stuff let me do a very quick demo that I'm already running later on time
let me go to call the element and you are welcome to try to follow along on this I gotta go and start
a element call call here I'm going to check that into the false dem room so that the people can
click on it as well now you may see if you look carefully up here that the URL has not just got
a matrix room ID but it also has a password because this is now using end-to-end encryption
backed by life kit as the selective forwarding unit and I'm hoping that somebody is going to be able
to join this otherwise the demo might suck it a little bit oh there we go amundine again thank you
for rescuing me thanks haha lengths anybody else welcome to jump in and we can crash the the
wi-fi here I might even mute this um so this is in funny
so this is really the great sort of the descendants of the demo that we did last year except this is
real one oh hi Andy thanks for darling in at home um so what we're what we see here is a life kit
based selective forwarding unit with end-to-end encryption using f-frames negotiated over matrix
so that you basically get best of both worlds this is a normal matrix room it is
can be integrated with open id connect but because it's using life kit on the back end it's only
showing you the streams that you care about so if I were to go in fact this is pretty cool if I go
to a foreground tab like that and then switch back again well slow switch to the other tab every
all the other streams will have dropped off and if you're looking at my bandwidth up there you might
have even seen it you can also see this is only doing like 300k out and 150k in which is not too
shabby um at all so you can use this today I mean that's basically what we've been promising all
along end-to-end encrypted native point now there is one other quick thing that I will endeavour to show
um which is if I go over to my phone here I'm going to hang up on this one um I actually go and
launch element x then we also have this embedded properly into um element x itself so if I go also
to here and go over to my normal element web then this is a little internal room called void
water cooler and this is a um basically element called embedded inside element web hopefully
and you have the chat room here on the right hand side and if I go over here I'm going to click the
join button and the demo gods are smiling on me then we will see that there are people in here too
now you might think wow this is amazing he's just gone and I framed and hopefully the video will come
in um the previous thing but what we're actually seeing here is a bit more exciting if the infotainer
me let's focus oh that's interesting the screen share isn't working um from quite time for some
reason that's annoying let me use the analog gap in a few locations here so there we go that's what
you should be seeing um on uh my phone if the screen share was working correctly again you can
double click on things to go and zoom in and you can see roughly what's going on except the stupid
blurring has gone and blurred it out so let's take off the background blurring there we go much better
so this is not just sent to end encrypted with a static key like the previous one this is actually
using senders as um sender keys so it's using your same matrix identity um so here I am as my
normal matrix account Florian is on um here's I'm indeed is on hers T-Mas on his etc so this is fully
you know this gives you all of the properties that you get of normal matrix in terms of forward
secrecy and keys which are rotating forwards and which are linked to specific people they even give
you multiple devices as you can see because I'm actually using this as myself as Matthew on both
phone and on the embedded thing so this is pretty cool this is the shape of things to go I'm element
acts is only going to use this it's not going to use jitzy and we'll switch over from jitzy on element
where we'll soon now and then we live in a promised utopic land utopic utopian land of
end to end encrypted video right thank you um where are my slides here are my slides so
all if you want to see more about this come to the dev room see interoperability with fluffy chat
which is really cool demo because this isn't just element called this is standards based
matrix land and yeah we just need to basically finish the spark and turn on everywhere then open
id connect the great transition is in full swing if you haven't realized open id connect is going to
make the world an amazing place it gives you pass keys mfa2fa single clip login via qr code complete
with end to end encrypted identity no more emoji verification just scan a qr code and bang you are
in um no more leaking passwords everywhere consistent off account management um actual proper
password manager integration proper sso support access token refresh as well as scope so that you
can lock down what things your app can do um here is a quick screenshot I don't have time to do an
actual demo showing what the sort of ux is like when you log in now to a sso um thing in element
x land or indeed from element web and it gives you obviously details about your ip address your
scopes the privileges that you're granting the app and it really is a transformation from where we
have been before you can run this today um by matrix authentication service it's a long side
synapse written in rust it gives you the c y we do now have migration from synapse using the
center mass tool it provides some backwards compatibility for matrix off but there are some
missing bits it does require a native oidc capable client like element x or indeed labs on element web
finally rust SDK work obviously this all hinges around rust SDK with the matrix 2.0
implementation there for sliding sync in idc we've added in this ui crate that gives you the high
level ui components which basically power what we've been looking at then on the crypto side very
happy to say that we have basically killed off use of libon in the main projects here everything
is now using the dosmat it's merged on element web and react SDK and jessus dk on friday like three
days ago and this finally lets us fix the end to end encryption bugs in one place and make encryption
better in one place crypto reliability is now the name of the game we've made a new weapon called
complement crypto which tests both rust and jessus dk against real home servers written in running in
docker written in golang gives you unhappy puff and torture tests we have our hit list of remaining
encryption issues and we are blitzing on going through them the race is on and then one of the
advantages of having all of our encryption using the dosmats now is that as if by magic a draft
post quantum xth pr appeared friend de mere he went to sabbatical for a few months and came back
clutching pr 120 so post quantum coming potentially to the dosmat sometime soon so what's next get it
all released get it audited native sliding sync get rid of the old SDKs completely potentially
look at replacing jessus dk with rust SDK if you know lots of trust and safety work to be done
funded by the foundation as well as bridging and then finally dma right let's actually talk what the
talk is meant to be about dma so digital markets act mandates that communication services from
big tech companies have to talk together the whole idea is that the user can pick their preferred
service without being locked out from talking to their friends forces the big services to actually
differentiate on being a better app rather than having a huge network of users and relying on
the network effects to track people into that app last year we were about here where the rules
started to apply and this year we are about here just before we have march the 7th is when legally
the gatekeepers have to actually open up the silos right now there is only one gatekeeper
matter specifically what's that and facebook messenger and we'll talk about some where things
are there so we saw this as a once in the lifetime opportunity to see if we can use matrix as a
common language to talk to these guys there are probably three main ways of doing this either
they can do open proprietary apis and you can do a multi-head messenger a bit like beeper mini
where you just have an app that goes and talks through to the random api albeit with permission
this time or you have client side bridging where you install an app on the on your android phone
that just copies messages back and forth between what's up and matrix so we actually built this
and demoed it to the european commission last year in february just after fosdom and i mean it works
but it's a bit hacky honestly alternatively you can have everybody talking the same protocol
like matrix so for the last year we've really been experimenting with option three so the problem is
that the gatekeeper has to speak precisely the same end to end encryption as the person connects
into it and also within the encrypted payloads everybody needs to talk the same content good news
though is that we picked the double raptor for matrix back in 2015 because basically it was best
to breed and everybody was using it so nowadays everybody apart from apple uses lib signal or the
does match or live on under the hood for end to end encryption bad news though is that the normal
matrix dialect of all is not interoperable with lib signal so ohm is the encryption in matrix
it was a clean room implementation of the double ratchet that we did back in 2015
but unlike lib signal we don't use x 25549 or x3dh instead we have separate keys for identity
and signing so we've done two implementations of all ms of protocol live all min c plus puffs and
the does match in rough however to do dma we have now added x3dh supports of the does match
so that it can interoperate with lib signal and we've called this new dialect of all into all
and you can go and look at pr124 as of about 2 a.m. this morning and to actually play with it and
see that if you put the right constants in this will now interoperate all the way through to
normal lib signal so this means that you can do a hypothetical matrix for dma architecture
where you have a typical matrix plant like element x which talks matrix through to a home server
which then goes and uses msc 3983983 and 3984 to bridge end to end encrypted semantics through a
application service which we call a protocol converter this is not really a bridge it's
maintaining end to end encryption so it is converting the matrix signaling through to the
hypothetical gatekeeper signaling and then talks through on the gatekeeper side to their client
but the lib signal there and the dos mats in interon mode on the matrix side can then talk
directly so you're basically turning the signaling on one side through to the signaling on the other
and as long as you can agree on a common content format of some kind like matrix events expressed
in proto buffer something like that then you have the holy grail of being able to interoperate
between matrix and a big big messaging service so the end result could hypothetically look
something like this where you have different gatekeepers who use a protocol converter to talk
through to the normal public matrix network or some subset of it you can have clients there like
element x or fluffy chat or whatever going and then talking through other bridges and you'd have
home servers that exist primarily to gateway into these gatekeepers and so plug them all together
so does it work yes this could work so I got permission from matter to admit that we have
done experimental implementations of this now with them as a not so hypothetical gatekeeper
and it does seem viable complete with end to end encryption what I would love to do is to
demo it to you right now but because they have a great big set of announcements coming up about
their dma intro they don't want me basically breaking their news for them at stage on fostered
unfortunately so you'll have to imagine in your mind's eye what's that for one side and element x
on the other and messages flowing back and forth between the two with end to end encryption
honestly that would basically be all the demo would show the catch is that we honestly don't know
yet what will happen in March I mean there are some fairly big challenges here first of all
what permissions would you need to actually use this protocol converter because the dma
letter of the law says that as an organization you have to request permission to get into the
whatsapp network so we've obviously done that already as element but it's very unclear is just
because we've done it as element that we've suddenly done it on behalf of the entire public
matrix network and everybody else well you'd hope but let's see also there's this whole question
of anti-spam where at the moment folks depend an awful lot on knowing the IP address of the clients
which connect through in order to determine whether this is an abusive user is it coming in through
tour do we need to be more careful about what it's doing blah blah blah blah so there is a big debate
as to whether we would need to expose a stable identifier of some kind like obfuscated IP address
to the gatekeeper to help with anti-spam then finally a big one is that group chat is just
unsolved I mean the current legislation only requires one-to-one dms and you know it's a
basic functionality no void and so group chat is out of scope until 2026 as the first cut you could
just do lots of on sessions or inter-on sessions and find it out like we did before we had magon
but it's a bit clunky and it also gets things more and more baked into the double ratchet so it may
we're hoping that by 2026 some a better approach might emerge but at least this can be used hopefully
from the get-go in March 2024 so one of the things we've discovered along the way is something
we've called linearized matrix so dma doesn't mandate any of the cool stuff that matrix does
it doesn't mandate decentralized conversation history and it doesn't you know require decentralized
control and what we've seen is that gatekeepers might see matrix it's a little bit overkill
when implementing it natively just imagine a conversation where I turn up to somebody at
WhatsApp or whatever and start going on about DAG replication and state resolution and decentralized
ACLs and it's all so cool and they said you know perhaps understandably would say well that's very
nice though but dma doesn't say anything about that and whilst we would love to implement state
res in Erlang perhaps we just need to worry about some straightforward interoperability
so is there a lights and architecture that could work what if we had a protocol that was compatible
with matrix but skips all the complicated state res stuff knowing that we could bridge it into
actual full-fat proper matrix when needed so Travis myself came up with this proposal called
linearized matrix as part of the itf meany working group and it's literally the same matrix events
and power levels even the same author events but rather than putting it in a DAG you put it in a
linked list so it's much easier to play with because you just have a list of events and you can then
bang it around the place in a hub and spoke server topology which is something that the gatekeepers
might be willing to actually implement rather than full-blown matrix but then the second it goes
anywhere near us law we can just actually find it out into proper matrix so we are having an
implementation of this the amazingly named eigen server which is a bunch of types scripts about
what a thousand lines of code for memory that shows just how simple it could be to implement this
subset of matrix in practice it could like this and this one really is hypothetical like please
do not read anything into the logos here but it would basically have normal full-fat matrix here
one of the servers that is got permission to talk through to a gatekeeper like google might be in
future would then talk proper matrix through there and oh no actually no sorry we're talking
linearized matrix there and then say that conversation would end up hubs and only that
conversation this isn't all the traffic but they would just be a given hub for that conversation
to plug everybody together and it makes it a lot easier and more practical to actually implement in
big table and Erlang or whatever on the right hand side well still still talking to the matrix
world on the left hand side however linearized matrix has not gone entirely according to plan
so what we have been doing is working within itf in this new working group called the more
instant messaging interoperability working group now this was started by folks from the
mls messaging layer security group end to end encryption working group and the whole idea is
that they want to build we want to define a long-term protocol specifically for the subset of dma
interoperability with the added twist of the leveraging all the good stuff that mls provides
because weirdly enough if you built mls you want to have an application layer protocol that sits
on top of mls we've been involved in this since the outset my tf-114 in philadelphia back in 2022
now and you will be surprised to hear that we turned up and said guys you don't need to do this we
can just speak matrix no matrix already is this amazing end-to-end encrypted decentralized communication
protocol and it got promptly rejected because decentralization was seen as overkill that's
why we then came up with linearized matrix which also then got rejected because it was like hang
on a second this gives us message history why would you ever want message history we don't need
message history when talking to gatekeepers why does that have key value state events for arbitrary
key value data that sounds very dangerous we don't want that and so it went through the itf process
where it gets whittled down and reduced and reduced and reduced to the absolutely minimum
subset of stuff that you need and then hopefully perhaps maybe expands out again one of the big
debates has been whether Mimi should support interoperability with today's protocols like
whatsapp or facebook messenger and critically the double ratchet or do you hard code the entire
design to require mls for encryption so you can imagine that there are a bunch of people who really
really have backed the farm on mls and a bunch of slightly more pragmatic people perhaps who have
backed the farm on just wanting to interoperate with people and that debate has gone back and forth
so we ended up forming a design team between folks on matrix side Cisco google wire phoenix
and wicker to try and to build something from the ground up that would provide this on ramp from
today's double ratchet world into an mls world the idea is that you literally can use this
today to interrupt with double ratchet platforms like matrix or whatsapp but then also provide a
really low friction way to steer everybody through to talk mls and there was a lot of back and forth
on how this could look because it basically tries to solve this paradox that on one hand if you have
mls you should use it as much as possible you should use it to synchronize state across the
various folks in the cryptographic group and all the sort of benefits of mls however if you
don't have mls you need to kind of fake something that looks a bit like it out of today's double
ratchet and sort of linearized matrix stuff so we've been trying to glue together two pretty
different architectures with a transition path between the two so we published that back in
Prague in November in draft rosten mini protocol and in theory gets best to both worlds the layering
does end up being a bit complex though and so for the last couple of weeks we've discovered that
wire have done an entirely new draft which we are now trying to merge back together yay team work
so to solve today's dma challenges meanwhile whilst we go through this wonderful process with
itf we've also just been using plain old matrix so what comes next i've no idea honestly no idea
what happens come much we'll see what dma api's meta ships on march the 7th as i said i'm not
allowed to steal their fund on that looks as if we may be in the first organization element to
actually implement against them so whatever happens hopefully it will involve matrix one way or another
but that is the shape of dma things to come and i don't know why i was speaking so fast but
apparently i've got two and a half minutes left have i actually finished early for the first time
ever in 10 years of post-in thank you so just to remind you we need help friends do not let
their friends use proprietary chat services if you benefit commercially from matrix and you want
us to continue to exist please support the foundation use the qr code become a member run a server or
buy an enterprise one from element build bridges and bots on your services build your amazing cool
new project on matrix because tragically we're not going to be doing any fancy vr on matrix or
midi on matrix or carry a pigeon over matrix or whatever it might happen to be you have to build
your pigeon teleport to yourselves from now on but hopefully we've inspired you enough to do so
follow us on mastodon or indeed blue sky or many many other things and spread the words thank you
very much questions we have a question thanks for the talk what's the status of specifying the export
import format for a matrix servers we can actually back up matrix and backing up postgres or whatever
data is under it i didn't quite catch that was the question of speccing the server to server api
to make it easy to right now a matrix server be it conduit or synapse or whatever yeah all the data
in some data storage right if you want to back up a server okay sorry i get the question now so the
question is data portability between home servers so you can migrate from synapse to dendrite or
dendrite to conduit or whatever so there is deliberately not an msc for defining that right
now because what we're trying to do was to do account portability because if you have switched
out your matrix id's for public keys and you define either i guess either the client or perhaps the
server gets to define the home of the account then the act of migrating yourself from synapse to
dendrite would be to basically do an account port a bit like on gsm to switch where that public key
resides so rather than having an export format and a great big wadge of jason or a kind of gdpr
desar style thing instead the protocol itself does what it does best replicating data between
different servers and therefore you wouldn't need an interchange format now this has some minor
problems first of all as you just heard we've had to stop working on it and secondly it doesn't solve
the gdpr desar use case where you need to have the data check out functionality at the moment
synapse just does a very blunt way of doing that well there is a separate tool i forget what that
expires exports the data in a huge indigestible blob of jason so i think it would be a useful thing
to have it's not something that we're working on at the moment but if anybody in the room would like
to write an msc for expressing a desar format which could also potentially be used as a quick fix
for data portability between implementations that would be really cool and i'm sorry that
in this instance perfect has been the enemy of good and that we invested the time that should
have been spent doing that in doing account portability rather than desar tool excellent question
anybody getting this per call uh do the nice video call with everybody joining that you did
like few minutes ago uh is there any network optimization where like the clients were talking
to each other or they were all going to the cloud and back just just thinking if you that was something
you fought through now the acoustic in here is terrible i don't think how you've been hearing me
i sorry i didn't catch that um about the video call where everybody joined yeah okay um we were
just like considering if that there was any kind of optimization for limiting the bandwidth to the
internet or there was any sort of right to pier okay it's bandwidth control for element cool
okay so at the moment um the life care sfu has actually got really good um uh bandwidth estimation
built into it so that adapts quite aggressively to your actual network conditions you saw how
little i was using and critically it renegotiates between different thumbnails and if you scroll
the thumbnails outside they disappear if as far as i know it should be pretty easy to also put
additional constraints either on the client or on the server side to say hey never give me more than
320 by 240 will never give me more than 64k
in that all of that was going bar in sfu on the server side so there was nothing happening
peer to peer we still have peer to peer matrix for doing full mesh sorry it's more full mesh video
is still a thing but if you wanted to scale to an entire room like this then yeah you need to have
this like the forwarding unit um to go and bounce it around the place and i can hear you so much
better without the microphone um any other questions i remember that back in the days you
started to work on matrix because you had to work on rcs and it was crap and now rcs is like become
a reality with google messages uh are you are you planning to make something interoperable interoperable
with this or uh you just try to put it away it is so annoying to stand on stage and have to say
that unfortunately we have nda's which mean that we can't talk about anything to do with that right
now that's fine i tried so first of all thank you for keeping up all the good work for the
dma stuff i think a lot of people will profit from that eventually without even knowing like
who actually did that so thank you for that um i could
i should point out that the dma stuff is all amondine's full she has the right
angst and is willing to go to brussels and talk to people with the right angst whereas i just
came in at the last minute and said oh brilliant let's play with double ratchets so
but either way i'm glad that honestly we were able collectively to shift it forward
my actual question would be to matrix 2.0 is there like a concrete roadmap how the roll out of
matrix 2.0 will eventually happen and how backwards compatibility compatibility with for example
legacy sso login and will element x support normal swing eventually for the roll off or something
like that so i got the first half of that um and so a roadmap for matrix 2.0 is really land
the remaining things as rapidly as we can it's very hard to predict the pacing of that because
it depends entirely on how it's funded and uh no the reason it's not going as fast as we would like
is that often we end up doing completely other work like somebody might turn up and say look we
need the best screen reader support in element web 9 to man at which point the jsstk and you know
other folks who might be working on the lower levels of element web end up doing accessibility
which is great but it can completely starve out the lower level things and so work that might have
happened you know next month finds itself shifted about six months because everybody was committed
to go and you know do some other requirement so i'm afraid we don't publish a roadmap on it other
than we'll do it as quick as we can i didn't catch the second half pack what's compatibility
during the roll out for example will element x support legacy home servers that don't have sliding
sync for example no no way it's um hard enough to make element x as um snappy as it is without
also supporting the legacy authentication or the legacy sync and frankly it's also a sort of mechanism
to try to get everybody to speak the brave new apis um so yeah we are not going to see legacy support
and there at all instead we'll just optimize to make the matrix 2.0 spec stuff um as effective as
possible thank you sorry going once anyway questions we haven't seen please wave your hand ah there
hi so thank you for great talking for all your work especially on the dma side second that uh
when it comes to dma the gatekeepers will they scope dma access to eu uses or how will that work
that is precisely the sort of thing that if i gave you the answer to or my guests at the answer to
would get me sued by method for breaking an nda so i don't know i'm afraid but they should be um
announcing it in the coming weeks because obviously they need to go live on march the seventh and they
need to try to explain to the world why they have um upheld the regulation in the way that they have
and honestly i don't know if the answer i mean the the builds which we've been working with are um
sort of coming down to the line they're all full of lips and text and they haven't been
internationalized and the ui is very clearly still in flux so that's what i mean when i say i don't
know we'll see it in the next couple of weeks right any last ones oh over there
so if i understand correctly uh matrix 2.0 will require multiple services alongside synapse
uh for sliding sync for example uh do you have a plan to provide the software distribution
that combines all the needed uh all the needs the services thank you okay i think i caught that
which is is there going to be a distribution that bundles together matrix off service and sliding
sync alongside um synapse um so in the long term we want to have it natively implemented on both
matrix off service is designed to be embedded as a rust module inside the python sort of host
of synapse and likewise sliding sync eventually i hope will end up as a native module of some kind
there too in terms of distributions um there are various options already so element provides its
element server suite um supported distribution which is the sort of thing that we try to persuade
governments and big enterprises to use there is also um slavis matrix docker ansible deploy
ansible playbooks which again gathers it all up and runs it system d services um and i'm sure
that there are other like um helm charts out there from the community there are also helm charts for
bundles messenger um published on open code for the german public sector as well as ones for open
desk which is the digital sovereign workspace there so there are a lot of options out there
obviously with my element CEO hat on i really hope that people might actually buy the one from us so
that we can keep paying the salary of people to build the underlying technology but um you can
also go wild with any of the other distributions the whole thing is starting to feel a bit like
linux honestly with different distros done by different people with different licensing and
mentalities which i guess makes us red hat on the element side
and i have 16 seconds left for any final final questions
in which case i am actually going to finish early thank you very much
yeah thank you very much post in wants to say also thank you to you with some sweet calories