Proof Systems for Sustainable Blockchains: How to Prove you Waste - - PowerPoint PPT Presentation

proof systems for sustainable blockchains how to prove
SMART_READER_LITE
LIVE PREVIEW

Proof Systems for Sustainable Blockchains: How to Prove you Waste - - PowerPoint PPT Presentation

Proof Systems for Sustainable Blockchains: How to Prove you Waste Space and Time Krzysztof Pietrzak 1st International Summer School on Security & Privacy for Blockchains and Distributed Ledger Technologies. September 5th 2019. Proof Systems


slide-1
SLIDE 1

Proof Systems for Sustainable Blockchains: How to Prove you Waste Space and Time

Krzysztof Pietrzak

1st International Summer School on Security & Privacy for Blockchains and Distributed Ledger Technologies. September 5th 2019.

slide-2
SLIDE 2

Proof Systems for Sustainable Blockchains: How to Prove you Waste Space and Time

Krzysztof Pietrzak

1st International Summer School on Security & Privacy for Blockchains and Distributed Ledger Technologies. September 5th 2019.

slide-3
SLIDE 3

Outline

slide-4
SLIDE 4

Outline

slide-5
SLIDE 5

Outline

slide-6
SLIDE 6

Outline

slide-7
SLIDE 7

Proof Systems

  • Protocol where prover(s) P convince verifier(s) V that ⋆ ⋆ ⋆
  • (Completeness) If ⋆ ⋆ ⋆ holds and then V will accept when

interacting with honest P.

  • (Soundness) If not ⋆ ⋆ ⋆ then V should not accept if

interacting with any malicious ˜ P.

slide-8
SLIDE 8

Proof Systems

  • Protocol where prover(s) P convince verifier(s) V that ⋆ ⋆ ⋆
  • (Completeness) If ⋆ ⋆ ⋆ holds and then V will accept when

interacting with honest P.

  • (Soundness) If not ⋆ ⋆ ⋆ then V should not accept if

interacting with any malicious ˜ P.

  • Often ⋆ ⋆ ⋆ is a

binary relation R ∶ X × W → {0,1}. P(x,w) should make V(x) accept iff R(x,w) = 1.

  • Proofs can be

zero-knowledge, succinct,. . .

slide-9
SLIDE 9

Proof Systems

  • Protocol where prover(s) P convince verifier(s) V that ⋆ ⋆ ⋆
  • (Completeness) If ⋆ ⋆ ⋆ holds and then V will accept when

interacting with honest P.

  • (Soundness) If not ⋆ ⋆ ⋆ then V should not accept if

interacting with any malicious ˜ P.

Proofs of WORK Proofs of PERSONHOOD

slide-10
SLIDE 10

Proof Systems

  • Protocol where prover(s) P convince verifier(s) V that ⋆ ⋆ ⋆
  • (Completeness) If ⋆ ⋆ ⋆ holds and then V will accept when

interacting with honest P.

  • (Soundness) If not ⋆ ⋆ ⋆ then V should not accept if

interacting with any malicious ˜ P.

Proofs of WORK Proofs of SPACE Proofs of TIME Proofs of PERSONHOOD

slide-11
SLIDE 11

Proofs of Work

Proof system where prover P must waste T units of computation to make verifier V accept.

slide-12
SLIDE 12

Proofs of Work

Proof system where prover P must waste T units of computation to make verifier V accept.

P V

random x ν 0.H(ν,x)

?

≤ 1/D

H

slide-13
SLIDE 13

Proofs of Work

Proof system where prover P must waste T units of computation to make verifier V accept.

P V

random x ν 0.H(ν,x)

?

≤ 1/D If H is modelled as a random function, then making an expected D queries is necessary (security) and sufficient (soundness).

H

slide-14
SLIDE 14

Proofs of Work in Bitcoin

slide-15
SLIDE 15

Proofs of Work in Bitcoin

hash of last block

slide-16
SLIDE 16

Proofs of Work in Bitcoin

0.H(0,...) > 1/D

hash of last block

slide-17
SLIDE 17

Proofs of Work in Bitcoin

0.H(0,...) > 1/D 0.H(1,...) > 1/D

hash of last block

slide-18
SLIDE 18

Proofs of Work in Bitcoin

0.H(0,...) > 1/D 0.H(1,...) > 1/D

hash of last block

slide-19
SLIDE 19

Proofs of Work in Bitcoin

0.H(0,...) > 1/D 0.H(1,...) > 1/D H(ν,...) ≤ 1/D

hash of last block

slide-20
SLIDE 20

Proofs of Work in Bitcoin

0.H(0,...) > 1/D 0.H(1,...) > 1/D H(ν,...) ≤ 1/D

majority of hashing power honest ⇒ secure blockchain lucky miner publishes new block gets block-reward hash of last block

slide-21
SLIDE 21

Bitcoin Mining

Miners incentivized by “block reward” and “transaciton fees”. Nakamoto’s Vision (arguably): People will use space CPU cycles for mining.

slide-22
SLIDE 22

Bitcoin Mining

Mining went from CPUs to GPUs to FPGAs to ASICS, improving on hardware cost

  • n electricity consumption

by around an order of magnitude in each step. Miners incentivized by “block reward” and “transaciton fees”. Nakamoto’s Vision (arguably): People will use space CPU cycles for mining.

slide-23
SLIDE 23

Bitcoin Sustainability

slide-24
SLIDE 24

