Arathorn
Joined 16 years ago
Joined 16 years ago
* In the current Matrix implementation, server tells the clients what the group membership is, so a server could spoof an invite to add a malicious user to a room and you'd have to rely on social mechanisms to spot it.
* There's no way to force everyone to rotate the sender key at the same time.
* On the plus side, it decentralises relatively well.
The concrete disadvantages of MLS are:
* Vanilla MLS needs a centralised sequencing function for changing group membership.
* The key bundles are much larger.
* On the plus side, only clients within the group can add new users/devices, and everyone in a given epoch shares the same group secret, so when someone rotates everyone has to rotate to participate in the new epoch.
Now, the server-controlled membership problem can be solved with Olm/Megolm if you instead have the client control the membership, using Matrix itself to define which users are authorised to be in the room, by running the Matrix DAG merge resolution on the client as well as the server. I did this a few weeks ago (in prep for The Matrix Conference next week) to show viability; it works, and has the advantage that you don't have to blow up the whole crypto implementation.
On the other hand, MLS can also be made to decentralise. DiMLS (draft-xue-mls-decentralized) isn't the only option here; DeMLS is the one we've been working with (using the Phoenix DeMLS OpenMLS fork) on the Matrix side - and works by letting MLS epochs fork and then merge again later, using puncturable functions to avoid undermining forward secrecy. This is a much bigger change; we experimented with it a few months back; details here: https://www.youtube.com/watch?v=jc7yfec3iIQ. It's promising, it works, but is much more complex and experimental.
So, TL;DR: it's possible to use olm/megolm securely (even if it's had a mixed record); I doubt strafe is doing fancy client-controlled group membership though. Separately, MLS can be used too, but it is way more complex and has its own complications. On the Matrix side we're still pursuing both (and finally making some progress, although it's a very slow burn).
> speaking of weird: how is it that these models, in a sandbox, with supposedly no way to communicate with other agents, manage to find the same public wikis as a scratch pad for agent communication?
It feels somewhat plausible that they're defaulting to the same search and picking the same top result?
The "portable Matrix" idea is currently nicknamed Tachyon, and is earlier stage at this point, although I did a Matrix Live about it a few months back: https://www.youtube.com/watch?v=jc7yfec3iIQ
Speaking as the CTO at Element (and proj lead for Matrix), i feel like i've spent a bit too much time coming to chat about Matrix on HN over the years ;)
That said, I agree that Bluesky is doing well in terms of breaking through into mainstream awareness - much more so than Matrix (although obviously big-world-social-media is something of a different beast to distributed-instant-messaging).
The reason Matrix hasn't done better here is primarily economic: we spent too much time and money building out Matrix for everyone in the early days... and not enough time focusing on building either consumer (as Bluesky has) or enterprise or government specialised products. We then got traction at Element on the government side of things (https://element.io/en/matrix-in-europe etc) as it turns out governments love their digital sovereign communications - which in turn meant that in order to get sustainable and survive we had to focus hard on building stuff for that market. Now, ideally the stuff which works for Govt would work for mainstream too (after all, we're generally competing with Signal and WhatsApp, which are of course mainstream apps) - but in practice it has been hard to get that balance right. You can see my <del>TED Talk</del> FOSDEM 2025 talk about the road to mainstream matrix here: https://www.youtube.com/watch?v=lkCKhP1jxdk
Meanwhile, the plan on Matrix is to get to profitability via Govtech and then invest the money back into improving Element (and Matrix) so it also works well for mainstream usage - so hopefully we'll get back on the radar then. It's a long haul though. Meanwhile, kudos to Bluesky for getting to focus on the mainstream use case; I'm jealous, and I hope they find a good sustainability model!
* Projection (it seems to love to describe one data structure as a projection of another)
* Strand (if some data gets isolated/stuck, it's "on a strand" or simply "a strand")
* Load-bearing (obviously)
* Frontier (the leaf on a tree)
* Quiescence (waiting for an algorithm to settle - I guess this one is legit)
* Honest (obviously)
* Residuals (any kind of data which hasn't been consumed by an algorithm)
* Rescission (something which has been rescinded; rather than saying "a rescinded offer" it enthusiastically calls it A Rescission!)
* Supersession (it's not a session which is a superset of another session... it's the word supercession; something that supercedes; similar to preferring the participle form of rescind).
I wonder how much of this is due to it mirroring proximate things to my code's own weird vocab though.
My favourite so far has been that I accused it at one point of playing whackamole by patching issues rather than getting to the bottom of a problem, and a few hours later it started to say things like "and i found mole 2 in CI" etc. For one minute I thought it was talking about the avogadro constant or backdoors or something until I realised it had committed to start calling newly discovered bugs 'moles' in its ongoing game of whackamole...
https://github.com/matrix-org/matrix-content-scanner
https://github.com/element-hq/matrix-content-scanner-python
etc.
This is nothing to do with ChatControl or Online Safety Act where you can see our position here:
https://element.io/blog/the-online-safety-bill-an-attack-on-...