Zero-knowledge proofs are used everywhere in crypto, from private transactions to verifiable computations and layer 2 solutions.