Bitcoin Sustainability

Ecological: Massive energy & hardware waste. Economical: Requires high rewards ⇒ inflation and/or high transaction fees. Ecological: Massive energy & hardware waste. Economical: Requires high rewards ⇒ inflation and/or high transaction fees.

slide-25
SLIDE 25

Bitcoin Sustainability

https://digiconomist.net/bitcoin-energy-consumption

slide-26
SLIDE 26

Bitcoin Sustainability

slide-27
SLIDE 27

Bitcoin Sustainability

slide-28
SLIDE 28

Can we have a more “sustainable” Blockchain?

slide-29
SLIDE 29

Using Stake instead of Work as Resource?

PoW based blockchain (Bitcoin): Probability a miner can add a block proportional to its hashing power. Proof of Stake: Probability proportional to the fraction of coins the miner owns.

slide-30
SLIDE 30

Using Stake instead of Work as Resource?

PoW based blockchain (Bitcoin): Probability a miner can add a block proportional to its hashing power. Proof of Stake: Probability proportional to the fraction of coins the miner owns. Nxt, Algorand, Snow White, Ouroboros,. . .

slide-31
SLIDE 31

Using Stake instead of Work as Resource?

PoW based blockchain (Bitcoin): Probability a miner can add a block proportional to its hashing power. Proof of Stake: Probability proportional to the fraction of coins the miner owns. Very difficulty to get (Bitcoin like) blockchain for various

  • reasons. E.g. the following long range attack cannot be

prevented unless we assume checkpoints:

  • Buy (or borrow) 51% of coins at time T, then sell (or

return) everything.

  • Later (when you hold 0%) create longest chain by forking

at T. This is possible as you have majority of stake at time T!

slide-32
SLIDE 32

Using (disk)Space instead of Work as Resource?

slide-33
SLIDE 33

https://chia.net/

slide-34
SLIDE 34

Blockchain by Proofs of Space and VDFs (Chia Network)

slide-35
SLIDE 35

Blockchain by Proofs of Space and VDFs (Chia Network)

slide-36
SLIDE 36

Blockchain by Proofs of Space and VDFs (Chia Network)

hash of last block

slide-37
SLIDE 37

Blockchain by Proofs of Space and VDFs (Chia Network)

each miner gets proof of random quality (indicated by length of arrow) hash of last block

slide-38
SLIDE 38

Blockchain by Proofs of Space and VDFs (Chia Network)

each miner gets proof of random quality (indicated by length of arrow) to complete block run VDF for time=quality hash of last block

slide-39
SLIDE 39

Blockchain by Proofs of Space and VDFs (Chia Network)

each miner gets proof of random quality (indicated by length of arrow) to complete block run VDF for time=quality hash of last block

slide-40
SLIDE 40

Blockchain by Proofs of Space and VDFs (Chia Network)

each miner gets proof of random quality (indicated by length of arrow) to complete block run VDF for time=quality hash of last block Why enforce delay?

slide-41
SLIDE 41

Proofs of Space

slide-42
SLIDE 42

Proofs of Space

Proof system where prover P must waste N units of disk-space to make verifier V accept.

P V

slide-43
SLIDE 43

Proofs of Space

Proof system where prover P must waste N units of disk-space to make verifier V accept.

P V

  • V samples and sends (pseudo)random file F of size N to P.
  • Later can efficiently audit P by asking for F at random

positions. F F[i] = PRFk(i) for i = 1...N F

slide-44
SLIDE 44

Proofs of Space

Proof system where prover P must waste N units of disk-space to make verifier V accept.

P V

  • V samples and sends (pseudo)random file F of size N to P.
  • Later can efficiently audit P by asking for F at random

positions. F F[i] = PRFk(i) for i = 1...N random i y F[i] ? = PRFk(i) F

slide-45
SLIDE 45

Proofs of Space

Proof system where prover P must waste N units of disk-space to make verifier V accept.

P V

  • V samples and sends (pseudo)random file F of size N to P.
  • Later can efficiently audit P by asking for F at random

positions. F F[i] = PRFk(i) for i = 1...N random i y F[i] ? = PRFk(i) F V has huge (communication)complexity ∣F∣ = N. For blockchain applications V must be efficient.

slide-46
SLIDE 46

Proofs of Space

P V

slide-47
SLIDE 47

Proofs of Space

P V

initialization F initialization phase Efficient for V P runs in time ˜ O(N) and at the end stores file ∣F∣ = N

slide-48
SLIDE 48

Proofs of Space

P V

F proof execution (or audit) Efficient for V and P challenge response accept/reject

slide-49
SLIDE 49

Proofs of Space

P V

F proof execution (or audit) Efficient for V and P challenge response accept/reject security Malicious ˜ P who stores ˜ F of size ∣˜ F∣ ≪ ∣F∣ = N must run in time Ω(N) to pass audit.

slide-50
SLIDE 50

Two Types of Proofs of Space

slide-51
SLIDE 51

Two Types of Proofs of Space

Constructions from “Hard to Pebble Graphs”a

  • Optimal bounds: either Θ(N) space or Θ(N) time
  • Non-Interactive Initialization Phase, Complicated

aStefan Dziembowski, Sebastian Faust, Vladimir Kolmogorov, Krzysztof Pietrzak: Proofs of

  • Space. CRYPTO 2015
slide-52
SLIDE 52

Two Types of Proofs of Space

