Zero-Knowledge Proofs
Lecture 15
Zero-Knowledge Proofs Lecture 15 Interactive Proofs Interactive - - PowerPoint PPT Presentation
Zero-Knowledge Proofs Lecture 15 Interactive Proofs Interactive Proofs Interactive Proofs Prover wants to convince verifier that x has some property Interactive Proofs Prover wants to convince verifier that x has some property i.e. x is in
Lecture 15
i.e. x is in “language” L
i.e. x is in “language” L
i.e. x is in “language” L
Prove to me!
i.e. x is in “language” L
Prove to me!
i.e. x is in “language” L
Prove to me! OK
i.e. x is in “language” L
Prove to me! OK
If x in L, honest Prover will convince honest Verifier
If x in L, honest Prover will convince honest Verifier
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
yeah right!
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
yeah right!
If x in L, honest Prover will convince honest Verifier
If x not in L, honest Verifier won’t accept any purported proof
yeah right! Reject!
Prover claims: coke in bottle and coke in can are different
Prover claims: coke in bottle and coke in can are different
Prover claims: coke in bottle and coke in can are different
Pour into from can
Prover claims: coke in bottle and coke in can are different
Pour into from can
Prover claims: coke in bottle and coke in can are different
prover tells whether cup was filled from can or bottle
Pour into from can
Prover claims: coke in bottle and coke in can are different
prover tells whether cup was filled from can or bottle
can/bottle Pour into from can
Prover claims: coke in bottle and coke in can are different
prover tells whether cup was filled from can or bottle repeat till verifier is convinced
can/bottle Pour into from can
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced
Set G* to be π(G0) or π(G1) (π random)
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced
Set G* to be π(G0) or π(G1) (π random)
Isomorphism: Same graph can be represented as a matrix in different ways: 0 1 0 1 0 1 0 1 e.g., G0 = 1 0 0 1 & G1 = 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 both are isomorphic to the graph represented by the drawing
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced G*
Set G* to be π(G0) or π(G1) (π random)
Isomorphism: Same graph can be represented as a matrix in different ways: 0 1 0 1 0 1 0 1 e.g., G0 = 1 0 0 1 & G1 = 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 both are isomorphic to the graph represented by the drawing
Prover claims: G0 not isomorphic to G1
prover tells whether G* is an isomorphism of G0 or G1 repeat till verifier is convinced G0/G1 G*
Set G* to be π(G0) or π(G1) (π random)
Isomorphism: Same graph can be represented as a matrix in different ways: 0 1 0 1 0 1 0 1 e.g., G0 = 1 0 0 1 & G1 = 1 0 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 0 both are isomorphic to the graph represented by the drawing
Prove to me!
Prove to me!
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P)
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
w
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
prover sends w (non-interactive)
w
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
prover sends w (non-interactive)
R(x,w)=1? w
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
prover sends w (non-interactive)
R(x,w)=1? OK w
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
prover sends w (non-interactive)
R(x,w)=1? OK w
NP is the class of languages which have non-interactive and deterministic proof-systems
Prove to me!
x ∈ L iff ∃w R(x,w)=1(for R in P) e.g. Graph Isomorphism
prover sends w (non-interactive)
R(x,w)=1? OK w
NP is the class of languages which have non-interactive and deterministic proof-systems
except whether x is in L
except whether x is in L
except whether x is in L
Prove to me!
except whether x is in L
Prove to me!
except whether x is in L
w
Prove to me!
except whether x is in L
w
Prove to me!
except whether x is in L
wonder what f(w) is... w
Prove to me!
except whether x is in L
wonder what f(w) is... w
Prove to me!
except whether x is in L
Simulation!
wonder what f(w) is... w
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ
π*
G* := π(G1) (random π)
(G0,G1) in L iff there exists an isomorphism σ such that σ(G0)=G1
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
If prover can answer both b’s for the same G* then G0~G1
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
Verifier’s view: random b and π* s.t. G*=π*(Gb)
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
G* := π(G1) (random π)
If prover can answer both b’s for the same G* then G0~G1 Otherwise, testing on a random b will leave prover stuck w.p. 1/2
Verifier’s view: random b and π* s.t. G*=π*(Gb) Which he could have generated by himself (whether G0~G1 or not)
G*
random bit b
b
if b=1, π* := π if b=0, π* := πoσ G*=π*(Gb)?
π*
Complete and Sound
Complete and Sound
Complete and Sound
Complete and Sound
Ah, got it! 42
Complete and Sound
Ah, got it! 42
Complete and Sound
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated”
Ah, got it! 42
Ah, got it! 42
Complete and Sound
Verifier’s view could have been “simulated” For every adversarial strategy, there exists a simulation strategy
Ah, got it! 42
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
Classical definition uses simulation
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
Classical definition uses simulation
and uses only standalone security: Environment gets only a transcript at the end x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x
Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x
Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
proto proto
Env REAL
i’face
Env IDEAL
F
R
x,w x
Secure (and correct) if: ∀ ∃ s.t. ∀
is distributed identically in REAL and IDEAL x
Assuming one-way functions exist
Assuming one-way functions exist
Assuming one-way functions exist
Everything that can be proven can be proven in zero-knowledge! (Assuming OWF)
Assuming one-way functions exist
Everything that can be proven can be proven in zero-knowledge! (Assuming OWF)
Assuming one-way functions exist
Everything that can be proven can be proven in zero-knowledge! (Assuming OWF)
ZKPoK, Statistical ZK Arguments, O(1)-round ZK, ...
G,coloring
Uses a commitment protocol as a subroutine
G,coloring
Uses a commitment protocol as a subroutine
Use random colors
G,coloring
Uses a commitment protocol as a subroutine
Use random colors
G,coloring
committed
Uses a commitment protocol as a subroutine
pick random edge Use random colors
edge G,coloring
committed
Uses a commitment protocol as a subroutine
pick random edge Use random colors
edge G,coloring
reveal edge committed
Uses a commitment protocol as a subroutine
pick random edge distinct colors? Use random colors
edge G,coloring
reveal edge committed
Uses a commitment protocol as a subroutine
pick random edge distinct colors? Use random colors
edge G,coloring OK
reveal edge committed
Uses a commitment protocol as a subroutine At least 1/m probability of catching a wrong proof
pick random edge distinct colors? Use random colors
edge G,coloring OK
reveal edge committed
Uses a commitment protocol as a subroutine At least 1/m probability of catching a wrong proof Soundness amplification: Repeat say mk times (with independent color permutations)
pick random edge distinct colors? Use random colors
edge G,coloring OK
reveal edge committed
Using a OWP f and a hardcore predicate for it B
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
b
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
b
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b committed
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b committed
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b committed reveal
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
random x
f(x), b ⊕ B(x) b x,b committed reveal
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
consistent? random x
f(x), b ⊕ B(x) b x,b committed reveal
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding
consistent? random x
f(x), b ⊕ B(x) b b x,b committed reveal
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding Perfectly binding because f is a permutation
consistent? random x
f(x), b ⊕ B(x) b b x,b committed reveal
Using a OWP f and a hardcore predicate for it B Satisfies only classical (IND) security, in terms of hiding and binding Perfectly binding because f is a permutation Hiding because B(x) is pseudorandom given f(x)
consistent? random x
f(x), b ⊕ B(x) b b x,b committed reveal
Using ZK Proof of Knowledge
Using ZK Proof of Knowledge
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK OK
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now OK OK
Prove y1 is what...
Using ZK Proof of Knowledge
To enforce “honest behavior” in protocols At each step prove in ZK it was done as prescribed
Prove to me x1 is what you should have sent me now Prove x2 is what... OK OK