#securemessaging

3 posts · Last used 22d

Fedi, I have a design problem I'd appreciate thoughts on.

I've been building a federated E2EE messenger (based on MLS) where the server learns as close to nothing as possible about you, so there's no accounts or user records. Which raised the obvious question: how do you rate limit anything?

The answer I went with is PrivacyPass. You authenticate once to get a batch of tokens, so the server knows who you are at that moment. Then you spend them anonymously - they're blinded at issuance, so when one comes back the server can verify it's valid but can't tell who it gave it to. Rate limiting happens at issuance, not at send time. You get a budget: 2,000 tokens/hour, 10,000 burst. (the numbers are based on napkin math and can be adjusted)

Now the actual problem: one token buys one envelope, and an envelope goes to one device. Group messages fan out client-side, so a message to a group of D devices costs D tokens. At two devices per person, a 250-person group is 500 tokens per message which is about 4 messages/hour. So groups pretty much have to cap out around 200-250 people.

I can't just make fan-out cheaper, because the server can't see group membership. It genuinely cannot distinguish "500 envelopes because my group is large" from "500 envelopes because I'm spamming 500 strangers." Any discount that makes fan-out affordable makes spam affordable by exactly the same factor.

The only structural escape I've found is to stop fanning out - one envelope that many people fetch. But then the server sees N people reading one mailbox, which hands it the group membership the per-recipient design exists to hide.

So:

  1. Is there a way to prove "this batch is fan-out to a group I belong to" without revealing the group or its members? Feels anonymous-credential-shaped but I haven't found the primitive.
  2. Is ~250 people a reasonable ceiling to just accept?
  3. Anything obvious I'm missing?

#Cryptography #Privacy #InfoSec #E2EE #SecureMessaging

0
3
0
0
We just rebuilt vir.group from the ground up. This is not a minor update. This is a fundamental rewrite of the product DNA. https://vir.group What changed: ActivityPub integration is now fully native. Your posts reach the entire fediverse. Hundreds of millions of users across Mastodon, Bluesky, Threads, and dozens of other compatible platforms. No duplicate content. No managing multiple accounts. Post once. Reach the world. Matrix protocol with E2EE encryption is now the default. Even we cannot read your messages. Session keys are yours alone. Recovery key gives you full control. Encrypted reactions, replies, edits, deletions. Works on mobile and web simultaneously. Audio and video calls are built directly into the app. WebRTC with our own TURN relay in Europe. HD video. Noise suppression. CallKit on iOS. Push notifications on locked screen. No external links. No "let's switch to Zoom." Projects hub is now a full marketplace. Publish your project with description, media, links, tags, and investor pitch. Categories for technology, art, education, manufacturing, services. Global reach via ActivityPub. Premium placement with 48-hour moderation. SEO optimization with short links and canonical URLs. Click analytics. Direct encrypted chat with interested parties. Full feed control. Filter by words, topics, languages, domains. Mute, block, hide. Choose global, local, followed, trending, or your own custom lists. No algorithmic recommendations. You decide what you see. Web version now matches mobile. Three columns. Composer. Side navigation. Same E2EE. Same calls coming soon. Responsive design that works on ultra-wide monitors without stretching one column across the screen. This is not a social network. Not a messenger. Not a project marketplace. It is all three. Built for builders, creators, investors, and analysts. Register in one minute. Publish your first project today. #virgroup #ActivityPub #Fediverse #Matrix #E2EE #DecentralizedWeb #OpenWeb #PrivacyMatters #SecureMessaging #Startups #Entrepreneurs #Investors #ProjectShowcase #CreatorEconomy #SocialNetwork #Bluesky #Mastodon
6
5
8
0
You've seen all posts