Constructions from “Hard to Pebble Graphs”a

  • Optimal bounds: either Θ(N) space or Θ(N) time
  • Non-Interactive Initialization Phase, Complicated

aStefan Dziembowski, Sebastian Faust, Vladimir Kolmogorov, Krzysztof Pietrzak: Proofs of

  • Space. CRYPTO 2015

Inverting Random Functionsa

  • Bounds (only) asymptotically optimal: T ⋅ Sk ≥ N k for “small” k, e.g.

S = T = N k/(1+k) (proof size exponential in k)

  • Non-Interactive Initialization Phase, Simple!
  • aH. Abusalah, J. Alwen, B. Cohen, D. Khilko, K. Pietrzak, L. Reyzin: Beyond Hellman’s Time-

Memory Trade-Offs with Applications to Proofs of Space. ASIACRYPT 2017

slide-53
SLIDE 53

Constructions from “Hard to Pebble Graphs”a

  • Optimal bounds: either Θ(N) space or Θ(N) time
  • Non-Interactive Initialization Phase, Complicated

aStefan Dziembowski, Sebastian Faust, Vladimir Kolmogorov, Krzysztof Pietrzak: Proofs of

  • Space. CRYPTO 2015

Inverting Random Functionsa

  • Bounds (only) asymptotically optimal: T ⋅ Sk ≥ N k for “small” k, e.g.

S = T = N k/(1+k) (proof size exponential in k)

  • Non-Interactive Initialization Phase, Simple!
  • aH. Abusalah, J. Alwen, B. Cohen, D. Khilko, K. Pietrzak, L. Reyzin: Beyond Hellman’s Time-

Memory Trade-Offs with Applications to Proofs of Space. ASIACRYPT 2017

slide-54
SLIDE 54

Two Basic Concepts

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

slide-55
SLIDE 55

Two Basic Concepts

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

is (2,3) depth-robust

slide-56
SLIDE 56

Two Basic Concepts

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

is (2,3) depth-robust

∃ (Θ(N),Θ(N)) depth-robust graphs on N nodes with O(log(N)) max-indegree [EGS75].

slide-57
SLIDE 57

Two Basic Concepts

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 label ℓi = H(ℓparents(i)), e.g. ℓ4 = H(ℓ3,ℓ4) Graph Labelling

slide-58
SLIDE 58

Pebbling Based Proofs of Space [FDPK’15]

P V

slide-59
SLIDE 59

Pebbling Based Proofs of Space [FDPK’15]

P V

1 2 3 4 5 6 depth-robust DAG (on Θ(N) nodes)

slide-60
SLIDE 60

Pebbling Based Proofs of Space [FDPK’15]

P V

φ H ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6 initialization P computes labelling of DR graph. Stores labels Sends Merkle-tree commitment to labels to V. φ F φ initialization P computes labelling of DR graph. Stores labels Sends Merkle-tree commitment to labels to V.

slide-61
SLIDE 61

Pebbling Based Proofs of Space [FDPK’15]

P V

ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6 φ F φ

slide-62
SLIDE 62

Pebbling Based Proofs of Space [FDPK’15]

P V

ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6 φ F φ proof execution V hallenges P to open a few random labels. i

  • pen ℓi

verify opening

slide-63
SLIDE 63

Pebbling Based Proofs of Space [FDPK’15]

P V

ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6 φ F φ proof execution V hallenges P to open a few random labels. i

  • pen ℓi

verify opening e.g.i = 4

slide-64
SLIDE 64

Pebbling Based Proofs of Space [FDPK’15]

P V

ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6 φ F φ security [FDPK’15] ˜ P only stores N(1 − ǫ) labels ⇒ ˜ P needs to make Ω(N) H queries to make V accept intuition: ∃ long path on lables that are not stored

slide-65
SLIDE 65

Pebbling Based Proofs of Space [FDPK’15]

P V

ℓ1 ℓ2 ℓ3 ℓ4 ℓ5 ℓ6 φ F φ security [FDPK’15] ˜ P only stores N(1 − ǫ) labels ⇒ ˜ P needs to make Ω(N) H queries to make V accept intuition: ∃ long path on lables that are not stored security [Pie’19] security against general adversaries: ˜ P stores any file of size ≤ N(1 − ǫ) ⇒

slide-66
SLIDE 66

Proofs of “useful” Space

In a proof of space the dedicated space must be “wasted”. In Proofs of catalytic space and Proofs of replication it can be used to store useful data.

slide-67
SLIDE 67

Proofs of “useful” Space

In a proof of space the dedicated space must be “wasted”. In Proofs of catalytic space and Proofs of replication it can be used to store useful data.

slide-68
SLIDE 68

Verifiable Delay Functions

slide-69
SLIDE 69

Time-Capsules

slide-70
SLIDE 70

Time-Capsules

slide-71
SLIDE 71
slide-72
SLIDE 72

inherently sequential computation ∼ computation time

slide-73
SLIDE 73

RSW96 Time-Lock Puzzle π = (N = p ⋅ q,x ∈ Z∗

N,T ∈ Z)

  • n input a time parameter T sample a puzzle π

Definition Instantiation

slide-74
SLIDE 74

RSW96 Time-Lock Puzzle π = (N = p ⋅ q,x ∈ Z∗

N,T ∈ Z)

solution σ = x2T mod N can be computed with two exponentiation given p,q: e ← 2T mod φ(N) , x2T = xe mod N

  • n input a time parameter T sample a puzzle π

