In NIZK proofs, the prover can generate its proof for statement $y$ and witness $w$ using$$\pi \gets \mathrm{Prove}(\sigma,y,w)\text{,}$$where $\sigma$ is the common reference string. Source: Wikipedia.However, the zero knowledge property tells us that everyone could have generated a pair $(\sigma, \pi)$ itself. Source: Wikipedia.So what is prove needed for? I guess it is needed, because the verifier forces the prover to use a given common reference string $\sigma$? This is probably the reason why the verifier can not convince any other verifier?
NIZK proofs: Why is the prove function necessary?
cr.crypto security;interactive proofs;zero knowledge
Prove$\:\:$is needed to convince the verifer(s) that $y$ is true.Sort of; the verifier(s) will have almost as much control as the prover over the choice of $\sigma$.The verifier(s) can convince (every) other verifier by forwarding $\pi$ to the other verifier(s).Unlike ZK protocols in the standard model, which havedeniability, NIZK proofs instead have transferability.Related to NIZK but not otherwise related to your question:multi-string NIZK uses a weaker setup assumption.