EDIT: zero knowledge proofs require a trusted setup. This allows the person who set up the system to create tokens at will if they didn't destroy the setup parameters.
this is why zero cash can't work.
It's the same problem with zero vert.
https://eprint.iacr.org/2006/389.pdf