and the solution σ. Definition Instantiation

slide-75
SLIDE 75

RSW96 Time-Lock Puzzle π = (N = p ⋅ q,x ∈ Z∗

N,T ∈ Z)

solution σ = x2T mod N can be computed with two exponentiation given p,q: e ← 2T mod φ(N) , x2T = xe mod N

  • n input a time parameter T sample a puzzle π

and the solution σ. requires T sequential squarings given only N x → x2 → x22 → ...x2T mod N (completeness) given π the solution σ can be computed in T sequential computational “steps” (security) but not less, even given parallelism. Definition Instantiation

slide-76
SLIDE 76

Sending Messages to the Future

slide-77
SLIDE 77

Sending Messages to the Future

Compute puzzle/solution (π,σ) and ciphertext c = Enc(σ,m) Enc m c TLP.sample(T) → (π,σ)

slide-78
SLIDE 78

Sending Messages to the Future

Compute puzzle/solution (π,σ) and ciphertext c = Enc(σ,m) Enc m c Publish π,c

π,c

TLP.sample(T) → (π,σ)

slide-79
SLIDE 79

Sending Messages to the Future

Compute puzzle/solution (π,σ) and ciphertext c = Enc(σ,m) Enc m c Publish π,c

π,c

Anyone can decrypt after solving the puzzle TLP.sample(T) → (π,σ) σ Dec c m T sequential steps TLP.solve(π)

slide-80
SLIDE 80

Sending Messages to the Future

Compute puzzle/solution (π,σ) and ciphertext c = Enc(σ,m) Enc m c Publish π,c

π,c

Anyone can decrypt after solving the puzzle TLP.sample(T) → (π,σ) σ Dec c m T sequential steps TLP.solve(π)

slide-81
SLIDE 81

Proofs of Sequential Work / Verifiable Delay Function

slide-82
SLIDE 82

Proofs of Sequential Work / Verifiable Delay Function

Proof of Sequential Work Proof system where prover P convinces verifier V it performed a sequential computation of T steps.

slide-83
SLIDE 83

Proofs of Sequential Work / Verifiable Delay Function

Proof of Sequential Work Proof system where prover P convinces verifier V it performed a sequential computation of T steps. PoSW from a time-lock puzzle π

P V

(π,σ) ← TLP.sample(T)

slide-84
SLIDE 84

Proofs of Sequential Work / Verifiable Delay Function

Proof of Sequential Work Proof system where prover P convinces verifier V it performed a sequential computation of T steps. PoSW from a time-lock puzzle π σ ← TLP.solve(π) σ′ (= σ)

P V

(π,σ) ← TLP.sample(T) σ′ ? = σ

slide-85
SLIDE 85

Proofs of Sequential Work / Verifiable Delay Function

P V

N,x Sample random p,q N ∶= p ⋅ q random x ∈ Z∗

N

instantiated with the RSW96 puzzle

slide-86
SLIDE 86

Proofs of Sequential Work / Verifiable Delay Function

P V

N,x Sample random p,q N ∶= p ⋅ q random x ∈ Z∗

N

σ ? = x2T mod N instantiated with the RSW96 puzzle σ computes σ = x2T mod N in T sequential steps

slide-87
SLIDE 87

Proofs of Sequential Work / Verifiable Delay Function

P V

N,x Sample random p,q N ∶= p ⋅ q random x ∈ Z∗

N

σ ? = x2T mod N instantiated with the RSW96 puzzle SECRET COIN : p,q required for verification, but must be secret otherwise puzzle does not need T sequential work. σ computes σ = x2T mod N in T sequential steps

slide-88
SLIDE 88

Proofs of Sequential Work / Verifiable Delay Function

P V

N,x Sample random p,q N ∶= p ⋅ q random x ∈ Z∗

N

σ ? = x2T mod N instantiated with the RSW96 puzzle SECRET COIN : p,q required for verification, but must be secret otherwise puzzle does not need T sequential work. This Work : A publicly verifiable version (i.e., a “verifiable delay function”) of the RSW96 time lock puzzle. N φ verify(x,σ,φ) ∈ {0,1} σ computes σ = x2T mod N in T sequential steps and proof φ certifying σ = x2T

slide-89
SLIDE 89

Proofs of Sequential Work / Verifiable Delay Function

P V

N,x Sample random p,q N ∶= p ⋅ q random x ∈ Z∗

N

σ ? = x2T mod N instantiated with the RSW96 puzzle SECRET COIN : p,q required for verification, but must be secret otherwise puzzle does not need T sequential work. This Work : A publicly verifiable version (i.e., a “verifiable delay function”) of the RSW96 time lock puzzle. N φ verify(x,σ,φ) ∈ {0,1} σ computes σ = x2T mod N in T sequential steps and proof φ certifying σ = x2T NOBODY knows factorization

  • f N (group order of Z∗

N)

slide-90
SLIDE 90

Proofs of Sequential Work / Verifiable Delay Function

P V

N,x Sample random p,q N ∶= p ⋅ q random x ∈ Z∗

N

σ ? = x2T mod N instantiated with the RSW96 puzzle SECRET COIN : p,q required for verification, but must be secret otherwise puzzle does not need T sequential work. This Work : A publicly verifiable version (i.e., a “verifiable delay function”) of the RSW96 time lock puzzle. N φ verify(x,σ,φ) ∈ {0,1} σ computes σ = x2T mod N in T sequential steps and proof φ certifying σ = x2T NOBODY knows factorization

  • f N (group order of Z∗

N)

