What is the difference between zk-SNARK and NIZK? I am not exactly sure what is the difference between zk-SNARK and NIZK? Are NIZK not succinct? If so, why Pinocchio protocol considered itself a NIZK although they have succinct proof?
I tried Google but couldn't find the exact difference.
A ZK-SNARK is a NIZK (more precisely, a non-interactive zero-knowledge argument of knowledge in the common reference string model) which is succinct, meaning that both the proof size and the verification time grow sublinearly with the witness size.
Therefore, every ZK-SNARK is in particular a NIZK (but not all NIZKs are ZK-SNARKs).
Pinocchio provide a ZK-SNARK (using their general scheme that targets arbitrary NP computation), which is therefore also a NIZK.