I've seen people making lots of distinctions while reading papers about zero-knowledge.
I've seen the term "Argument of Knowledge" that seems to be used as a weaker "Proof of Knowledge": what I understood is that if you talk about the normal soundness property you talk about "arguments", whilst if you talk about the validity property (from Proofs of Knowledge) then you talk about "proofs". Is it correct?
But what confuses me the most, is that I've seen the term "witness" and "proof" used both differently and to express the same concept.
I know what a witness is (basically, the secret of the Prover), but i've also heard the phrases:
"P doesn't know a witness, but he knows a proof"
"generating the witness AND generating the proof"
"in Zk-SNARKS, succinctness: the size of the proof is much smaller than the size of the witness".
"Verifying the proof is much faster than directly checking the statement, even given the witness."
This last phrase is really chaotic to me.
So do they differ? If so, what's the difference between "proof" and "statement"?
English isn't my native language, that could be the problem, but please can you clarify all of these terms for me?