Delegation with (nearly) optimal time/space overhead
Justin Holmgren MIT Ron Rothblum MIT
Delegation with (nearly) optimal time/space overhead Justin - - PowerPoint PPT Presentation
Delegation with (nearly) optimal time/space overhead Justin Holmgren Ron Rothblum MIT MIT Verifiable Computation Verifiable Computation Verifiable Computation M(x)=? M(x) = y Verifiable Computation M(x)=? , challenge , proof
Justin Holmgren MIT Ron Rothblum MIT
“M(x) = y” M(x)=?
“M(x) = y” M(x)=? , challenge , proof
accept? “M(x) = y” M(x)=? , challenge , proof
Complexity << evaluating M(x)
accept? “M(x) = y” M(x)=? , challenge , proof
Complexity << evaluating M(x)
accept?
Complexity ~evaluating M(x)
“M(x) = y” M(x)=? , challenge , proof
Walfish, Blumberg ’15
Walfish, Blumberg ’15
“An additional bottleneck is memory: the prover must materialize a transcript of a computation's execution.”
Complexity << evaluating M(x)
“M(x) = y”, proof accept?
Complexity ~evaluating M(x)
Our focus: M(x)=?, challenge
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR poly(T) poly(T)
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR T 60? T 60?
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR T 3? T 3?
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR SNARKs
[BC12, BCCT12, …]
RAM Non-Falsifiable Succinct Garbling
[GHRW14, KLW15, CH15, CCCLLZ15]
RAM Obfuscation T · poly(κ) S · poly(κ) T · poly(κ) S · poly(κ) T 3? T 3?
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR SNARKs
[BC12, BCCT12, …]
RAM Non-Falsifiable Succinct Garbling
[GHRW14, KLW15, CH15, CCCLLZ15]
RAM Obfuscation [this work] TM “Slightly” Homomorphic Encryption T · poly(κ) S · poly(κ) T · poly(κ) S · poly(κ) T · poly(κ) S + poly(κ) T 3? T 3?
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR SNARKs
[BC12, BCCT12, …]
RAM Non-Falsifiable Succinct Garbling
[GHRW14, KLW15, CH15, CCCLLZ15]
RAM Obfuscation [this work] TM “Slightly” Homomorphic Encryption T · poly(κ) S · poly(κ) T · poly(κ) S · poly(κ) T · poly(κ) S + poly(κ)
Extends to (cache-efficient) RAM
T 3? T 3?
Model Assumptions Prover Time Prover Space No-Signaling PCP
[KRR14, KP15, BHK16]
RAM PIR SNARKs
[BC12, BCCT12, …]
RAM Non-Falsifiable Succinct Garbling
[GHRW14, KLW15, CH15, CCCLLZ15]
RAM Obfuscation [this work] TM “Slightly” Homomorphic Encryption T · poly(κ) S · poly(κ) T · poly(κ) S · poly(κ) T · poly(κ) S + poly(κ)
Extends to (cache-efficient) RAM
T 3? T 3?
Proof string π
π1 π2 … πL
Verifier
Input x
Proof string π
π1 π2 … πL
Verifier
Input x i1 i2 i3
Proof string π
π1 π2 … πL
Verifier
Input x
x ∈ L = ⇒ exists convincing proof
i1 i2 i3
Proof string π
π1 π2 … πL
Verifier
Input x
x ∈ L = ⇒ exists convincing proof x 62 L = ) every proof convinces with low probability
i1 i2 i3
Proof string π
π1 π2 … πL
Verifier
Input x
x ∈ L = ⇒ exists convincing proof x 62 L = ) every proof convinces with low probability
i1 i2 i3
Not a standard-model delegation scheme
PCP proof π PCP verifier
PCP proof π independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP verifier
PCP proof π independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP verifier
[Biehl-Meyer-Wetzel 98]
PCP proof π independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP verifier
[Dwork-Langberg-Naor-Nissim-Reingold 01] [Biehl-Meyer-Wetzel 98]
PCP proof π independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP verifier
[Dwork-Langberg-Naor-Nissim-Reingold 01]
[Kalai-Raz-Rothblum 14] [Biehl-Meyer-Wetzel 98]
PCP proof π independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP verifier
[Dwork-Langberg-Naor-Nissim-Reingold 01]
[Kalai-Raz-Rothblum 14] [Biehl-Meyer-Wetzel 98]
no precomputation!
PCP proof π independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP verifier
[Dwork-Langberg-Naor-Nissim-Reingold 01]
[Kalai-Raz-Rothblum 14] [Biehl-Meyer-Wetzel 98]
no precomputation! general computations!
PCP proof π PCP verifier
independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
PCP proof π PCP verifier
independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
FHE ciphertexts
PCP proof π PCP verifier
access” to PCP.
independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
FHE ciphertexts
PCP proof π PCP verifier
access” to PCP.
independent PIR queries
i1 , . . . , ik πi1 , . . . , πik
FHE ciphertexts
No-Signaling PCP with efficient prover $$$ reward
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) (essentially BFLS)
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S)
Remove major component of KRR, namely “augmented circuit”
(essentially BFLS)
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
(essentially BFLS)
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
2’ Limited efficiency loss under FHE (essentially BFLS)
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
2’ Limited efficiency loss under FHE time: T · poly(λ) (essentially BFLS)
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
2’ Limited efficiency loss under FHE time: T · poly(λ) S + poly(λ) space: (essentially BFLS)
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
2’ Limited efficiency loss under FHE time: T · poly(λ) S + poly(λ) space: (essentially BFLS)
BFLS already known to be complexity-preserving? [BC12, BTVW14]
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
2’ Limited efficiency loss under FHE time: T · poly(λ) S + poly(λ) space: (essentially BFLS)
BFLS already known to be complexity-preserving? [BC12, BTVW14] for deterministic computations
1 Simpler and direct NS-PCP for any language L ∈ TISP(T, S) 2 Super-efficient prover: Any symbol computable in ˜ O(T) S + polylog(T) time: space:
Remove major component of KRR, namely “augmented circuit”
2’ Limited efficiency loss under FHE time: T · poly(λ) S + poly(λ) space: (essentially BFLS)
BFLS already known to be complexity-preserving? [BC12, BTVW14] for deterministic computations with non-deterministic computations
NOT proving NS-soundness of BFLS for deterministic circuits
NOT proving NS-soundness of BFLS for deterministic circuits Part 1: Turing / RAM Machines (non-succinct) deterministic circuits
NOT proving NS-soundness of BFLS for deterministic circuits Part 1: Turing / RAM Machines (non-succinct) deterministic circuits Part 2: (part of) BFLS prover efficiency despite non- succinctness.
TM Configuration
tape
TM Configuration
tape
TM Configuration
tape
TM Configuration
tape
…
Config0 Config1
…
ConfigT-1
Transcript / Circuit
TM Configuration
tape
…
Config0 Config1
…
ConfigT-1
Transcript / Circuit
TM Configuration
tape
…
Configuration:
Configuration:
(diameter log S) leaves = memory
Configuration:
(diameter log S) leaves = memory
Configuration:
(diameter log S) leaves = memory
Configuration:
(diameter log S) leaves = memory
Configuration: Important for BFLS: Graph is “regular”!
(diameter log S) leaves = memory
Configuration: Transcript / Circuit:
Config0 Config1
…
ConfigT-1
Important for BFLS: Graph is “regular”!
(diameter log S) leaves = memory
Configuration: Transcript / Circuit:
Config0 Config1
…
ConfigT-1
Important for BFLS: Graph is “regular”!
(diameter log S) leaves = memory
Configuration: Transcript / Circuit:
Config0 Config1
…
ConfigT-1
Important for BFLS: Graph is “regular”!
(diameter log S) leaves = memory no routing networks!
Configuration: Transcript / Circuit:
Config0 Config1
…
ConfigT-1
Important for BFLS: Graph is “regular”!
(diameter log S) leaves = memory no Merkle trees! no routing networks!
Let be any function. f : {0, 1}m → F
1 Let be any function. f : {0, 1}m → F
1 multilinear 1
2 3
ˆ f : Fm → F Let be any function. f : {0, 1}m → F
1 multilinear 1
2 3
ˆ f : Fm → F Let be any function. f : {0, 1}m → F ˆ f( ) = X
x∈{0,1}m
f(x) · ˆ 1x( )
1 multilinear 1
2 3
ˆ f : Fm → F Let be any function. f : {0, 1}m → F ˆ f( ) = X
x∈{0,1}m
f(x) · ˆ 1x( )
“funny x” ∈ Fm
1 multilinear 1
2 3
ˆ f : Fm → F Let be any function. f : {0, 1}m → F ˆ f( ) = X
x∈{0,1}m
f(x) · ˆ 1x( )
“funny x” ∈ Fm “bold x” ∈ {0, 1}m
sum sum
ˆ C : {0, 1}t+s → {0, 1}
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0 sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0 sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1 2
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1 2
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1 2 2
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1 2 2
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1 2 2 5
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0
3 1 2 2 5
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0 Config1
3 1 2 2 5
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
Config0 Config1
3 1 2 2 5
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
13
Config0 Config1
3 1 2 2 5
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
13
Config0 Config1
3 1 2 2 5
sum sum
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
13
Config0 Config1
3 1 2 2 5
sum sum was 3, now 0
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
13
Config0 Config1
3 1 2 2 5
sum sum was 3, now 0
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
13
Config0 Config1
3 1 2 2 5
sum sum was 3, now 0
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
10 13
Config0 Config1
3 1 2 2 5
sum sum was 3, now 0
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 was 1, now 2
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
+1
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 was 1, now 2
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
+1
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 was 1, now 2
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 was 1, now 2
ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 implicit enumeration
was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 implicit enumeration
was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1 Config2
3 1 2 2 5
sum sum was 3, now 0 implicit enumeration
was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1
Coefficients structured; all is still well
Config2
3 1 2 2 5
sum sum was 3, now 0 implicit enumeration
was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1
Coefficients structured; all is still well
Config2
3 1 2 2 5
sum sum was 3, now 0 implicit enumeration
was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
11 +1
X
x,y
C(x, y)
10 13
Config0 Config1
Coefficients structured; all is still well
Config2
3 1 2 2 5
sum sum was 3, now 0 implicit enumeration
was 1, now 2
… ˆ C : {0, 1}t+s → {0, 1} ˆ C( , ) = X
y,x
C(y, x) · ˆ 1y,x( , )
encryption
encryption
O(1) field operations per step
encryption
O(1) field operations per step
S + poly(κ) S · poly(κ)
Assumptions Prover Time Prover Space No-Signaling PCPs [KRR, …] PIR SNARKs
[BC,BCCT, …]
Non-Falsifiable Succinct Garbling
[GHRW, KLW, …]
Obfuscation/ multilinear maps [this work] ≥ T 3S3 ≥ T 3S3 T · poly(κ) S · poly(κ) T · poly(κ) S · poly(κ) T · poly(κ) S + poly(κ) “Slightly” Homomorphic Encryption
remaining bottlenecks?
(large fields)
remaining bottlenecks?
(large fields)
low “asymmetric” degree (GSW) even better