Simple Proofs of Sequential Work
Bram Cohen Krzysztof Pietrzak
Eurocrypt 2018, Tel Aviv, May 1st 2018
Simple Proofs of Sequential Work Bram Cohen Krzysztof Pietrzak - - PowerPoint PPT Presentation
Simple Proofs of Sequential Work Bram Cohen Krzysztof Pietrzak Eurocrypt 2018, Tel Aviv, May 1st 2018 Outline What Proofs of Sequential Work How Sketch of Construction & Proof Why Sustainable Blockchains Outline What
Bram Cohen Krzysztof Pietrzak
Eurocrypt 2018, Tel Aviv, May 1st 2018
Proofs of Sequential Work Sustainable Blockchains Sketch of Construction & Proof
Proofs of Sequential Work Sustainable Blockchains Sketch of Construction & Proof
Proofs of Sequential Work Sustainable Blockchains Sketch of Construction & Proof
Proofs of Sequential Work Sustainable Blockchains Sketch of Construction & Proof
σi τi βi σi+1 τi+1 βi+1 αi αi+1
puzzle: (N = p · q, x, T) , solution: x2T mod N solution computed with two exponentiation given p, q: e ← 2T mod φ(N) , x2T = xe mod N conjectured to require T sequential squarings given only N x → x2 → x22 → . . . x2T mod N
puzzle: (N = p · q, x, T) , solution: x2T mod N sequential computation ∼ computation time ⇒ “send message to the future” solution computed with two exponentiation given p, q: e ← 2T mod φ(N) , x2T = xe mod N conjectured to require T sequential squarings given only N x → x2 → x22 → . . . x2T mod N
⇒ Non-interactive time-stamps
Functionality
⇒ Non-interactive time-stamps
“sequential” hash-function
assumption Functionality Assumption
⇒ Non-interactive time-stamps
“sequential” hash-function
assumption Functionality Assumption Public vs. Private
Publicly verfiable
Designated verifier
Prover P χ ← Verifier V statement χ Time T ∈ N
τ = τ(χ, T) verify(χ, T, τ) ∈ accept/reject Prover P χ ← Verifier V statement χ Time T ∈ N
τ = τ(χ, T) verify(χ, T, τ) ∈ accept/reject Completeness and Soundness in the random oracle model:
Prover P χ ← Verifier V statement χ Time T ∈ N
τ = τ(χ, T) verify(χ, T, τ) ∈ accept/reject Completeness and Soundness in the random oracle model:
Prover P χ ← Verifier V statement χ Time T ∈ N Completeness: τ(c, T) can be computed making T queries to H Soundness: Computing any τ ′ s.t. verify(χ, T, τ ′) =accept for random χ requires almost T sequential queries to H
τ = τ(χ, T) verify(χ, T, τ) ∈ accept/reject Completeness and Soundness in the random oracle model:
Prover P χ ← Verifier V statement χ Time T ∈ N Completeness: τ(c, T) can be computed making T queries to H Soundness: Computing any τ ′ s.t. verify(χ, T, τ ′) =accept for random χ requires almost T sequential queries to H massive parallelism useless to generate valid proof faster ⇒ prover must make almost T sequential queries ∼ T time
1) Space Complexity : Prover needs massive (linear in T) space to compute proof. 2) Poor/Unclear Parameters due to usage of sophisticated combinatorial objects. 3) Uniqueness : Once an accepting proof is computed, many
time-stamping, but for blockchains).
1) Space Complexity : Prover needs massive (linear in T) space to compute proof. 2) Poor/Unclear Parameters due to usage of sophisticated combinatorial objects. 3) Uniqueness : Once an accepting proof is computed, many
time-stamping, but for blockchains). 1) Prover needs only O(log(T)) (not O(T)) space, e.g. for T = 242 (≈ a day) that’s ≈ 10KB vs. ≈ 1PB. 2) Simple construction and proof with good concrete parameters. 3) Awesome open problem!
DAG G = (V, E) is (e, d) depth-robust if after removing any e nodes a path of length d exists.
1 2 3 4 5 6 Depth-Robust Graphs (only [MMV’13])
DAG G = (V, E) is (e, d) depth-robust if after removing any e nodes a path of length d exists.
1 2 3 4 5 6 Depth-Robust Graphs (only [MMV’13])
is (2, 3) depth-robust
DAG G = (V, E) is (e, d) depth-robust if after removing any e nodes a path of length d exists.
1 2 3 4 5 6 Depth-Robust Graphs (only [MMV’13]) label ℓi = H(ℓparents(i)), e.g. ℓ4 = H(ℓ3, ℓ4) Graph Labelling
x y H H x′ y′ queries y = H(x), y′ = H(x′) where y ⊆ x′ ⇒ query x′ was made after x Random Oracles are Sequential
DAG G = (V, E) is (e, d) depth-robust if after removing any e nodes a path of length d exists.
1 2 3 4 5 6 Depth-Robust Graphs (only [MMV’13]) label ℓi = H(ℓparents(i)), e.g. ℓ4 = H(ℓ3, ℓ4) Graph Labelling
Prover P χ ← Verifier V statement χ Time T = 6
Prover P χ ← Verifier V statement χ Time T = 6 1 2 3 4 5 6
DAG G on T nodes
Hχ(·) ≡ H(χ·)
Prover P χ ← Verifier V statement χ Time T = 6
DAG G on T nodes
Hχ(·) ≡ H(χ·)
ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6
Prover P χ ← Verifier V statement χ Time T = 6
DAG G on T nodes
Hχ(·) ≡ H(χ·)
ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6
φ
φ
Prover P χ ← Verifier V statement χ Time T = 6
DAG G on T nodes
Hχ(·) ≡ H(χ·)
ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6
φ
φ
(interaction can be removed using Fiat-Shamir)
c ⊂ V
check openings and if labels consistent with parent labels
Prover P χ ← Verifier V statement χ Time T = 6
φ ℓ′
1
ℓ′
2
ℓ′
3
ℓ′
4
ℓ′
5
ℓ′
6
P to labels {ℓ′
i}i∈V
i = H(ℓ′ parents(i))
φ
Prover P χ ← Verifier V statement χ Time T = 6
φ ℓ′
1
ℓ′
2
ℓ′
3
ℓ′
4
ℓ′
5
ℓ′
6
P to labels {ℓ′
i}i∈V
i = H(ℓ′ parents(i))
φ
Prover P χ ← Verifier V statement χ Time T = 6
φ ℓ′
1
ℓ′
2
ℓ′
3
ℓ′
4
ℓ′
5
ℓ′
6
P to labels {ℓ′
i}i∈V
i = H(ℓ′ parents(i))
φ
(by (e, d) depth-robustness) ⇒ ˜ P made d sequential queries (by sequantality of RO)
For every leaf i add all edges (j, i) where j is left sibling of node on path i → root
For every leaf i add all edges (j, i) where j is left sibling of node on path i → root
right sibling T = 15 left sibling
For every leaf i add all edges (j, i) where j is left sibling of node on path i → root
For every leaf i add all edges (j, i) where j is left sibling of node on path i → root
ℓ1 ℓ2 ℓ3 ℓ14 ℓ15
label φ = ℓT to V. Can be done storing only log(T) labels.
consistency (blue and green edges!)
For every leaf i add all edges (j, i) where j is left sibling of node on path i → root
ℓ1 ℓ2 ℓ3 ℓ14 ℓ15
label φ = ℓT to V. Can be done storing only log(T) labels.
consistency (blue and green edges!) PKC’00
φ
P committed to labels ℓ′
i after sending φ = ℓ15.
i = H(ℓ′ parents(i)).
φ
P committed to labels ℓ′
i after sending φ = ℓ15.
i = H(ℓ′ parents(i)).
φ
P committed to labels ℓ′
i after sending φ = ℓ15.
i = H(ℓ′ parents(i)).
φ
P committed to labels ℓ′
i after sending φ = ℓ15.
i = H(ℓ′ parents(i)).
P can’t open |S|/T fraction of leafs.
φ
P committed to labels ℓ′
i after sending φ = ℓ15.
i = H(ℓ′ parents(i)).
P can’t open |S|/T fraction of leafs. Theorem: ˜ P made only T(1 − ǫ) sequential queries ⇒ will pass opening phase with prob. ≤ (1 − ǫ)#of challenges
φ
σi τi βi σi+1 τi+1 βi+1 αi αi+1
dynamics proof of work hardness set so blocks appear ≈ every 10 minutes
computation as resource
dynamics proof of work hardness set so blocks appear ≈ every 10 minutes
computation as resource
dynamics proof of work hardness set so blocks appear ≈ every 10 minutes
space as resource
dedicated space computation as resource
dynamics proof of work hardness set so blocks appear ≈ every 10 minutes
space as resource
dedicated space dynamics Run PoSW on top of PoSpace for T ∼ quality of PoSpace to “finalize” block computation as resource
φi : proof of work on challenge hash(βi−1) transactions
βi βi+1 βi+2 βi+3 βi+4
φi : proof of work on challenge hash(βi−1) transactions
σi τi σi+1 τi+1 σi+2 τi+2
σi : proof of space on challenge hash(τi−1) τi : proof of sequential work on challenge hash(σi−1) and time parameter quality(σi−1)
βi βi+1 βi+2 βi+3 βi+4
φi : proof of work on challenge hash(βi−1) transactions
σi τi σi+1 τi+1 σi+2 τi+2 αi αi+1 αi+2
σi : proof of space on challenge hash(τi−1) τi : proof of sequential work on challenge hash(σi−1) and time parameter quality(σi−1)
βi βi+1 βi+2 βi+3 βi+4
φi : proof of work on challenge hash(βi−1) transactions
σi τi σi+1 τi+1 σi+2 τi+2 αi αi+1 αi+2
σi : proof of space on challenge hash(τi−1) τi : proof of sequential work on challenge hash(σi−1) and time parameter quality(σi−1)
βi βi+1 βi+2 βi+3 βi+4
NOTHING TO GRIND HERE!