Vitor Pamplona on Nostr: Can we build a Nostr-native onion routing for private events using DVMs? Each onion ...
Can we build a Nostr-native onion routing for private events using DVMs?
Each onion hop is a GiftWrap using an Ephemeral event kind encrypted to the next onion DVM. The client assembles all hops and sends the private message to the first DVM via the user's main relay. That DVM decrypts the ephemeral event and sends it to the next DVM. The last DVM will send it to the user.
This minimizes the user's IP leakage to the set of trusted relays that user likes while sustaining the relay decentralization properties of NIP-65.
User's would never connect directly to the read relays of other users because they might not be trusted.
Since the relay knows your Nostr filters, it does know which pubkeys you are interested in (including your own key). Decoupling sending an event to a pubkey and filtering events for your pubkey in the same connection/IP is key to reducing the power that the relay has over you.
This would be akin to using several Tor sessions, a new session for every new message you send, while giving the Client the power to choose different "exit" nodes (DVMs) at each new message.
Am I crazy or is this actually better?
Published at
2023-12-15 16:23:17Event JSON
{
"id": "7a11de55f45e79ff56d3d04b87b8b3fda45cd1d2ad59632ed2b64b9e9910a3d4",
"pubkey": "460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c",
"created_at": 1702657397,
"kind": 1,
"tags": [],
"content": "Can we build a Nostr-native onion routing for private events using DVMs? \n\nEach onion hop is a GiftWrap using an Ephemeral event kind encrypted to the next onion DVM. The client assembles all hops and sends the private message to the first DVM via the user's main relay. That DVM decrypts the ephemeral event and sends it to the next DVM. The last DVM will send it to the user. \n\nThis minimizes the user's IP leakage to the set of trusted relays that user likes while sustaining the relay decentralization properties of NIP-65. \n\nUser's would never connect directly to the read relays of other users because they might not be trusted. \n\nSince the relay knows your Nostr filters, it does know which pubkeys you are interested in (including your own key). Decoupling sending an event to a pubkey and filtering events for your pubkey in the same connection/IP is key to reducing the power that the relay has over you. \n\nThis would be akin to using several Tor sessions, a new session for every new message you send, while giving the Client the power to choose different \"exit\" nodes (DVMs) at each new message. \n\nAm I crazy or is this actually better?",
"sig": "d52193e6633618a54276bbd1988062bc0bf52619188247ebae508d175189d2d39ecffbb1177224d6fb55cd7952743aa7c44cb0e4d58755c7a406885d4247c74b"
}