Page cover image

Zero-knowledge Proof

Definition of ZKP Security

In a ZKP implementation, three core principles of ZKP should be achieved to fulfil ZKP Security:

Soundness

  • All invalid proofs must always be rejected

  • Valid proofs should not be faked, modified or replayed

Negative Examples

  • Constrains are compromised

  • Proving keys are generated insecurely or sealed in an unsafe way

Zero-knowledge

  • Witness information shouldn't leak in any other place, eg. in a proof

Negative Examples

  • Private variable is published

  • Metedata attack

Completeness

  • All valid proofs must always be accepted

  • All circuits or programmes should be handled correctly

Negative Examples

  • R1CS incorrect generation

  • gadget i/o value mismatch causing gadget combination fails

Other negatives

  • Data leakage through side channels or encodings

  • Any unsafe state(code execution, DoS)

  • Trusted setup hack

  • build and release integrity

  • software dependencies/libraries

Last updated