I've seen people making lots of distinctions when 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 phrase:\ "P doesn't know a witness, but he knows a proof" or "generating the witness AND generating the proof". So do they differ?\ What seems to me, is that someone uses the term "proof" as a "statement" or answer synonym.\ So what do all of these term mean?\ \ This confusion came up when researching about Zk-SNARKS.