computing φ must be cheap compared to computing σ

slide-91
SLIDE 91

History of Time Release Crypto

slide-92
SLIDE 92

History of Time Release Crypto

No Time-Lock Puzzles from Random Oracles

[Crypto’11]

slide-93
SLIDE 93

History of Time Release Crypto

No Time-Lock Puzzles from Random Oracles Introduce Proofs of Sequential Work and constructs them

from Random Oracles.

Not practical as prover need not only T sequential steps,

but also T space.

Not unique (finding many proofs at same cost as finding

  • ne). Uniqueness required for some applications (blockchains,

randomness beacons), but not for “non-interactive time-stamps”. [Crypto’11]

[ITCS’13]

slide-94
SLIDE 94

History of Time Release Crypto

No Time-Lock Puzzles from Random Oracles

[Eurocrypt’17]

Simple construction where prover just needs log(T) space. Still not unique....

[Crypto’11]

slide-95
SLIDE 95

History of Time Release Crypto

VDF (morally a unique proof of sequential work): on input

(x,T) compute (y,π) where y = f(x) needs T sequential steps and π proof for y = f(x).

Use incrementally verifiable computation (Valiant’08).

[Crypto’18]

slide-96
SLIDE 96

History of Time Release Crypto

VDF (morally a unique proof of sequential work): on input

(x,T) compute (y,π) where y = f(x) needs T sequential steps and π proof for y = f(x).

Use incrementally verifiable computation (Valiant’08). simple/efficient VDFs

based on the RSW time-lock puzzle [Crypto’18]

[ITCS’19]

slide-97
SLIDE 97

History of Time Release Crypto

VDF (morally a unique proof of sequential work): on input

(x,T) compute (y,π) where y = f(x) needs T sequential steps and π proof for y = f(x).

Use incrementally verifiable computation (Valiant’08). simple/efficient VDFs

based on the RSW time-lock puzzle [Crypto’18]

[ITCS’19]

slide-98
SLIDE 98

Proving σ = x2T in Groups of Unknown Order

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T claim y = x2T mod N

slide-99
SLIDE 99

Proving σ = x2T in Groups of Unknown Order

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) claim y = x2T mod N

slide-100
SLIDE 100

Proving σ = x2T in Groups of Unknown Order

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) µ = x2T /2 y = µ2T /2 ∧ y = x2T 2 claims for T/2 for 1 claim for T claim y = x2T mod N

slide-101
SLIDE 101

Proving σ = x2T in Groups of Unknown Order

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) µ = x2T /2 y = µ2T /2 ∧ y = x2T 2 claims for T/2 for 1 claim for T claim y = x2T mod N µr ⋅ y = (xr ⋅ µ)2T /2

slide-102
SLIDE 102

Proving σ = x2T in Groups of Unknown Order

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) µ = x2T /2 y = µ2T /2 ∧ y = x2T µr ⋅ y ≠ (xr ⋅ µ)2T /2 for almost all r claim y = x2T mod N µr ⋅ y = (xr ⋅ µ)2T /2 µ ≠ x2T /2 y ≠ µ2T /2 ∨

slide-103
SLIDE 103

Proving σ = x2T in Groups of Unknown Order

new claim y′ = x′2T /2 mod N where x′ ∶= µr ⋅ y y′ ∶= (xr ⋅ µ)2T /2

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) random r claim y = x2T mod N

slide-104
SLIDE 104

Proving σ = x2T in Groups of Unknown Order

new claim y′ = x′2T /2 mod N where x′ ∶= µr ⋅ y y′ ∶= (xr ⋅ µ)2T /2

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) random r claim y = x2T mod N

  • Repeat log(T) times until V can verify claim for T = 1.
  • Can be made non-interactive in random-oracle model.
  • Complexity: P needs T time to compute y, and then

√ T time and space to compute proof.

  • Proof Size: log T elements (the µ values).
slide-105
SLIDE 105

Proving σ = x2T in Groups of Unknown Order

new claim y′ = x′2T /2 mod N where x′ ∶= µr ⋅ y y′ ∶= (xr ⋅ µ)2T /2

P V

(x,y,T,N) x x2 x22 x23 ... ... x2T −1 x2T µ (= x2T /2) µ (= x2T /2) random r claim y = x2T mod N Concurrent work by Wesolowskia has proof of size 1 element (not log T), but requires computational assumption: for any α ≠ 1, given random B it’s hard to compute Bth root α1/B.

ahttps://eprint.iacr.org/2018/623.pdf

slide-106
SLIDE 106
slide-107
SLIDE 107
slide-108
SLIDE 108
slide-109
SLIDE 109
slide-110
SLIDE 110

https://chia.net/

slide-111
SLIDE 111

Bitcoin mining: Init: sample signature key-pair (pk,sk)

  • 1. Find head of longest chain βi−1 & compile block of

transactions τi.

  • 2. (PoW) hash distinct φ until H(φ,...) ≤ treshhold
  • announce new block βi = (φ,...) and goto step 1.
  • if new longer chain observed immediately go to step 1.

βi βi+1 βi+2 βi+3 βi+4 β′

i+3

β′

i+2

