Lecture 1. Introduction and History of ZKP
video: https://www.youtube.com/watch?v=uchjTIlPzFo
NP-Language:
| Definition: \(\mathcal{L}\) is an NP-language (or NP-decision problem) if there is a $$poly( | x | )\(time verifier\)V$$where: |
Completeness: true claims have short proofs, s.t. if \(x\in \mathcal{L}\) then there is a $$poly( x )\(size witness\)w \in {0,1}^*\(such that\)V(x,w) = 1$$. - Soundness: false theorems have no proofs, s.t. if \(x \notin \mathcal{L}\) then there is no witness, so \(\forall w \in \{0,1\}^*\), we have \(V(x,w) = 0.\)
[critical thinking]
Is there any one-prover-many-verifiers or many-provers-one-verifier or many-provers-many-verifiers?
Proof System
video: https://www.youtube.com/watch?v=6uGimDYZPMw

NP Proof System:

example 1: Boolean Satisfiability:

example 2: Linear Equations:

The class P (ploynomial)

example3 : Quadratic Residuosity:

Interactive Proof:


the power of IP:

Zero-Knowledge Proof
Definition of “no knowledge leaked”

Definition of “Honest Verifier Zero-Knowledge”

a zero-knowledge proof for QR_N:

Definition of “Perfect Zero-knowledge”
video : https://www.youtube.com/watch?v=cQ-BI1WWzjU

Definition of “Statistical Zero-knowledge”

Definition of “Computational Zero-knowledge”

Commitment Scheme
statistically-binding:

Zero-Knowledge Proofs of Knowledge
Yehuada Lindell
Bar-llan University
video: https://www.youtube.com/watch?v=RvGsjnoYRRg
Lecture 2. Overview of Modern SNARK Constructions
video: https://www.youtube.com/watch?v=bGEXYpt3sj0
SNARK:
succint: “short” and “fast”
zk-SNARK:
succint and reveal nothing
What is SNARK:
arithmetic circuit:


NARK:

SNARK:


Types of Preprocessing Setup

better from top to bottom
Significant Progress
| (for a circuit with about \(2^{20}\)gates) (prover time is almost linear $$ | C | $$) |
Building an efficient SNARK
Paradigm:

functional commitment:

e.g.

Fiat-Shamir Transform

Functional-IOP:


SNARK in Practive

Lecture 3. Programming ZKPs
paradigm:


e.g.

ZKP programmability:
Arithmetic Circuits:


R1CS


write an AC as R1CS:

1. HDL: Hardware Description Language

e.g.

Circom:
base language:



2. A Library for R1CS:





witness computation:

3. High Programming Language:
Zokrages:


witness computation:

ZKP Toolchain
Toolchain types:





Lecture 4. Interactive Proof.

Definition of IP

soundness vs knowledge soundness:

IP Design
The sum-check protocol


An application: Counting Triangles:

Polynomial IOP:

rewinding technique to proof knowledge soundness
Lecture 5:Plonk SNARK
video: https://www.youtube.com/watch?v=A0oZVEXav24




Lecture6: Polynomial Commitments based on Pairing and Discrete Logarithm
video: https://www.youtube.com/watch?v=WyT5KkKBJUw


Background
Group:

Discrete logarithm:

Diffie-Hellman assumption:

Bilinear pairing:

BLS signature:

KZG polynomial commitment






Soundness of KZG:


Knowledge soundness and KoE assumption:


Generic Group model(GGM)

Properties of KZG

Ceremony:

Variants of KZG:
Multivariate poly-commit:

Achieving zero-knowledge:

Batch opening: single polynomial:


Bulletproofs and other scheme based on discrete-logarithm
Bullteproofs with transparent setup:






Other polynomial commitment:
Hyrax:

Dory:

Dark:


Lecture7: Polynomial Commitments based on Error-correcting Codes


Background on error-correcting codes
Error-correcting code



Linear code


Polynomial Commitments based on Error-correcting Codes


















Linear-time encodable code based on expanders










Lecture8: FRI-based Polynomial Commitments and Fiat-Shamir

The zoo for Polynomial IOPs and Polynomial commitment


Some specimens from the zoo





FRI(Univariate) Polynomial Commitments


Fix first problem:








Fix second problem:

文档信息
- 本文作者:Yang Jucai
- 本文链接:https://yangjucai.github.io//2023/06/01/Introduction-to-Zero-Knowledge/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

