Yesterday we were playing around with ideas at nostr:npub1s0veng2gvfwr62acrxhnqexq76sj6ldg3a5t935jy8e6w3shr5vsnwrmq5 , we needed something to preserve anonymity for blossom users that communicate with DVMs.

πŸ“’ Introducing Onion-routing for event publishing

This introduces insane privacy guarantees, someone can publish an event and not even the relay they are publishing from can now it's them, nor their IP address.

Technically this works very similar to Lightning, the sender constructs a route of pubkeys and can bounce around the message through pubkeys willing to route for them.

The sender can include small ecash tokens inside each onion layer to pay for the routing.

No hop in the route until the last one knows what they are routing, who its coming from and the sender very explicitly defines through which relays it should hop.

(for the sake of debugging, I built a traceroute-like view, so the sender can see the event being bounced around the different relays; in real conditions a sender wouldn't use that to preserve privacy)

Think of this like tor, just faster.

https://m.primal.net/LZtF.mp4

nostr:note1q8rnnu4ss798ue88400r5ytej50uzhx87d775q6jev7hs64tj2ksf2nkh2

Reply to this note

Please Login to reply.

Discussion

How do you plan the route? Isn't it always user -> some relay -> other user?

πŸ‘€πŸ‘€πŸ€―

πŸ”₯πŸš€

Did I already say I love your awesome brain?

So cool, been simmering on this problem for a while and exciting to see this solution!!

Can't wait to add this to Whitenoise

This is awesome!

🀯

Do you think this could also support onion routed event reads?

no -- we're working on something different for anonymized event reads; this is only for publishing

Very cool. Curious if this could be used as a payjoin v2 async communication channel, but would need to be able to have the read side too

Who picks the mints in this case? Would relays have a list of accepted mints?

Could be done without ecash: https://devpost.com/software/el-tor

based

nostr:nprofile1qqs04xzt6ldm9qhs0ctw0t58kf4z57umjzmjg6jywu0seadwtqqc75spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz9mhwden5te0wfjkccte9ec8y6tdv9kzumn9wshszxnhwden5te0wpuhyctdd9jzuenfv96x5ctx9e3k7mf0dv4ph5 Sorry to dig up that old post -- is that implemented somewhere yet?

I'm not a programmer, just a user, so please don 't be annoyed. Is there a name (like TOR) for it to search for (on the web, in app settings and so on)?

it's implemented in nutsack-cli under the aptly named "condom" command

with nutsack-cli you can run a bunch of routers with condom and do routed publishing with the "publish" command

Thx for the fast response, finally I have a real incentive to go into this ecashu-thingy πŸ€—

Is there a reason why I2P is not widespreadly used besides the lag in booting up? Mobile devices have an uptime like >99% anyway

Good job