Say that I have a signing/verification key pair $(sk,vk)$ and I generate a signature $\sigma$ over a message $m$. Then, I want to prove to someone else of this fact, which can be done in two different manners:
- I directly send $(\sigma,m)$.
- I compute a non-interactive zero knowledge argument $\pi$ for the statement: "I have a valid signature $\sigma$ for the message $m$". Notice that the argument does not reveal $\sigma$. I send $(\pi, m)$.
The question is: which is the fundamental difference 1 and 2? In 2, the verifiers do not learn the signature itself, but the proof $\pi$ can be used with the same purpose as $\sigma$. Are signatures and non-interactive zero knowledge arguments the very same thing?
Say that I want to prove that I have written the new Game of Thrones book and I want to authenticate it to a designated verifier. I know that 1 will not work, but what about 2?