ZKP学习笔记
ZK-Learning MOOC课程笔记
Lecture 4: SNARKs via Interactive Proofs (Justin Thaler)
4.1 Interactive Proofs: Motivation and Model
-
Interactive Proofs
- P solves problem, tells V the answer.
- Then they have a conversation.
- P’s goal: convince V the answer is correct.
- Requirements:
- Completeness: an honest P can convince V to accept.
- (Statistical) Soundness: V will catch a lying P with high probability.
- If soundness holds only against polynomial-time provers, then the protocol is called an interactive argument.
- P solves problem, tells V the answer.
-
Interactive Proofs and Arguments
-
Compare soundness to knowledge soundness for circuit-satisfiability
-
Knowledge soundness is stronger.
-
-
Public Verifiability
- Interactive proofs and arguments only convince the party that is choosing/sending the random challenges
- This is bad if there are many verifiers (as in most blockchain applications).
- P would have to convince each verifier separately.
- For public coin protocols, we have a solution: Fiat-Shamir.
- Makes the protocol non-interactive + publicly verifiable.
4.2 SNARKs from interactive proofs
- Actual SNARK
- P commits cryptographically to W.
- Uses an IP to prove that w satisfies the claimed property.
- Reveals just enough information about the committed witness wto allow V to run its checks in the IP.
- Render non-interactive via Fiat-Shamir.
- P commits cryptographically to W.
- Functional Commitments
- Polynomial commitments
- Multilinear commitments
- Vector commitments (e.g., Merkle trees)
- Merkle trees:
-
The commitment
-
Opening Leaf T
- Provers need to provide T, C, m4, h1, and k1
- “Opening proof” size is O(log n) hash values.
- Provers need to provide T, C, m4, h1, and k1
-
(Attampt to) Commit to a univariate f(X) in F 7 [ X ] F_7[X] F7[X]
-
Reveal f(4)
-
Problems
-