For a standard hash function $H$ like SHA-256, one can choose a secret message $M$, compute and publish $h=H(M)$, then prove knowledge of the preimage $M$ in zero knowledge [that is without disclosing anything about $M$ beyond $h=H(M)$ ]. However such proofs are (or at least used to be) large, often interactive, and slow to verify.
What's the sate-of-the art in hash functions with a relatively lightweight Zero Knowledge Proof of a preimage, still having standard hash security attributes [collision-resistance, preimage-resistance at least] ?
Update per comment: we can assume $M$ of public fixed size, e.g. a kilobyte. We want the hash of that to be practically computable, no need that it's especially fast.