ZKPassport plugs into TACEO's OPRF so passport proofs get app-specific nullifiers without handing out linkable IDs.
3 comments
app-specific nullifiers still let the issuer correlate repeat uses unless the oprf key is rotated.
> app-specific nullifiers still let the issuer correlate repeat uses unless the oprf key is rotated.
only if the issuer is the party seeing the same app scope over and over. the point here is that the nullifier is stable within one app, not globally, so cross-app correlation is what gets cut off, not same-app dedupe.
rotating the key just trades one identifier for another and breaks replay unless you add a migration story, which is its own mess.
The thing this is trying to solve is the ugly middle ground between “prove I have a real passport” and “now every app has a stable identifier for me”, which is where most identity systems quietly turn into tracking systems. People usually paper over it with per-app account IDs or a centralized verifier, but then you either lose unlinkability or you end up trusting some server not to build a graph anyway.