Introduction to Zero-Knowledge

2023/06/01 ZK 共 3124 字,约 9 分钟
call me JC

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

image-20230601203511202

NP Proof System:

image-20230601203801640

example 1: Boolean Satisfiability:

image-20230601204505823

example 2: Linear Equations:

image-20230601204646512

The class P (ploynomial)

image-20230601204908634

example3 : Quadratic Residuosity:

image-20230601205058262

Interactive Proof:

image-20230601205747401

image-20230601210029320

the power of IP:

image-20230601210349697

Zero-Knowledge Proof

Definition of “no knowledge leaked”

image-20230601210801401

Definition of “Honest Verifier Zero-Knowledge”

image-20230601211312870

a zero-knowledge proof for QR_N:

image-20230601212108673

Definition of “Perfect Zero-knowledge”

video : https://www.youtube.com/watch?v=cQ-BI1WWzjU

image-20230601212732851

Definition of “Statistical Zero-knowledge”

image-20230601214218535

Definition of “Computational Zero-knowledge”

image-20230601214152295

Commitment Scheme

statistically-binding:

image-20230601214739334

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:

image-20230605210044017

image-20230605210406437

NARK:

image-20230605220013501

SNARK:

image-20230605220410180

image-20230605220448420

Types of Preprocessing Setup

image-20230605221016341

better from top to bottom

Significant Progress

image-20230605221325636

(for a circuit with about \(2^{20}\)gates) (prover time is almost linear $$C$$)

Building an efficient SNARK

Paradigm:

image-20230606092939832

functional commitment:

image-20230606090950534

e.g.

image-20230606091304961

Fiat-Shamir Transform

image-20230606092745398

Functional-IOP:

image-20230606093131440

image-20230606093409219

SNARK in Practive

image-20230606094953374

Lecture 3. Programming ZKPs

paradigm:

image-20230606133524855

image-20230606135559688

e.g.

image-20230606135534776

ZKP programmability:

Arithmetic Circuits:

image-20230606134336718

image-20230606134408412

R1CS

image-20230606134948481

image-20230606135035624

write an AC as R1CS:

image-20230606135232376

1. HDL: Hardware Description Language

image-20230606141957517

e.g.

image-20230606142230491

Circom:

base language:

image-20230606142620937

image-20230606142855928

image-20230606143221593

2. A Library for R1CS:

image-20230606143641594

image-20230606144014486

image-20230606144221335

image-20230606144443799

image-20230606144523557

witness computation:

image-20230606144621007

3. High Programming Language:

Zokrages:

image-20230606144816618

image-20230606144934840

witness computation:

image-20230606145029313

ZKP Toolchain

Toolchain types:

image-20230606145143975

image-20230606145230232

image-20230606145519998

image-20230606145622257

image-20230606145710861

Lecture 4. Interactive Proof.

image-20230709161645521

Definition of IP

image-20230606195839064

soundness vs knowledge soundness:

image-20230606201530608

IP Design

The sum-check protocol

image-20230607103604365

image-20230607103703655

An application: Counting Triangles:

image-20230607105826354

Polynomial IOP:

image-20230607111212348

rewinding technique to proof knowledge soundness

Lecture 5:Plonk SNARK

video: https://www.youtube.com/watch?v=A0oZVEXav24

image-20230709161628117

image-20230624213044395

image-20230709160640303

image-20230709160918118

Lecture6: Polynomial Commitments based on Pairing and Discrete Logarithm

video: https://www.youtube.com/watch?v=WyT5KkKBJUw

image-20230709161758921

image-20230709161951015

Background

Group:

image-20230709162211521

Discrete logarithm:

image-20230709162746407

Diffie-Hellman assumption:

image-20230709163102990

Bilinear pairing:

image-20230709163408154

BLS signature:

image-20230709163603781

KZG polynomial commitment

image-20230709164026574

image-20230709164226804

image-20230709164403455

image-20230709164532035

image-20230709164721971

image-20230709164814936

Soundness of KZG:

image-20230709165027654

image-20230709165647154

Knowledge soundness and KoE assumption:

image-20230709170317840

image-20230709170705016

Generic Group model(GGM)

image-20230709170828888

Properties of KZG

image-20230709174118835

Ceremony:

image-20230709174346055

Variants of KZG:

Multivariate poly-commit:

image-20230709174944643

Achieving zero-knowledge:

image-20230709175337683

Batch opening: single polynomial:

image-20230710165135417

image-20230710165332581

Bulletproofs and other scheme based on discrete-logarithm

Bullteproofs with transparent setup:

image-20230710165940401

image-20230710170249249

image-20230710172001536

image-20230710172658127

image-20230710173048186

image-20230710173320247

Other polynomial commitment:
Hyrax:

image-20230710200314305

Dory:

image-20230710200545826

Dark:

image-20230710200635205

image-20230710200648916

Lecture7: Polynomial Commitments based on Error-correcting Codes

image-20230710200849074

image-20230710200951305

Background on error-correcting codes

Error-correcting code

image-20230710201503545

image-20230710201857466

image-20230710203129043

Linear code

image-20230710203252119

image-20230710203934310

Polynomial Commitments based on Error-correcting Codes

image-20230710204210788

image-20230710204345017

image-20230710204459464

image-20230710204609504

image-20230710211825328

image-20230710211857486

image-20230710212054791

image-20230711101009700

image-20230711101308649

image-20230711101659308

image-20230711101829056

image-20230711101911919

image-20230711102704996

image-20230711102831829

image-20230711102911584

image-20230711103225774

image-20230711103647966

image-20230711104021772

Linear-time encodable code based on expanders

image-20230711104442022

image-20230711105125991

image-20230711141150694

image-20230711141612937

image-20230711141824288

image-20230711141908172

image-20230711142039444

image-20230711142656245

image-20230711143111656

image-20230711143254755

Lecture8: FRI-based Polynomial Commitments and Fiat-Shamir

image-20230712171952736

The zoo for Polynomial IOPs and Polynomial commitment

image-20230712202657268

image-20230712202622755

Some specimens from the zoo

image-20230712203027090

image-20230712203042111

image-20230712203557729

image-20230712203729811

image-20230712203902059

FRI(Univariate) Polynomial Commitments

image-20230712204313292

image-20230712204506760

Fix first problem:

image-20230712204621422

image-20230712204637298

image-20230712204801866

image-20230712205253456

image-20230712205308843

image-20230712210009440

image-20230712210220985

image-20230712210309780

Fix second problem:

image-20230712210425141

文档信息

Search

    Table of Contents