I'm not clear about the relation between the following definitions:
- zero-knowledge protocols;
- honest verifier zero-knowledge;
- non-interactive zero-knowledge.
To my best understanding, zero-knowledge protocol commonly refers to "interactive" zero-knowledge protocol, and non-interactive zero-knowledge is not called a "protocol" because it is not interactive.
For honest verifier zero-knowledge, it is a property belonging to the zero-knowledge protocol, because in interactive zero-knowledge systems, the prover makes a proof relying on some messages sent from the verifier. Therefore, the honesty of the verifier should be considered.
However, in non-interactive zero-knowledge system, there is no interactive before the prover making a proof, so no honest verifier property should be considered.
I'm not sure the correctness of the above. Is there any mistake?