I read this paper on protecting user privacy in smart parking management system. It talks about using zero knowledge proofs to protect privacy but I am not certain how they do it. My assumption is that the Verifier has the public key of the User and sends the User challenges that the User needs to complete with its private key. Would be great if someone could clarify this to me.
I believe the answer lies in section 4 of the paper, titled "Privacy preserving outdoor parking management".
The authors explain the details of ZKP schemes later on, as well as the libraries they used and curve parameters chosen... which explains the "how" pretty clearly.
My understanding of this paper is that the the possession of secret information (e.g. personally identifying information) of a parking client is to be proven to the parking system operator in zero knowledge.
I would also add that they mention both interactive and non-interactive versions of ZK protocols. So in that case, only the prover sends a (single) message to the verifier, e.g. for the modified Schnorr protocol (5.3). Again, the client is the prover and the parking system is the verifier in this application, for this non-interactive scheme.