Advantage of zero knowledge protocols So a zero knowledge protocol (ZKP) is a protocol for which there exists an algorithm, called the simulator, which can produce, upon input of the statement(s) to be proven, but without a witness for the truth of the statement, transcripts indistinguishable from those resulting from interaction with the real prover.

My question is this:

How is this good?

Indeed, one advantage is that the protocol leaks no information of the prover (I guess that's why it's called zero knowledge) since it produce what the prover would have produced without passing through him.

But, that exactly means that any can pretend to be the prover. Which isn't very good.

Am I getting something wrong?
Here's the example I use sometimes.

Suppose I want to convince you that I am an excellent archer.
If I show you a target painted on a wall, and an arrow in the bullseye of the target, are you convinced? No, since for all you know I could have fired the arrow first and then painted the target around it. In fact, even you could have done that, and you not a skilled archer. If instead you yourself paint the target first and watch me fire the arrow at the bullseye later, that's much more convincing.

So the "byproducts" of this interaction (the target and arrow) by themselves are not convincing. You could have generated them yourself (i.e., simulated them) even if you are an unskilled archer. Only if these byproducts were generated in a particular interactive way do they become convincing.