Fiat-Shamir zero knowledge protocol In Fiat-Shamir protocol, the final calculation is 

$$y^2=x\,v^c$$

Where $c$ is the random $\{1,0\}$, $x$ is the witness and $v$ is the public key $s^2 \bmod n$.

My questions are:


What stops the attacker from reading $c$, which is never encrypted,
   $v$ which is public and then calculate $y^2$ correctly?
How does this improve entity authentication?
Man-in-the-Middle attacks are possible for almost all zero-knowledge proofs. Victor can copy everything sent by Alice, the prover, to Bob, the verifier, and reversely to impersonate the Alice. In short, Victor can relay every message. 

To mitigate this, time limit can be used to prevent the relay. However, this may not be enough.

A better solution is first creating a secure channel that is free of MitM attack and then use the Fiat-Shamir protocol.