Bticoin block βi = (˜ βi,φ), ˜ βi = (i,H(βi−1),pk,τi) contains

  • Transactions τi (consistent with chain so far).
  • pk (block-reward and transactions fees go to pk)
  • hash of previous block H(βi−1)
  • PoW φ where H(φ, ˜

βi) ≤ treshhold

Bitcoin Mining Recap

slide-112
SLIDE 112

Unique Digital Signatures ∀m ∶ Pr[Sig.verify(pk,m,φ) = accept] = 1 where (pk,sk) ← Sig.keygen ; φ ← Sig.sign(sk,m) Unique : (Sig.verify(pk,m,φ) = Sig.verify(pk,m,φ′) = accept) ⇒ (φ = φ′) ∀pk,N ∶ PoSpace.verify(c,PoSpace.prove(S,pk,c)) = accept S ← PoSpace.init(pk,N) Proofs of Space Weakly Unique : Ec [{σ ∶ PoSpace.verify(pk,c,σ) = accept}] = 1 Signed : σ = (σ′,Sig.sign(sk,σ′))

Chia Building Blocks

Verifiable Delay Functions ∀t,c ∶ VDF.verify(c,t,VDF.prove(c,t)) = accept VDF.prove(c,t) should take almost sequential time t to compute

slide-113
SLIDE 113

A Blockchain from Proofs of Space and VDFs

Initialization:(pk,sk) ← Sig.KeyGen,Σ ← PoSpace.Init(pk,N) Mining: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk) gossip φ and define “quality” of φ as q(φ) ∶= H(φ).

Space Farmers

slide-114
SLIDE 114

A Blockchain from Proofs of Space and VDFs

Initialization:(pk,sk) ← Sig.KeyGen,Σ ← PoSpace.Init(pk,N) Mining: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk) gossip φ and define “quality” of φ as q(φ) ∶= H(φ).

Space Farmers Time Lords

If PoSpace φ received, start computing τ ← VDF(challenge = φ,time = q(φ) ⋅ hardness parameter) ONLY IF (given local view) this will be the first VDF to finalize a block at this level. Gossip τ once finished.

slide-115
SLIDE 115

Farming: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk)

Attacks

slide-116
SLIDE 116

Farming: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk) Extending Multiple Chains: As (unlike PoW) computing a PoSpace is cheap, the miner can try to extend all blocks it learns about.

Attacks

slide-117
SLIDE 117

Farming: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk) Extending Multiple Chains: As (unlike PoW) computing a PoSpace is cheap, the miner can try to extend all blocks it learns about. provably not such a big problem (wait two slides)

Attacks

slide-118
SLIDE 118

Farming: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk) Extending Multiple Chains: As (unlike PoW) computing a PoSpace is cheap, the miner can try to extend all blocks it learns about. Grinding: try out many τi’s to get different c’s until one found which gives me a super high quality PoSpace for next round ⇒ can hijack chain forever! provably not such a big problem (wait two slides)

Attacks

slide-119
SLIDE 119

Farming: When new longest chain with head βi observed: compute φ ← PoSpace(Σ,c) for challenge c ∶= H(i,βi,τi,pk) Extending Multiple Chains: As (unlike PoW) computing a PoSpace is cheap, the miner can try to extend all blocks it learns about. Grinding: try out many τi’s to get different c’s until one found which gives me a super high quality PoSpace for next round ⇒ can hijack chain forever! separate proofs from everything “graindable”, Chia block format (next slide) kills the problem! provably not such a big problem (wait two slides)

Attacks

slide-120
SLIDE 120

The Chia Block Format & (Non-)Grinding

σi τi βi σi+1 τi+1 βi+1 σi+2 τi+2 βi+2 αi αi+1 αi+2 σ′

i+1

τ ′

i+1

β′

i+1

α′

i+1

σ′

i+2

A full block γi = (βi,αi) contains βi = (i,(pki,σi),τi) and αi = (φi,datai)

  • 1. PoSpace.verify(pki,H(τi−1),σi,N) = 1
  • 2. VDF.verify(c,t,τi) = 1 where c = H(σi) , t = 0.H(σi) ⋅ T
  • 3. Sig.verify(pki,H(αi−1,σi,datai),φi) = 1
slide-121
SLIDE 121

The Chia Block Format & (Non-)Grinding

σi τi βi σi+1 τi+1 βi+1 σi+2 τi+2 βi+2 αi αi+1 αi+2 σ′

i+1

τ ′

i+1

β′

i+1

α′

i+1

σ′

i+2

A full block γi = (βi,αi) contains βi = (i,(pki,σi),τi) and αi = (φi,datai)

  • 1. PoSpace.verify(pki,H(τi−1),σi,N) = 1
  • 2. VDF.verify(c,t,τi) = 1 where c = H(σi) , t = 0.H(σi) ⋅ T
  • 3. Sig.verify(pki,H(αi−1,σi,datai),φi) = 1

All proofs in the trunk, nothing to grind here! Transactions and other grindable stuff in the foliage

slide-122
SLIDE 122

Analysing Chain Growth

  • h honest miners, each has one unit of space.
  • adversarial miner with m units of space.
  • every unit of space for every challenge gives a proof of quality uniform

in [0,1].

  • to finalize a proof of quality α takes time α (all VDF equally fast).
  • adversary can run infinite number of VDF.
  • no network delays.
slide-123
SLIDE 123

Analysing Chain Growth

  • h honest miners, each has one unit of space.
  • adversarial miner with m units of space.
  • every unit of space for every challenge gives a proof of quality uniform

