A general-purpose zero-knowledge proof lets a prover convince a verifier that a program executed correctly while hiding selected inputs or outputs. Unlike proofs limited to discrete logarithms, it can cover general computations. section 15.3
Typical uses include:
- Proving that a computation or execution trace is correct without revealing every value involved. section 15.3
- Supporting confidentiality, compression, and identity claims such as proving age without revealing it. section 15.3
- Enabling privacy and space-saving techniques, especially in cryptocurrency systems. section 15.3
Figure 15.11 General-purpose ZKPs allow a prover to convince a verifier about the integrity of an execution trace (the inputs of a program and the outputs obtained after its execution) while hiding some of the inputs or outputs involved in the computation. An example of this is a prover trying to prove that a sudoku can be solved.
A prover demonstrates that a Sudoku can be solved by proving the integrity of its execution trace while hiding some inputs or outputs. section 15.3
