πͺ Session chair: Akira/Jan (Duties: Read material above-average carefully π€; prepare fallback discussions/questions (worst-case: just prepare some quiz questions about the material) π. Prepare a few slides to guide the session through subtopics (this is not supposed to be a detailed summary of the material)
βοΈ Notetaker: Jan (Duties: Take Obsidian notes during the session π. Moderate to get input for the wiki pages π§ . Make people summarize / dumb down discussion results to keep things comprehensible for everyone π§ββοΈ.)
π― Goals
First, this is to kick off the reading group. We want to discuss important notions, and get everyone up to speed with the influential βrootsβ of ZK proofs.
We want to understand
- Basic definitions of the IP complexity class, Soundness/Proof of Knowledge, and Zero Knowledge (simulation paradigm).
- Cut-and-Choose protocols (e.g., 3-colorable, Quadratic Residue, Graph Isomorphism).
- Fiat-Shamir.
π Material
Additional (optional) material can be found on https://zk-learning.org.
π Notes
Session 1.1 (2023-06-01): Basic definitions
Mostly talked about Soundness/Proof of Knowledge and Zero Knowledge.
Interactive Proofs
Let be a language. An interactive proof system for is a tuple of interactive algorithms Prover and Verifier , that proceed as follows.
- and take a statement as common input.
- For each round : sends a message and responds with .
- At the end of interaction, outputs (βacceptβ) or (βrejectβ)
Typically, has limited computational power, whereas is unbounded.
Could the number of rounds be arbitrary?
We typically assume to be a constant. Some protocols have .
Completeness
We say a proof system is complete if accepts after both and follow the protocol honestly. More formally: If , then .
Soundness
Consider a scenario where is potentially malicious, i.e., tries to convince that the statement belongs to , even if . Soundness guarantees that, as long as then always rejects no matter what a cheating prover does. Formally:
If , then ,
What does mean?
We often indicate an algorithm is adversarial.
Zero Knowledge
Now we consider a scenario where is malicious, i.e., may potentially deviate from the protocol to obtain some extra information than the fact that . Zero Knowledge guarantees that, no malicious can gain useful information while interacting with honest .
Formally:
If , then , such that
where denotes the distribution of strings that observes during the execution of , i.e., all incoming messages to and outgoing messages from .
What is the role of simulator ?
Intuitively, the existence of simulator implies that the information gains from a protocol execution could be efficiently computed by itself from . This means that has learned βnothing newβ by interacting with .
If can simulate a protocol execution, why can't run a simulator to convince another verifier? Doesn't ZK condradict Soundness?
Although it sounds somewhat paradoxical, the existence of simulator doesnβt mean that one can play an honest prover. This is because a simulator may cheat by generating a transcript in the reverse order or by exploiting the knowledge of secret trapdoor.
Proof of Knowledge
In some applications, plain soundness may not be satisfactory. Say you as a user want to authenticate yourself to the web service by proving that you know secret identity information.
To this end, let us assume that is an NP language and consider the corresponding NP relation , where the string is called witness. In a proof system for , takes as private input, take as common input, and they interact, denoted by .
We say a proof system for is Proof of Knowledge (PoK) if the following condition is satisfied: if accepts on statement , then must have known the corresponding witness .
Formally, such that is PPT and , ,
What does mean?
It means that an extractor has black-box access to . This implies that can rewind to its previous state.
Session 1.2 (2023-06-15): Example protocols
We will revisit the definitions and look at examples to understand the basic mechanisms and tricks better.
Session 1.3 (2023-06-22): More example protocols
For real this time: letβs go through the example protocols and understand how they work. To prepare, please read
- Zero Knowledge (in particular Zero Knowledge (Classical), but donβt get too hung up on the details)
- Proof of Knowledge (in particular Proof of Knowledge (Classical), but donβt get too hung up on the details)
- Graph Isomorphism Protocol
- Quadratic Residue Protocol
- The 3-Colorable Protocol in the Lecture (slides)
Note any comments and questions you may have and bring them to the session. If you notice typos, you can also directly fix them on https://github.com/JanBobolz/zk-wiki. If you feel like writing (even small parts of) the 3-Colorable Protocol entry, go for it! It would be appreciated π.