in [0,1].

  • to finalize a proof of quality α takes time α (all VDF equally fast).
  • adversary can run infinite number of VDF.
  • no network delays.
  • Consider h-ary tree of depth ℓ.
  • Label every edge with random value from [0,1].
  • Random Variable Cℓ

κ,h is length of shortest path we find when always

following the κ best edges from root to a leave. .1 .2 .8 .4 .6 .8 .1 .5 .8 .1 .3 .4 C2

1,3 = .5

C2

∞,3 = .3

slide-124
SLIDE 124

Analysing Chain Growth

  • h honest miners, each has one unit of space.
  • adversarial miner with m units of space.
  • every unit of space for every challenge gives a proof of quality uniform

in [0,1].

  • to finalize a proof of quality α takes time α (all VDF equally fast).
  • adversary can run infinite number of VDF.
  • no network delays.
  • Consider h-ary tree of depth ℓ.
  • Label every edge with random value from [0,1].
  • Random Variable Cℓ

κ,h is length of shortest path we find when always

following the κ best edges from root to a leave. .1 .2 .8 .4 .6 .8 .1 .5 .8 .1 .3 .4 C2

1,3 = .5

C2

∞,3 = .3

  • Cℓ

κ,h is expected time h honest miners

need to grow chain of length ℓ.

  • Cℓ

∞,m is expected time adversary

controlling m space needs to grow chain of length ℓ.

slide-125
SLIDE 125

Algorithm 1 sample Cℓ

κ,h

1: Input: κ,ℓ,h 2: s[1,...,κ] = 0

▷ initially we have κ paths of length 0

3: for i = 1 to ℓ do

▷ sample ℓ steps

4:

for j = 1 to κ do ▷ extend each of the κ states...

5:

for k = 1 to h do ▷ by h values...

6:

p[j,k] = s[j] + rand([0,1]) ▷ chosen uniform from [0,1]

7:

end for

8:

end for

9:

z = sort(p[1,1],...,p[κ,h]) ▷ sort the κ ⋅ h values

10:

s = z[1,...,κ] ▷ new state are the κ shortest paths

11: end for 12: Return min(s)

Pseudocode For Sampling Cℓ

κ,h

slide-126
SLIDE 126

κ = 3 κ = 2 κ = 1 ℓ = 30,h = 29

Simulation of Cℓ

κ,h

slide-127
SLIDE 127

What we know about Cℓ

κ,h

  • 1. Cℓ

κ,h is expected time h honest miners need to grow chain

  • f length ℓ without adversarial interference
  • 2. No Slowdown Lemma: an adversary with unbounded

space and parallelism (but which cannot break the underlying signature scheme) cannot slow down the rate at which this chain grows.

  • 3. We know exact expectation for κ = 1

E[Cℓ

1,h] =

ℓ h + 1

  • 4. We can lower bound for κ = ∞

E[Cℓ

∞,h] ≥

ℓ h + 1 ⋅ 1 e

slide-128
SLIDE 128

What we know about Cℓ

κ,h

  • 1. Cℓ

κ,h is expected time h honest miners need to grow chain

  • f length ℓ without adversarial interference
  • 2. No Slowdown Lemma: an adversary with unbounded

space and parallelism (but which cannot break the underlying signature scheme) cannot slow down the rate at which this chain grows.

  • 3. We know exact expectation for κ = 1

E[Cℓ

1,h] =

ℓ h + 1

  • 4. We can lower bound for κ = ∞

E[Cℓ

∞,h] ≥

ℓ h + 1 ⋅ 1 e (Weak) Chain Quality Lemma: If m < h/e (m space controlled by adversary, h honest space) then the fraction of honestly mined blocks is > 0.

slide-129
SLIDE 129
  • We can lower bound for κ = ∞

E[Cℓ

∞,h] ≥

ℓ h + 1 ⋅ 1 e

Proof Sketch

.1 .2 .8 .4 .6 .8 .1 .5 .8 .1 .3 .4 C2

1,3 = .5

C2

∞,3 = .3

slide-130
SLIDE 130
  • We can lower bound for κ = ∞

E[Cℓ

∞,h] ≥

ℓ h + 1 ⋅ 1 e

Proof Sketch

  • Instead of analyzing shortest path in h-ary tree of depth ℓ,

consider hℓ independent paths, prove that this tilts the bound in right direction.

  • (Chernoff) Show that probability that any of those is

shorter than x is ≪

1 hℓ .

  • (Union Bound) Whp. all hℓ of them are shorter than x.

.1 .2 .8 .4 .6 .8 .1 .5 .8 .1 .3 .4 C2

1,3 = .5

C2

∞,3 = .3

slide-131
SLIDE 131

h = 2 h = 2 h = 4 h = 9 h = 99,999 Cℓ

κ,h for ℓ = 1000(h + 1)

1000/e ≈ 367.88...

κ

20 30 40 50 60 70 80 90 100

Choosing κ

κ ∶ 1 2 3 4 5 6 7 8 9 Cℓ

1,h/Cℓ κ,h ∶

1 1.45 1.69 1.83 1.93 1.99 2.05 2.09 2.12 eκ ≈

e Cℓ

1,h/Cℓ κ,h ∶

2.71 1.86 1.60 1.47 1.40 1.36 1.32 1.29 1.27

slide-132
SLIDE 132

Pseudocode

slide-133
SLIDE 133

Algorithm 2 SpaceMiner.init

