Arjen's avatar
Arjen 2 weeks ago
That's only if you choose to. npubs are free to generate. You can (not implemented) easily have dozens of npubs on one device, all looking unrelated to the network. Unlike IP addresses, you can cycle through them over time.

Replies (1)

So you mean ephemeral identity rotation? Sure but, you instead break everything! Sessions die on rotation. FSP sessions are bound to your keypair. New keypair = new node_addr = new IPv6 address = every active session drops. Every peer has to re-discover you. Every transit node's coordinate cache for your old identity is now garbage. You're a new node joining the mesh from scratch every time you rotate. Your peers have to know your new npub. The mesh has no mechanism to say "the node formerly known as npub1aaa is now npub1bbb." Your peers have you configured by npub. You rotate, they can't find you. You'd need an out-of-band channel to announce every rotation — which defeats the purpose if that channel is linkable. Bloom filters take time to reconverge. Every rotation, the mesh has to propagate your new identity through bloom filters. That's ~500ms per hop. During convergence, you're partially unreachable. Rotate frequently and you're permanently degraded. Traffic analysis still correlates you. You rotate your npub, but you're still connecting from the same transport address (same IP:port, same physical location). An observer at the transport layer sees the same UDP endpoint cycling through identities. They don't need your npub — they have your IP. The identities look unrelated to the mesh, but not to anyone watching the wire. The social identity problem remains. If you post on Nostr as npub1-real and route mesh traffic as npub1-throwaway, the two are unlinkable — good. But then what's the point of Nostr-native identity? You've decoupled social from network, which is the right answer, but it's not what FIPS is designed around. You're working against the protocol's core premise.