Luka's Avatar

Luka

@lukajcb.bsky.social

github.com/LukaJCB

68 Followers  |  92 Following  |  25 Posts  |  Joined: 31.01.2025  |  2.1535

Latest posts by lukajcb.bsky.social on Bluesky


MLS makes rotation fairly cheap, i.e. removing someone from a group is O(log n) complexity.

26.02.2026 23:03 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Interesting, will have to think about that more!

26.02.2026 22:55 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

HMAC would require everyone in the bucket to agree to the same key, so you would likely need a GKA protocol like MLS, right?

26.02.2026 22:21 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

I like this quite a bit, the buckets idea maps somewhat cleanly to MLS groups, though there is of course still a lot of unanswered questions.

26.02.2026 22:17 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Right the message in this case is only the metadata that we want to protect

19.02.2026 04:36 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Yeah and that's a very hard problem space from what I can gather. Essentially how can we send a private message from A to B, C, and D across servers? All without the servers trusting each other and without leaking metadata.

19.02.2026 04:27 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I like this a lot, keeps a lot of the existing infrastructure. I could see something like this working well with E2EE data as well. The metadata leakage is somewhat unfortunate, but unless we add some sort of authenticated relay, I'm not sure there is a better way.

19.02.2026 02:40 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

I think that narrows down the solutions space quite a bit then, no? If that kind of metadata shouldn't be public then that also eliminates publishing anything to the firehose for that content and we would need some kind of separate notification system so that an AppView can know of the new content.

19.02.2026 02:34 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

I think this is good! I've been thinking about this space for a while and I think having permissioned data like this could be used for both e2ee and non-e2ee systems. Though, crucially I think how that data goes from the PDSs to the AppViews should also take into account e2ee and non-e2ee systems.

13.02.2026 00:36 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Do you have some links to where the prototyping is happening? I would be interested to collaborate!

08.02.2026 18:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

In any sane system you would not want to perform expensive queries for analytics purposes on the real-time parts of your storage layer

23.01.2026 21:48 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Amazing! I've been trying to decide between Ente and Immich as well, might have to try this out!

01.01.2026 16:53 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
GitHub - fedi-e2ee/pkd-server-go: Reference implementation - server-side software for the Fediverse Public Key Directory Specification Reference implementation - server-side software for the Fediverse Public Key Directory Specification - fedi-e2ee/pkd-server-go

This is all old news. What's new is this:

There is now a first draft reference implementation of the Public Key Directory specification, written in Go.

github.com/fedi-e2ee/pk...

14.10.2025 14:58 โ€” ๐Ÿ‘ 36    ๐Ÿ” 11    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Very exciting!

14.10.2025 17:51 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Typelevel | A tale on Semirings Typelevel is an ecosystem of projects and a community of people united to foster an inclusive, welcoming, and safe environment around functional programming in Scala.

Side note I wrote about something pretty similar many years ago here: typelevel.org/blog/2018/11...

05.09.2025 20:24 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

And more general the cardinality of a function A => B is B to the power of A.

In this example:
1^X = 1
X^1 = X

05.09.2025 20:23 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

To add to this you can think of cardinalities as how many different implementations can there be for this signature.
So Boolean -> Unit has one possible implementation, whereas Unit -> Boolean has two

05.09.2025 20:13 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Barking Up The Ratchet Tree โ€“ MLS Is Neither Royal Norย Nude One of the first rules you learn about technical writing is, "Know your audience." But often, this sort of advice is given without sufficient weight or practical examples. Instead, you're ushered quickly onto the actual tactile aspects of writing--with the hope that some seed was planted that will sprout later in your education. Science communication is famously a hard problem.

Barking Up The Ratchet Tree โ€“ MLS Is Neither Royal Norย Nude

One of the first rules you learn about technical writing is, "Know your audience." But often, this sort of advice is given without sufficient weight or practical examples. Instead, you're ushered quickly onto the actual tactile aspects ofโ€ฆ

25.08.2025 14:44 โ€” ๐Ÿ‘ 28    ๐Ÿ” 6    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
GitHub - CHURPTeam/CHURP: Decentralize your secrets! Decentralize your secrets! Contribute to CHURPTeam/CHURP development by creating an account on GitHub.

It did lead me to find about CHURP though and that to me looks like a great solution for backup: github.com/CHURPTeam/CH...

30.07.2025 21:43 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Funnily enough I came across this yesterday as well. It looks great although to me the fact that you still need to remember a password is a bit of a downside. I think id rather just use a PBKDF at that point

30.07.2025 21:18 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
GitHub - LukaJCB/ts-mls: A Messaging Layer Security (RFC 9420, MLS) implementation in TypeScript A Messaging Layer Security (RFC 9420, MLS) implementation in TypeScript - GitHub - LukaJCB/ts-mls: A Messaging Layer Security (RFC 9420, MLS) implementation in TypeScript

Just published 1.0.0 of ts-mls, a library implementation of MLS written in typescript, put a lot of work into this and really with how it turned out! github.com/LukaJCB/ts-mls

04.07.2025 23:13 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

The Web Crypto API for browsers and Node does this by basically treating HMAC and signatures the same way with a sign and verify function for each

27.05.2025 15:01 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

No worries, thank you for fixing it!

18.05.2025 06:10 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
AT Protocol Community Wiki Homepage of the AT Protocol Community Wiki

I tried to create an account for atproto.wiki, but I never got the verification email so I can't complete the sign up

17.05.2025 23:53 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Would love to collaborate on this, I'll have to give it a full read soon. I'm currently also working on creating a TypeScript MLS library that is almost complete that should make prototyping a lot easier!

16.05.2025 00:49 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Private, non-shared data in repo? ยท bluesky-social atproto ยท Discussion #3363 I have a use-case for keeping private data in a repo, i.e. data that does not leave the repo via the standard sharing mechanisms, and before I leap into modifying the code to support it, I'd like t...

I'm really glad someone is thinking about this! I wrote a prototype of using MLS to create E2EE content in ATProto recently that I've described in a GH issue here:
github.com/bluesky-soci...

16.05.2025 00:48 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Hello world!

12.02.2025 23:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@lukajcb is following 20 prominent accounts