1: Global Parameters: N 2: C ← Chain.init

▷ extract view from network

3: (pk,sk) ← Sig.keygen

▷ generate a signature key pair

4:

S ← PoSpace.init(N,pk). ▷ run PoSpace initialisation with space N and identity pk to get a file S of size ∣S∣ = N.

5: Initalize a vector pos count to all 0

▷ see Remark ??

6: Output: 7: (pk,sk),S,pos count

▷ State for SpaceMiner.mine

8: C

▷ State for Chain.update Algorithm 3 SpaceMiner.loop

1: loop 2:

Wait for block(s) Γ to be received from the network

3:

(Γf,Γn) ← Chain.update(Γ)

4:

∀γ ∈ Γf ∶ SpaceMiner.mine(γ) ▷ Algorithm 4

5: end loop

Space Miner Pseudocode (1/2)

slide-134
SLIDE 134

Space Miner Pseudocode (2/2)

Algorithm 4 SpaceMiner.mine

1: Global Parameters: κ 2: Input: γi = (βi = (i,σi,τi),αi).

▷ finalized, fresh & valid block for slot i

3: State: (pk,sk), S, pos count 4: if pos count(i) = κ then

▷ already generated κ PoS for slot i

5:

return without output

6: end if 7: pos count(i) ← pos count(i) + 1 8: σi+1 ← PoSpace.prove(S,pk,H(τi))

▷ produce PoSpace

9: Generate datai+1

▷ application specific

10: φi+1 ← Sig.sign(sk,(αi,σi+1,datai+1)▷ signature for signature chain 11: Chain.update((i + 1,σi+1),αi+1 = (φi+1,datai+1))

▷ Cf. §??

slide-135
SLIDE 135

Time Miner Pseudocode (1/3)

Algorithm 5 TimeMiner.init

1: C ← Chain.init

▷ extract view from network

2: Initalize a vectors finalized and running to all 0 3: Output: 4: finalized,running

▷ State for TimeMiner.mine/finalized/runPoSW

5: C

▷ State for Chain.update Algorithm 6 TimeMiner.loop

1: loop 2:

Wait for block(s) Γ to be received from the network

3:

(Γf,Γn) ← Chain.update(Γ)

4:

∀((i,σ),α) ∈ Γn ∶ TimeMiner.mine(i,σ) ▷ Algorithm 7

5:

∀((i,σ,τ),α) ∈ Γf ∶ TimeMiner.finalized(i) ▷ Algorithm 9

6: end loop

slide-136
SLIDE 136

Algorithm 7 TimeMiner.mine

1: Global Parameters: T, κ 2: Input: βi = (i,σi)

▷ non-finalized, fresh & valid block for slot i received

3: State: finalized, running 4: if finalize[i] = κ then

▷ already finalized κ blocks for this slot

5:

return with no output

6: end if 7: t ∶= 0.H(σi) ⋅ T

▷ time required to finalize this block

8: if finalize[i] + running[i] < κ then

▷ < κ proofs finalized or running

9:

start thread TimeMiner.runPoSW(i,H(σi),t) ▷ to finish at time now + t

10:

running[i] = running[i] + 1

11: end if 12: if finalize[i] + running[i] = κ then

▷ exactly κ proofs finalized or running

13:

if the slowest PoSW for slot i will finish at time > t + now then

14:

abort the thread of this PoSW

15:

start thread TimeMiner.runPoSW(i,H(σi),t)

16:

end if

17: end if

slide-137
SLIDE 137

Time Miner Pseudocode (3/3)

Algorithm 8 TimeMiner.runPoSW

1: State: finalized, running 2: Input: i,(c,t) 3: τi ← PoSW(c,t) ▷ start PoSW, if not aborted will output proof τi in

time t

4: finalized[i] = finalized[i] + 1 5: running[i] = running[i] − 1 6: Chain.update(τi)

Algorithm 9 TimeMiner.finalized

1: State: finalized, running 2: Input: i

▷ fresh, valid & finalized block for slot i was received

3: if running[i] > 0 and running[i]+finalized[i] = κ then 4:

abort the thread TimeMiner.runPoSW for slot i scheduled to finish last

5:

running[i] = running[i] − 1

6: end if 7: finalized[i] = min{finalized[i] + 1,κ}

slide-138
SLIDE 138
  • (PoSpace) Is there a proof of space with non-interactive

initialization and (at least asymptotically) optimal bounds?

  • (Analysis) Better chain quality, persistience etc. analysis?

Can we say something about rational (not just honest) miners?

Some Open Problems

slide-139
SLIDE 139
  • (PoSpace) Is there a proof of space with non-interactive

initialization and (at least asymptotically) optimal bounds?

  • (Analysis) Better chain quality, persistience etc. analysis?

Can we say something about rational (not just honest) miners?

Some Open Problems

slide-140
SLIDE 140
  • (PoSpace) Is there a proof of space with non-interactive

initialization and (at least asymptotically) optimal bounds?

  • (Analysis) Better chain quality, persistience etc. analysis?

Can we say something about rational (not just honest) miners?

Some Open Problems

slide-141
SLIDE 141
  • (PoSpace) Is there a proof of space with non-interactive

initialization and (at least asymptotically) optimal bounds?

  • (Analysis) Better chain quality, persistience etc. analysis?

Can we say something about rational (not just honest) miners?

Some Open Problems

slide-142
SLIDE 142