tutorial: the ouroboros protocol family - aft 2020 · ouroboros –protocol design 26 ouroboros...

214
Christian Badertscher & Aggelos Kiayias The University of Edinburgh & IOHK Tutorial: The Ouroboros Protocol Family Advances in Financial Technologies, 2019

Upload: others

Post on 30-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Christian Badertscher & Aggelos Kiayias

The University of Edinburgh

& IOHK

Tutorial:

The Ouroboros Protocol Family

Advances in Financial Technologies, 2019

Page 2: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

▪ Implement an immutable transaction

ledger…

The Goal of Blockchain Protocols

2

Page 3: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

▪ Submit transactions

▪ Get included into the ledger (if valid)

▪ Everyone can access ledger

▪ Ledger can’t be changed (immutable)

Immutable Ledger Properties

3

Page 4: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

The Ledger Functionality

4

Page 5: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

▪ The functionality formalizes the relevant blockchain properties

and the limited capabilities of an adversary.

- E.g., common state, well-formed blocks, recent transactions etc.

The Ledger Functionality

5

Page 6: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

▪ The functionality formalizes the relevant blockchain properties

and the limited capabilities of an adversary.

- E.g., common state, well-formed blocks, recent transactions etc.

▪ Important: It captures the service provided to any

cryptographic protocol.

Applications: Incentive Mechanisms, Poker, general MPC

The Ledger Functionality

6

Page 7: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger…

▪ Implement an immutable transaction

ledger…

But:

▪ Avoid a central trusted entity

▪ Allow dynamic and easy participation

▪ Be permissionless and accessible to

anyone (read and write)

7

Page 8: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

8

Page 9: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

9

B0

Genesis Block

Page 10: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

10

B1

Lottery-style (simplified):

Find nonce N s.t. Hash(N, tx…, Hash(Bi-1)) < T

Observation:

More hashing power → better chances to produce blocks.

B0

Page 11: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

11

A Tree Structure (Forks)

B0

Page 12: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

B0

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

12

Blockchain Properties [GKL15,PSS17]:

Common-prefix (CP): Honest miners share a consistent common prefix.

Chain-growth (CG): The number of blocks increases over time.

Chain-quality (CQ): A guaranteed fraction of honestly contributed blocks.

→ Ledger can be realized assuming honest majority of hashing power

Page 13: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

A very nice blockchain feature: Dynamic availability (DA).

- Parties join and leave at will. They need to bootstrap a chain

when (re-) joining.

→ Easy in Bitcoin: “longest-chain rule” (general: most difficult chain).

- Number of online/offline parties changes over time

→ Analysis must account for that.

- No a priori knowledge of participation levels is required by the

protocol.

- Unannounced disappearance.

13

Page 14: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

▪ Bitcoin is not energy efficient as the hash-based lottery

consumes a lot of energy to ensure the protocol’s security.

14

B0

Page 15: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

▪ The case of Bitcoin:

▪ Parties repeatedly try to solve cryptographic puzzles. A solution

allows to create a block and append it to the chain.

▪ Bitcoin is not energy efficient as the hash-based lottery

consumes a lot of energy to ensure the protocol’s security.

15

Proof-of-Stake to the rescue!

B0

Page 16: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

Proof-of-Stake Blockchains:

- Use stake (a virtual resource) instead of hashing power.

- Miners = Stakeholders.

- Next stakeholder to produce block elected with probability

proportional to stake.

16

Page 17: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

17

Two categories:

Nakamoto-style consensus (e.g., Ouroboros, Snow White)

BFT-style consensus (e.g., Algorand, Casper, Ouroboros-BFT)

Proof-of-Stake Blockchains:

- Use Stake (a virtual resource) instead of hashing power.

- Miners = Stakeholders.

- Next stakeholder to produce block elected with probability

proportional to stake.

Page 18: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Realizing the Ledger

18

Complications of PoS vs. PoW:

- PoS has costless simulation:

No physical resources to create blocks: several transaction

histories could be generated “in the adversaries head”.

- Long-Range attacks in the threat model:

Adversary tries to deceive (new) participants into believing the

“wrong” history (which are cheap to generate).

Proof-of-Stake Blockchains:

- Use Stake (a virtual resource) instead of hashing power.

- Miners = Stakeholders.

- Next stakeholder to produce block elected with probability

proportional to stake.

Page 19: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview

19

▪ The development steps of a pure PoS-based blockchain

protocol in the dynamic availability setting.

▪ Security follows from the “honest majority of stake” assumption.

▪ Start with the initial version and refine it until all the

security requirements are achieved.

Page 20: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview – Main Content

20

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Semi-adaptive adversaries, synchrony

Strong mathematical framework

Page 21: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview – Main Content

21

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

Semi-adaptive adversaries, synchrony

Strong mathematical framework

Page 22: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview – Main Content

22

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

Page 23: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview – Main Content

23

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

Page 24: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview – Main Content

24

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

= PoS blockchain in the DA setting

without global clocks.

Semi-adaptive adversaries, synchrony

Strong mathematical framework

Page 25: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Tutorial Overview – Additional Features

25

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Ouroboros

Crypsinous(S&P 2019)

An extremely simple BFT protocol that follows

from the Ouroboros Classic analysis

Ouroboros with Privacy

Page 26: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

26

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Page 27: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

The General Picture and Assumed Resources

27

Arbitrary

Strategy

Arbitrary

Strategy

Blockchain

Protocol

Blockchain

Protocol

Blockchain

Protocol

Blockchain

Protocol

Genesis

Block

Clock

Functionality

Random

Oracle

Diffusion

Network

Setup Resources

Page 28: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

The General Picture and Assumed Resources

28

Arbitrary

Strategy

Arbitrary

Strategy

Blockchain

Protocol

Blockchain

Protocol

Blockchain

Protocol

Blockchain

Protocol

Genesis

Block

Clock

Functionality

Random

Oracle

Diffusion

Network

Setup Resources

- Synchrony: Time-stamps, slots

- Unpredictability: Hash-functions

- Communication: Multicast/Broadcast, limited delay Δ

Page 29: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

29

Epoch 1 Epoch 2

Page 30: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

= Public address: verification key vkj of a signature scheme

= A number of coins (tokens) sj associated to vkj

Ouroboros – Protocol Design

30

Epoch 1 Epoch 2

G

Random

seed

+

Page 31: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

31

Epoch 1 Epoch 2

G

Random

seed

+

In each round:

1.) Determine the current longest valid chain.

2.) Determine Slot-Leadership

3.) Slot leader: Pack transactions, create and publish block

Page 32: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

32

Epoch 1 Epoch 2

G

Random

seed

+

In each round:

1.) Determine the current longest valid chain.

2.) Determine Slot-Leadership

3.) Slot leader: Pack transactions, create and publish block

Page 33: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

33

Epoch 1 Epoch 2

G

Random

seed

+

Slot Leadership in Classic: Random process (“Coin Tossing”)

F( , , , seed, slot) →

Page 34: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

34

Epoch 1 Epoch 2

G

Random

seed

+

Slot Leadership in Classic: Random process (“Coin Tossing”)

F( , , , seed, slot) →

For example:

Biased-Coin Toss

Page 35: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

35

Epoch 1 Epoch 2

G

Random

seed

+

Slot Leadership in Classic: Random process (“Coin Tossing”)

F( , , , seed, slot) →

For example:

Biased-Coin Toss

1

6

Page 36: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

36

Epoch 1 Epoch 2

G

Random

seed

+

Slot Leadership in Classic: Random process (“Coin Tossing”)

F( , , , seed, slot) →

For example:

Biased-Coin Toss

1

6

1

3

Page 37: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

37

Epoch 1 Epoch 2

G

Random

seed

+

Slot Leadership in Classic: Random process (“Coin Tossing”)

F( , , , seed, slot) →

For example:

Biased-Coin Toss

1

6

1

31

2

Page 38: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

38

Epoch 1 Epoch 2

G

Random

seed

+

Slot Leadership in Classic: Random process (“Coin Tossing”)

F( , , , seed, slot) →

Simplified model “Semi-adaptive” (will be strengthened later):

- Adversary cannot adaptively react on the (public) slot-leader schedule.

(As an approximation: think of a static corrupted set of parties)

Page 39: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

39

Epoch 1 Epoch 2

G

Random

seed

+

In each round:

1.) Determine the current longest valid chain.

2.) Determine Slot-Leadership

3.) Slot leader: Pack transactions, create and publish block

Page 40: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

40

Epoch 1 Epoch 2

G

Random

seed

+ Block structure:

Hash pointer to prev. block

Content / Transactions

Slot number

Signature of slot leader

Page 41: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

41

Epoch 1 Epoch 2

G

Random

seed

+

In each round:

1.) Determine the current longest valid chain.

2.) Determine Slot-Leadership

3.) Slot leader: Pack transactions, create and publish block

Page 42: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

42

Epoch 1 Epoch 2

G

Random

seed

+

Chain Selection Rule:

Adopt a valid new chain if it is longer and does not

fork by more than k blocks from local chain.

Otherwise, keep local chain.

Simplified model: no newcomers, full participation (will be strengthened later).

Page 43: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

43

Epoch 1 Epoch 2

G

Random

seed

+

Chain Selection Rule:

Adopt a valid new chain if it is longer and does not

fork by more than k blocks from local chain.

Otherwise, keep local chain.

Protection against

long-range attacks

(to be discussed later).

Simplified model: no newcomers, full participation (will be strengthened later).

Page 44: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

44

Epoch 1 Epoch 2

G

Random

seed

+

Pointer to prev. block

Transactions

Slot number

Signature of leader

In each round:

1.) Determine the current longest valid chain.

2.) Determine Slot-Leadership

3.) Slot leader: Pack transactions, create and publish block

Page 45: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

45

Epoch 1 Epoch 2

G

Random

seed

+

Pointer to prev. block

Transactions

Slot number

Signature of leader

Epoch Switch:

1.) New Stake Distribution

2.) New Epoch Seed

Page 46: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

46

Epoch 1 Epoch 2

G

Random

seed

+

Pointer to prev. block

Transactions

Slot number

Signature of leader

Epoch Switch:

1.) New Stake Distribution

→ As reported by transactions

2.) New Epoch Seed

Page 47: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

47

Epoch 1 Epoch 2

G

Random

seed

+

Pointer to prev. block

Transactions

Slot number

Signature of leader

Epoch Switch:

1.) New Stake Distribution

2.) New Epoch SeedA slightly more complex process

Page 48: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

48

Epoch 1 Epoch 2

G

Random

seed

+

Pointer to prev. block

Transactions

Slot number

Signature of leader

Epoch Switch:

1.) New Stake Distribution

2.) New Epoch SeedA slightly more complex process

A secure implementation (MPC) that achieves a

randomness beacon.

- PVSS, messages packed into blocks

Page 49: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design

49

Epoch 1 Epoch 2

G

Random

seed

+

Pointer to prev. block

Transactions

Slot number

Signature of leader

Epoch Switch:

1.) New Stake Distribution

2.) New Epoch SeedA slightly more complex process

Randomness-Beacon Functionality:

- Emits a random value at start of epoch

- Cannot be predicted ahead of time and not

tampered

Page 50: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design Summary

50

Random

seed

+

G

Page 51: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design Summary

51

Random

seed

+

G

Randomness

Beacon

Page 52: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design Summary

52

Random

seed

+

Randomness

Beacon

G

+Random

seed

Note:

Majority of honest stake required

from each new distribution.

Page 53: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design Summary

53

Random

seed

+

G

+Random

seed

Randomness

Beacon

Randomness

Beacon

Page 54: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design Summary

54

Random

seed

+

G

+Random

seed

+Random

seed

Randomness

Beacon

Randomness

Beacon

Page 55: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Protocol Design Summary

55

Random

seed

+

G

+Random

seed

+Random

seed

Randomness

Beacon

Randomness

Beacon

Page 56: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Analysis

56

▪ Analysis of first epoch

▪ Lifting to multiple epochs (inductive argument)

Page 57: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Analysis of First Epoch

57

Epoch 1

G

Random

seed

+

Life is not perfect... and some forks will emerge…

We need a careful analysis!

v

Page 58: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

A General Analytical Approach:

The Forkable String Analysis

58

Slots are assigned a symbol from an alphabet. The symbol signifies

whether honest parties speak, adversaries speak or no-one

speaks.

Page 59: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

A General Analytical Approach:

The Forkable String Analysis

59

Slots are assigned a symbol from an alphabet. The symbol signifies

whether honest parties speak, adversaries speak or no-one

speaks.

Such a string gives rise to a family of admissible graphs that

describe all that can happen in an execution that follows longest

chain:

Page 60: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

A General Analytical Approach:

The Forkable String Analysis

60

Slots are assigned a symbol from an alphabet. The symbol signifies

whether honest parties speak, adversaries speak or no-one

speaks.

Such a string gives rise to a family of admissible graphs that

describe all that can happen in an execution that follows longest

chain:

The analysis reveals that the vast majority of strings (under proper

conditions) have admissible graphs that translate to well behaved

protocol executions.

Page 61: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forks: Abstracting Protocol Executions

61

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if election process would assign no leader)

Page 62: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if election process would assign no leader)

62

Genesis

honest

party

produces

block 1

Forks: Abstracting Protocol Executions

Page 63: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if election process would assign no leader)

63

Genesis

honest

party

produces

block 1

adversary

serves

block 3 to

honest

party

Forks: Abstracting Protocol Executions

Page 64: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

64

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if process would assign no leader)

adversary

serves

block 6 to

honest

party

Forks: Abstracting Protocol Executions

Page 65: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

65

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if process would assign no leader)

adversary serves block 1

to honest party

(Δ=3)

Forks: Abstracting Protocol Executions

Page 66: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

66

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if process would assign no leader)

adversary serves block 1

to honest party

(Δ=3)

Fork with delay Δ=3

Forks: Abstracting Protocol Executions

Page 67: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

67

Characteristic string:

0: Slot belongs to exactly one honest party.

1: Slot belongs to a malicious coalition

: Slot cannot be claimed (e.g. if process would assign no leader)

adversary

serves block 12

to honest party

Forks: Abstracting Protocol Executions

Page 68: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

68

Important Property:

Depth of honest nodes increases (from

left to right) if more than Δ slots apart.

(Lower bound on the depth of the fork)

Forks: Abstracting Protocol Executions

Page 69: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Combinatorics of Characteristic Strings

69

▪ Given a characteristic string can we classify the family of

forks that it permits?

▪ Characteristic string is drawn according to a specific probability

distribution: bias toward 0 (by honest-majority assumption).

▪ Forkable string: those strings that allow a fork with two

tines of length equal to the height of the fork.

Page 70: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Combinatorics of Characteristic Strings

70

▪ Given a characteristic string can we classify the

family of forks that it permits?

▪ Characteristic string is drawn according to a specific

probability distribution.

▪ Forkable string: those strings that allow a fork with

two tines of length equal to the height of the fork.

Focus on this particular structure:

→ Analysis shows that this is a very unlikely structure to occur (as a

function of the length of the sampled string).

→ Note: Also unlikely as a subgraph of any execution, i.e., no

execution has such a bad divergence point (and thus we have CP).

Page 71: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Drawing from Bitcoin analysis

71

5

4

3

2

1

0

-1

-2

-3

-4

-5

At the core of the analysis

lies a 1D Random Walk

( = Probability an honest

party finds a POW)

(Probability the adversary finds a POW)

Difference:

1.) #PoWs of

adversary in

time segment

-

2.) #PoWs of

honest parties

in time segment

“Uniquely successful rounds”

Page 72: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

- A favorable step is downwards.

- Such a step is more likely by assumption .

Drawing from Bitcoin analysis

72

5

4

3

2

1

0

-1

-2

-3

-4

-5

At the core of the analysis

lies a 1D Random Walk

( = Probability an honest

party finds a POW)

(Probability the adversary finds a POW)

“Uniquely successful rounds”

Difference:

1.) #PoWs of

adversary in

time segment

-

2.) #PoWs of

honest parties

in time segment

Page 73: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

from PoW to PoS

73

▪ Winning a slot for the honest parties (even uniquely) does

not necessarily constitute a favorable step in the random

walk.

“Nothing-at-stake”:

The adversary may reuse an opportunity to issue a

block in multiple paths of a fork

Page 74: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

74

(for simplicity we do only the {0,1} case)

For a tine t, the following quantities are of interest to

the adversary:

• gap(t): length difference with leading honest node.

• reserve(t): number of adversarial slots after end of t.

• reach(t) := reserve(t) - gap(t).

Page 75: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

75

For a tine t, the following quantities are of interest to

the adversary:

• gap(t): length difference with leading honest node.

• reserve(t): number of adversarial slots after end of t.

• reach(t) := reserve(t) - gap(t).

gap(t) = 4

Page 76: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

76

For a tine t, the following quantities are of interest to

the adversary:

• gap(t): length difference with leading honest node.

• reserve(t): number of adversarial slots after end of t.

• reach(t) := reserve(t) - gap(t).

reserve(t) = 3

Page 77: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

77

For a tine t, the following quantities are of interest to

the adversary:

• gap(t): length difference with leading honest node.

• reserve(t): number of adversarial slots after end of t.

• reach(t) := reserve(t) - gap(t).

reach(t) = -1

Page 78: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

78

For a tine t, the following quantities are of interest to

the adversary:

• gap(t): length difference with leading honest node.

• reserve(t): number of adversarial slots after end of t.

• reach(t) := reserve(t) - gap(t).

reach(t) = -1

Can the adversary catch up with

“longest chain” with this tine?

Page 79: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

79

Looking at a fork F in general, we are interested in:

• reach(F): max reach(t)

• margin(F): second highest & disjoint reach(t’)

reach(t) = -1

reach(t') = -1

reach(ṫ) = 0t’

Page 80: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

80

Looking at a fork F in general, we are interested in:

• reach(F): max reach(t)

• margin(F): second highest & disjoint reach(t’)

reach(t) = -1

reach(t') = -1

reach(ṫ) = 0t’

reach(F) = 0

margin(F) = -1

Page 81: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Forkable Strings

81

Looking at a fork F in general, we are interested in:

• reach(F): max reach(t)

• margin(F): second highest & disjoint reach(t’)

reach(t) = -1

reach(t') = -1

reach(ṫ) = 0t’

reach(F) = 0

margin(F) = -1

If second highest allows to catch up with

longest: margin non-negative.

Page 82: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Define:

• Fact: is forkable (adversary wins) iff ≥ 0.

• We want to prove that the density of forkable strings among all strings is

tiny (assuming Hamming weight is below 1/2).

• We consider a 2D random walk defined by the pair where is

a binomial random variable.

Reach & Margin

82

𝜌(w) = maxF reach(F)𝜇(w) = maxF margin(F)

w

(𝜌(w), 𝜇(w)) w

𝜇(w)

Page 83: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Recursive Formula for

Reach & Margin

83

Page 84: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Recursive Formula for

Reach & Margin

84

reach and

margin

decrement

Page 85: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Recursive Formula for

Reach & Margin

85

reach never

drops below 0

reach and

margin

decrement

Page 86: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Recursive Formula for

Reach & Margin

86

it is possible for the

adversary to

compensate for the

margin, by

sacrificing reach

reach never

drops below 0

reach and

margin

decrement

Page 87: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

87

reach

probability

an honest

party wins a slot

probability

the adversary

wins a slot

2D Random Walkmargin

Page 88: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

88

reach

probability

an honest

party wins a slot

probability

the adversary

wins a slot

2D Random Walkmargin

Page 89: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

89

reach

probability

an honest

party wins a slot

probability

the adversary

wins a slot

2D Random Walkmargin

Page 90: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

90

reach

probability

an honest

party wins a slot

probability

the adversary

wins a slot

2D Random Walkmargin

Page 91: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

91

reach

probability

an honest

party wins a slot

probability

the adversary

wins a slot

2D Random Walkmargin

Page 92: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

92

Analysis

Analysis shows:

Page 93: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

93

Analysis

Analysis shows:

𝑅(𝑡), 𝑀(𝑡):

Reach resp. margin after 𝑡 𝑛 steps

of the random walk

(“coarse grained steps of the walk”).

Page 94: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

94

Analysis

Analysis shows:

Page 95: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

95

Analysis

Analysis shows:

Page 96: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

96

Analysis

Analysis shows:

Page 97: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

97

Analysis

Analysis shows:

An improved analysis shows an error

bound of

“The Combinatorics of the Longest-Chain Rule:

Linear Consistency for Proof-of-Stake Blockchains”

by Erica Blum and Aggelos Kiayias and Cristopher Moore

and Saad Quader and Alexander Russell.

Page 98: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

98

Analysis

Analysis shows:

Conclusion:

- Characteristic string not forkable (w.h.p.)

→ No long diverging paths

- Common prefix achieved (w.h.p.)

Page 99: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Also: Chain Growth & Quality

99

Chain Quality: any sufficiently long section along a (viable) tine

must contain an honest node with overwhelming probability.

(→ Otherwise, #0’s < #1’s)

Chain Growth: The #0’s support growth and by the above, the

growth is reflected in any viable tine (with a small discount).

Page 100: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Also: Chain Growth & Quality

100

Chain Quality: any sufficiently long section along a (viable) tine

must contain an honest node with overwhelming probability.

(→ Otherwise, #0’s < #1’s)

Chain Growth: The #0’s support growth and by the above, the

growth is reflected in any viable tine (with a small discount). Viable tines: Correspond to chains that

are long enough to be adopted by an

honest party at a given time.

Page 101: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Lifting To Multiple Epochs

101

Page 102: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Lifting To Multiple Epochs

102

Random

seed

+

G

Randomness

Beacon

Page 103: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Lifting To Multiple Epochs

103

Random

seed

+

G

Randomness

Beacon

Properties CP, CG, CQ

Page 104: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Lifting To Multiple Epochs

104

Random

seed

+

G

Randomness

Beacon

- CG+CQ: All honest parties report

a green block.

- CP: Agreement on green block.

Page 105: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Lifting To Multiple Epochs

105

Random

seed

+

G

Randomness

Beacon

- CG+CQ: All honest parties report

a green block.

- CP: Agreement on green block.

Epoch Randomness:

Has to be released after fixing the

stake distribution.

Random

seed

+

Page 106: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Lifting To Multiple Epochs

106

G

“Smooth Epoch Boundaries”

Distribution of entire characteristic string is uniquely

defined for this execution and dominated by a binomial

distribution favoring 0’s over 1’s (as before).

Page 107: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Incentives

107

How to make honest parties participate?

• Costs • Such as verifying transactions, packaging them in the right order.

• Rewards• Such as collecting fees.

Problem: Pure chain quality underrepresents the honest

parties’ effort: Effort in maintaining the inputs is not rewarded

proportionally.

Page 108: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Incentives

108

How to make honest parties participate?

• Costs • Such as verifying transactions, packaging them in the right order.

• Rewards• Such as collecting fees.

Problem: Pure chain quality underrepresents the honest

parties. Effort in maintaining the inputs is not rewarded

proportionally.

Key Idea:Main effort is related to input contribution → Declare it to be

a separate task.

Page 109: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Incentives

109

Solution: Input Endorsers

• Each slot elects an additional stakeholder (or a set of stakeholders)

to contribute inputs.• Using a parallel lottery.

• Like the 2-for-1 mechanism in PoW as in GKL analysis or Fruitchains.

• Endorsed inputs are permitted in the blockchain any time within a small

window following and inclusive the slot that elects them.

Outer Block

Input Block

Input Block

Page 110: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Incentives

110

Solution: Input Endorsers

• Each slot elects an additional stakeholder (or a set of stakeholders)

to contribute inputs.• Using a parallel lottery.

• Like the 2-for-1 mechanism in PoW as in GKL analysis or Fruitchains.

• Endorsed inputs are permitted in the blockchain any time within a small

window following and inclusive the slot that elects them.

→ Protocol becomes a Nash equilibrium for an appropriate reward

function (that rewards input blocks in an aggregate fashion over a

sequence of blocks).

→ Overall #Input blocks

proportional to stake.

Outer Block

Input Block

Input Block

Page 111: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros BFT

111

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Ouroboros

Crypsinous(S&P 2019)

An extremely simple BFT protocol that follows

from the Ouroboros Classic analysis

Ouroboros with Privacy

Page 112: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros BFT

112

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Ouroboros

Crypsinous(S&P 2019)

An extremely simple BFT protocol that follows

from the Ouroboros Classic analysis

Ouroboros with Privacy

Central Observation:A characteristic string (assume binary) with Hamming-

weight less than 1/3 is not forkable.

Page 113: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Praos & Genesis

113

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Page 114: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Praos & Genesis

114

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Stronger cryptographic primitives needed:

- To enable private lottery

- To fully mitigate adaptive corruptions

Page 115: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Praos & Genesis

115

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Newcomers should be able to join the

system without the extra help of existing

parties.

Page 116: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Praos & Genesis

116

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Genesis Security Proof

Page 117: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Cryptographic Tools to Protect against Adaptive

Adversaries

117

Page 118: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Cryptographic Tools to Protect against Adaptive

Adversaries

118

Verifiable random functions (VRF) – with unpredictability under

malicious key generation.

→ Output appears pseudo-random (for a new input)

→ Input and output are verifiably tied together

→ Output cannot be biased by crafting strange keys

→ Purpose: Allow private leader-election and thereby

a more realistic attacker model (mitigate adaptive attacks).

(𝑉𝑅𝐹. 𝐺𝑒𝑛, 𝑉𝑅𝐹. 𝐸𝑣𝑎𝑙, 𝑉𝑅𝐹. 𝑉𝑒𝑟𝑖𝑓𝑦)

Page 119: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Cryptographic Tools to Protect against Adaptive

Adversaries

119

Key evolving signature scheme (KES)

→ Operates as normal signature scheme (unforgeable)

→ Key updates: All values signed “in the past” remain

unforgeable even if party gets corrupted after the update.

→ Purpose: Protect previous actions and thereby allow

realistic corruption model (tolerate “immediate corruptions”).

(𝐾𝐸𝑆. 𝐺𝑒𝑛, 𝐾𝐸𝑆. 𝑆𝑖𝑔𝑛, 𝐾𝐸𝑆. 𝑈𝑝𝑑𝑎𝑡𝑒, 𝐾𝐸𝑆. 𝑉𝑒𝑟𝑖𝑓𝑦)

Page 120: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros Praos/Genesis: Basic Operation

120

Epoch - 2 Epoch - 1 Current epoch

Page 121: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

121

Epoch - 2 Epoch - 1 Current epoch

- In each slot, each party evaluates slot-leadership.Private election, proportional to stake, including recent randomness from the chain

- A slot leader extends a chain by creating the block for this slot.

Ouroboros Praos/Genesis: Basic Operation

Page 122: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

122

Epoch - 2 Current epochEpoch - 1

Ouroboros Praos/Genesis: Basic Operation

Page 123: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

123

Epoch - 2 Current epochEpoch - 1

Ouroboros Praos/Genesis: Basic Operation

Page 124: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

124

1) Agreement on stake distributionCurrent epochEpoch - 2

Ouroboros Praos/Genesis: Basic Operation

Page 125: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros Praos/Genesis: Basic Operation

125

Current epoch1) Agreement on stake distribution.

2) Agreement on randomness.

3) Randomness affected by honest block(s)

Epoch - 2

𝑉𝑅𝐹. 𝐸𝑣𝑎𝑙𝑠𝑘𝑖 "NONCE", 𝑝𝑟𝑒𝑣𝑖𝑜𝑢𝑠 𝑠𝑒𝑒𝑑, 𝑠𝑙𝑜𝑡

Simple Randomness-Beacon Implementation:

Current seed := Hash of verifiably random values

from the chain.

Page 126: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros Praos/Genesis: Basic Operation

126

Current epoch1) Agreement on stake distribution.

2) Agreement on randomness.

3) Randomness affected by honest block(s)

Epoch - 2

Lottery in each slot:

A party i is leader if and only if

- Empty slots possible

- Multiple leaders possible

- Leadership proof from VRF.

𝑉𝑅𝐹. 𝐸𝑣𝑎𝑙𝑠𝑘𝑖 "TEST", 𝒔𝒆𝒆𝒅, 𝑠𝑙𝑜𝑡 < 𝑇(𝑠𝑡𝑎𝑘𝑒𝑖)

Page 127: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros Praos/Genesis:

Details on Leader Election

127

𝑉𝑅𝐹. 𝐸𝑣𝑎𝑙𝑠𝑘𝑖 "TEST", 𝒔𝒆𝒆𝒅, 𝑠𝑙𝑜𝑡 < 𝑇(𝑠𝑡𝑎𝑘𝑒𝑖)

𝑇 𝑠𝑡𝑎𝑘𝑒𝑖 = 2ℓ𝑉𝑅𝐹 𝜑𝑓(𝑟𝑒𝑙. 𝑠𝑡𝑎𝑘𝑒𝑖)

𝜑𝑓 𝑥 = 1 − (1 − 𝑓)𝑥

Page 128: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros Praos/Genesis:

Details on Leader Election

128

𝑉𝑅𝐹. 𝐸𝑣𝑎𝑙𝑠𝑘𝑖 "TEST", 𝒔𝒆𝒆𝒅, 𝑠𝑙𝑜𝑡 < 𝑇(𝑠𝑡𝑎𝑘𝑒𝑖)

𝜑𝑓 𝑥 = 1 − (1 − 𝑓)𝑥

Some remarks:

1.) Active slot coefficient: ; slot empty with prob. .

2.) Independent aggregation property:

→ Probability of leadership independent of distribution to addresses.

→ The concave (and subadditive as ) property eases the analysis.

𝜑𝑓 1 = 𝑓 1 − 𝑓

1 − 𝜑𝑓

𝑖

𝑥𝑖 =ෑ

𝑖

(1 − 𝜑𝑓 𝑥𝑖 )

𝜑𝑓 0 = 0

𝑇 𝑠𝑡𝑎𝑘𝑒𝑖 = 2ℓ𝑉𝑅𝐹 𝜑𝑓(𝑟𝑒𝑙. 𝑠𝑡𝑎𝑘𝑒𝑖)

Page 129: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Recall: Chain-Selection Rule

129

G Local

Page 130: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

130

1

LocalG

Recall: Chain-Selection Rule

Page 131: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

131

1

LocalG

Recall: Chain-Selection Rule

Page 132: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

132

2

1

LocalG

Recall: Chain-Selection Rule

Page 133: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Attention: Longest Chain Rule Does not Work

133

Local

Family of long-range attacks

(e.g., stake-bleeding [GKR18])

2

LocalG

Page 134: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Recall: Chain-Selection Rule

134

2

1

LocalG

Chain Selection Rule [e.g., DGKR18] :

Adopt a valid new chain…

1) …if it is longer and does not fork by

more than k blocks from local chain.

Otherwise, keep local chain.

Page 135: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

At first sight…

135

… it seems one would require one of the following:

1.) Online parties maintain a moving checkpoint→ Joining parties need advice.

2.) A fixed and known lower bound on participation→ No flexible participation, protocol might be stalled.

Page 136: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Praos & Genesis

136

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Page 137: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

… it seems one would require one of the following:

1.) Online parties maintain a moving checkpoint→ Joining parties need advice.

2.) A fixed and known lower bound on participation→ No flexible participation, protocol might be stalled.

The Genesis Chain-Selection Rule

137

We do not require either of these!

Thanks to a more involved Chain-Selection Rule

Page 138: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

138

The Genesis Chain-Selection Rule

Page 139: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

139

G

Now

The Genesis Chain-Selection Rule

Page 140: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

140

INT(Protocol parameter: size of INT)

Now

Time-Interval after fork

G

The Genesis Chain-Selection Rule

Page 141: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

The Genesis Chain-Selection Rule

141

NowINT

Time-Interval after fork

G

Genesis Rule:

Adopt a valid new chain…

1) …if it is longer and does not fork by

more than k blocks from local chain.

2) … or if it forks by more than k blocks

but has higher block density on interval INT.

Otherwise, keep local chain.

Page 142: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Praos & Genesis

142

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Genesis Security Proof

Page 143: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Roadmap of Security Proof of Genesis

▪ Security of Ouroboros Genesis with the old chain

selection rule (=Praos) and dynamic participation

but no newly joining parties.

▪ Security for joining parties: new Genesis rule in

action.

143

Page 144: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

▪ Security of Ouroboros Genesis with the old chain

selection rule (=Praos) and dynamic participation

but no newly joining parties.

▪ Security for joining parties: new Genesis rule in

action.

144

Roadmap of Security Proof of Genesis

Page 145: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

145

0 ꓕ 0 ꓕ ꓕ 1 0 1 ꓕ ꓕ 0 1 0

Security under dynamic Participation

▪ Recall the Fork abstraction:

0

5 7

7

2

9

10 11

10

6

5

Page 146: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

146

0

5 7

7

2

9

10 11

10

6

5A substantial CP-violation (divergence)

occurs only with negligible probability if:

Majority of active stake is honest.

0 ꓕ 0 ꓕ ꓕ 1 0 1 ꓕ ꓕ 0 1 0

Security under dynamic Participation

▪ Recall the Fork abstraction:

Page 147: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

147

0

5 7

7

2

9

10 11

10

6

5A substantial CP-violation (divergence)

occurs only with negligible probability if:

0 ꓕ 0 ꓕ ꓕ 1 0 1 ꓕ ꓕ 0 1 0

Security under dynamic Participation

▪ Recall the Fork abstraction:

Page 148: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

148

• Dynamic Participation: Dependent variables, biased lottery in

favor of honest parties → Martingales

• We show Common Prefix, Chain Growth, Chain Quality

• Realizes the ledger (composable analysis)

Security under dynamic Participation

Page 149: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

▪ Security of Ouroboros Genesis with the old chain

selection rule (=Praos) and dynamic participation

but no newly joining parties.

▪ Security for joining parties: new Genesis rule in

action.

149

Roadmap of Security Proof of Genesis

Page 150: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

150

If a party is always up-to-date and using the Genesis chain-

selection rule, she will never adopt a chain that forks by more

than k blocks (compared to her local chain in any round).

Using the Genesis chain-selection rule, a newly joining party

will adopt a recent chain with large common prefix w.r.t. honest

parties. No other advice than the genesis block is needed.

Claim 1:

Claim 2:

Security of the Genesis Rule

Page 151: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

151

If a party is always up-to-date and using the Genesis chain-

selection rule, she will never adopt a chain that forks by more

than k blocks (compared to her local chain in any round).

Using the Genesis chain-selection rule, a newly joining party

will adopt a recent chain with large common prefix w.r.t. honest

parties. No other advice than the genesis block is needed.

Claim 1:

Claim 2:

Security of the Genesis Rule

Page 152: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Claim 1 – Proof Idea

152

NowInterval INT

Page 153: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Claim 1 – Proof Idea

153

NowInterval INT

Page 154: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Claim 1 – Proof Idea

154

NowInterval INT First honest

slot after INT

Page 155: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

155

NowInterval INT

A substantial divergence! Hence, situation does not occur.

Claim 1 – Proof Idea

Covered by previous “Praos” analysis.

Page 156: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

156

If a party is always up-to-date and using the Genesis chain-

selection rule, she will never adopt a chain that forks by more

than k blocks (compared to her local chain in any round).

Using the Genesis chain-selection rule, a newly joining party

will adopt a recent chain with large common prefix w.r.t. honest

parties. No other advice than the genesis block is needed.

Claim 1:

Claim 2:

Security of the Genesis Rule

Page 157: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

157

t0

First newly joining party

Claim 2 – Proof Idea

Page 158: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

158

t0

Claim 2 – Proof Idea

First newly joining party

Page 159: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

159

t0

If decides to adopt

a “good” chain C, then

so does

Claim 2 – Proof Idea

Page 160: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

160

t0

Claim 2 – Proof Idea

CG

Page 161: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

161

t0

Claim 2 – Proof Idea

C

C’

G

Page 162: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

162

t0

Claim 2 – Proof Idea

C

C’

A substantial divergence does not occur.

Covered by previous analysis of

new chain-selection rule

G

Page 163: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Privacy in Ouroboros: Crypsinous

163

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Ouroboros

Crypsinous(S&P 2019)

Genesis with Privacy

Page 164: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Privacy in Ouroboros: Crypsinous

164

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Ouroboros

Crypsinous(S&P 2019)

Problem Summary:

Public verifiability of leader schedule

vs.

Hide amount of stake possessed

Genesis with Privacy

Page 165: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Privacy in Ouroboros: Crypsinous

165

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Ouroboros

Crypsinous(S&P 2019)

Genesis with Privacy

- Zero-knowledge proof systems

- SNARKs

Page 166: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros: Real-World Implementations

166

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

Ouroboros BFT

Cardano is running on Ouroboros PoS and

other companies are implementing versions

of it.

Page 167: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Ouroboros – Chronos

167

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Page 168: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

168

So far: Dependency on a Good Timing Service

Time axis:

Clock Functionality

Page 169: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

169

So far: Dependency on a Good Timing Service

Time axis:

Slot Axis:

Page 170: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

170

So far: Dependency on a Good Timing Service

Time axis:

Slot Axis:

s

s

s

NOW

Page 171: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

171

So far: Dependency on a Good Timing Service

Time axis:

Slot Axis:

s

s

Recall Lottery (Nakamoto-Style Consensus):

- A party I is leader if and only if

- All have the same idea of future and past

- Example: “future chains are rejected - because bad anyway”.

𝑉𝑅𝐹𝑠𝑘𝑖 TEST, 𝑠𝑒𝑒𝑑, 𝒔𝒍𝒐𝒕 < 𝑇(𝑠𝑡𝑎𝑘𝑒𝑖)

Page 172: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

So far: Dependency on a Good Timing Service

172

Time axis:

Clock Functionality

Strong Assumption:- Perfect time coordination for everyone,

including newly joining parties.

- Needs another protocol eventually, e.g. NTP.

Page 173: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

173

Better: Same-Speed Assumption

Time axis:

Slot Axis: …

s

s+2

s-1

Page 174: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

174

Time axis:

Slot Axis:

s

Coping with Imperfect Coordination

NOW

s+2

s-1

Page 175: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

175

Genesis: Situation not that bad…

If we manage to keep all honest parties somewhat

close we’re kind of good.

Page 176: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

176

Genesis: Situation not that bad…

If we manage to keep all honest parties somewhat

close we’re kind of good.

• Close together: Honest parties’ timestamps are never

more than Δ apart (order of network delay).

• Small adjustments needed to Ouroboros Genesis to

deal with future chains

Page 177: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

177

Genesis: Situation not that bad…

If we manage to keep all honest parties somewhat

close we’re kind of good.

• Close together: Honest parties’ timestamps are never

more than Δ apart (order of network delay).

• Small adjustments needed to Ouroboros Genesis to

deal with future chains.

→ Same-speed: Initial parties do stay close.

→ Joining parties have a harder life…

Page 178: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

178

Genesis: Situation not that bad…

Page 179: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

179

Genesis: Situation not that bad…Joining party:

Page 180: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

180

Genesis: Situation not that bad…Joining party:

Genesis chain selection rule:

- Good prefix is the densest prefix

- Genesis rule prefers densest prefix

Page 181: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

181

Genesis: Situation not that bad…Joining party:

No reliable local time:

- No cut-off possible

- No reliable ledger state

Genesis chain selection rule:

- Good prefix is the densest prefix

- Genesis rule prefers densest prefix

Page 182: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

182

The Synchronization Problem

• Joining parties: Need to bootstrap a good timestamp• Only source of information: network traffic and genesis block.

• Good: Within the Δ-interval of existing honest parties.

• From before: Good timestamp → Good state.

• Bootstrapping under the same assumptions.• Same-speed, honest majority, diffusion network, RO

• The dynamic availability setting (similar to the Bitcoin setting for

fixed difficulty).

Page 183: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

183

The Synchronization Problem

This is what Chronos achieves

• Joining parties: Need to bootstrap a good timestamp• Only source of information: network traffic and genesis block.

• Good: Within the Δ-interval of existing honest parties.

• From before: Good timestamp → Good state.

• Bootstrapping under the same assumptions.• Same-speed, honest majority, diffusion network, RO

• The dynamic availability setting (similar to the Bitcoin setting for

fixed difficulty).

Page 184: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

184

Chronos Overview

Page 185: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

185

Chronos Overview

- Alert parties: broadcast time-beacons and leave

evidence of beacons in the blockchain.

Page 186: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

186

Chronos Overview

- Alert parties: broadcast time-beacons and leave

evidence of beacons in the blockchain.

- They perform local-clock adjustments based on the

evidence in the chain.- Small adjustments to local clocks at the end of an epoch

- Based on the evidence left in the chain.

Page 187: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

187

Chronos Overview

- Alert parties: broadcast time-beacons and leave

evidence of beacons in the blockchain.

- They perform local-clock adjustments based on the

evidence in the chain.- Small adjustments to local clocks at the end of an epoch

- Based on the evidence left in the chain.

- Joining parties: Once hooked up on a prefix of the

densest chain, record beacons and retrace the evidence.- Perform the very same clock adjustments to compute a good timestamp

Page 188: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

188

Chronos Overview

- Alert parties: broadcast time-beacons and leave

evidence of beacons in the blockchain.

- They perform local-clock adjustments based on the

evidence in the chain.- Small adjustments to local clocks at the end of an epoch

- Based on the evidence left in the chain.

- Joining parties: Once hooked up on a prefix of the

densest chain, record beacons and retrace the evidence.- Perform the very same clock adjustments to compute a good timestamp

Page 189: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

189

Chronos – Sync-Beacons

Epoch E

Additional “Timing Lottery” in the first part of the epoch:

- IF THEN

- Broadcast Sync-Beacon:

- Normal slot leaders pack transactions + beacons.

𝑽𝑹𝑭𝒔𝒌𝒊 "SYNC", 𝒔𝒆𝒆𝒅, 𝒔𝒍𝒐𝒕 < 𝑻(𝒔𝒕𝒂𝒌𝒆𝒊)

BeaconVRF

Proof

slot

Page 190: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

192

Chronos Overview

- Alert parties: broadcast time-beacons and leave

evidence of beacons in the blockchain.

- They perform local-clock adjustments based on the

evidence in the chain.- Small adjustments to local clocks at the end of an epoch

- Based on the evidence left in the chain.

- Joining parties: Once hooked up on a prefix of the

densest chain, record beacons and retrace the evidence.- Perform the very same clock adjustments to compute a good timestamp

Page 191: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

193

Chronos: Synchronization Procedure

- Throughout the epochs: Alice records the arrival times of

valid beacons (filter out duplicates, invalid ones etc.)

- At the end of each epoch: Compute local clock-adjustment.

B B

BB

Page 192: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Chronos: Synchronization Procedure

- Throughout the epochs: Alice records the arrival times of

valid beacons (filter out duplicates, invalid ones etc.)

- At the end of each epoch: Compute local clock-adjustment.

B B

BB

- At the end of epoch: for each recorded beacon, do:

- RECOM := slot – ARRIVALTIMEBeacon

VRF

Proof

slot

BeaconVRF

Proof

slot

194

Page 193: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Adjustment rule:

- At the end of epoch: add the median of recommendations to local

time:

Chronos: Synchronization Procedure

B:sl

B B

BB

RECOMB:

slRECOM

B:sl

RECOMB:

slRECOM

B:sl

RECOM

195

Page 194: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Example

slbob=T-y

T

Beacon

sl

sl := T-x

slalice=T-z

196

Page 195: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

T T + δ’T + δ

Example

slbob=T-y

Beacon

sl

sl := T-x

slalice=T-z

197

Page 196: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

(T-z + r) + (T-x) - (T-z + δ)

= r + (T-x) - δ

T T + δ’T + δ T + r

Example

slbob=T-y

Beacon

sl

sl := T-x

slalice=T-z

198

Page 197: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

r’ + (T-x) - δ

T + δ’T + δ T + r T + r’

r’ + (T-x) – δ’

T

Example

slbob=T-y

Beacon

sl

sl := T-x

slalice=T-z

199

Page 198: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

T-y

T T + δ’T + δ T + r T + r’

Properties of the Synchronization Procedure

T-y

Beacon

Sl

sl := T-x

T-z

r’ + (T-x) – δ’

r’ + (T-x) - δ

Local Clocks are Δ-close!(because |δ’- δ| ≤ Δ)

200

Page 199: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

B:sl

RECOMB:

slRECOM

B:sl

RECOMB:

slRECOM

B:sl

RECOM

Furthermore, by honest-majority assumption:

→ Median, i.e., adjustment is bounded.

Properties of the Synchronization Procedure

201

Page 200: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

202

Chronos Overview

- Alert parties: broadcast time-beacons and leave

evidence of beacons in the blockchain.

- They perform local-clock adjustments based on the

evidence in the chain.- Small adjustments to local clocks at the end of an epoch

- Based on the evidence left in the chain.

- Joining parties: Once hooked up on a prefix of the

densest chain, record beacons and retrace the evidence.- Perform the very same clock adjustments to compute a good timestamp

Page 201: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

203

Chronos: Joining Procedure

Page 202: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

204

Chronos: Joining Procedure

Page 203: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

205

Chronos: Joining Procedure

Page 204: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

206

Chronos: Joining Procedure

- Densest chain wins, good prefix.

Page 205: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

207

Chronos: Joining Procedure

Page 206: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

208

Chronos: Joining Procedure

B:sl

RECOM B:sl

RECOM

B:sl

RECOM

B:sl

RECOM

Page 207: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

209

Chronos: Joining Procedure

B:sl

RECOM B:sl

RECOM

B:sl

RECOM

B:sl

RECOM

B B

Page 208: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Required Beacon Properties:

- Fresh information: Only generated after

becoming online.

- Validated and filtered w.r.t. fresh lottery.

- Contained in common prefix.

210

Chronos: Joining Procedure

B:sl

RECOM B:sl

RECOM

B:sl

RECOM

B:sl

RECOM

B B

Page 209: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

211

Chronos - Summary

B B

BB

B B

BB

- Bootstrapping the local clock is possible thanks to- Agreement on evidence

- Freshness of beacons: reasoning as before to get Δ-close

- Clock adjustments of alert parties can be retraced- Stop when computed timestamp is before the next sync-slot.

- Good time-stamp → Good blockchain- Cut-off future blocks and the genesis rule guarantees the rest.

Page 210: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

212

B B

BB

B B

BB

Chronos - Summary

- Bootstrapping the local clock is possible thanks to- Agreement on evidence

- Freshness of beacons: reasoning as before to get Δ-close

- Clock adjustments of alert parties can be retraced- Stop when computed timestamp is before the next sync-slot.

- Good time-stamp → Good blockchain- Cut-off future blocks and the genesis rule guarantees the rest.

Page 211: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

213

B B

BB

B B

BB

- Bootstrapping the local clock is possible thanks to:- Agreement on evidence

- Freshness of beacons: reasoning as before to get Δ-close

- Clock adjustments of alert parties can be retraced - Stop when computed timestamp is before the next sync-slot.

- Good time-stamp → Good blockchain- Cut-off future blocks and the genesis rule guarantees the rest.

Chronos - Summary

Page 212: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Playing With Ouroboros

214

ouroboros.iohk.io

Check out the interactive Ouroboros animation:

Page 213: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

End of the Tutorial – Thank you!

215

Ouroboros

“Classic”(Crypto 17)

Ouroboros

Praos(Eurocrypt 2018)

Ouroboros

Genesis(CCS 2018)

Ouroboros

Chronos(In submission, 2019)

+ Adaptive Adversaries

+ Network Delay (“semi-synchronous”)

+ Full dynamic availability

+ Bootstrapping from Genesis

+ Only based on same-speed assumption.

+ Bootstrapping state and time from genesis

Semi-adaptive adversaries, synchrony

Strong mathematical framework

= PoS blockchain in the DA setting

without global clocks.

Page 214: Tutorial: The Ouroboros Protocol Family - AFT 2020 · Ouroboros –Protocol Design 26 Ouroboros “Classic” (Crypto 17) Ouroboros Praos (Eurocrypt 2018) Ouroboros Genesis (CCS 2018)

Email: [email protected]

References:

Classic: A. Kiayias, A. Russell, B. David, R. Oliynikov: Ouroboros: A Provably Secure Proof-of-

Stake Blockchain Protocol. Crypto 2017

Praos: B. David, P. Gaži, A. Kiayias, A. Russell. Ouroboros Praos: An adaptively-secure,

semi-synchronous proof-of-stake protocol. Eurocrypt 2018.

Genesis: C. Badertscher, P. Gaži, A. Kiayias, A. Russell, V. Zikas. Ouroboros Genesis:

Composable Proof-of-Stake Blockchains with Dynamic Availability. CCS 18.

Chronos: C. Badertscher, P. Gaži, A. Kiayias, A. Russell, V. Zikas. Ouroboros Chronos:

Permissionless Clock-Synchronization via Proof-of-Stake. ia.cr/2019/838

Crypsinous: T. Kerber, A. Kiayias, M. Kohlweiss, V. Zikas: Ouroboros Crypsinous:

Privacy-Preserving Proof-of-Stake. IEEE S&P 2019.

O-BFT: A. Kiayias, A. Russell: Ouroboros-BFT: A Simple Byzantine Fault Tolerant Consensus

Protocol. ia.cr/2018/1049

--------------------------------------------------------------------------------------------------------------------------------------------------

[BMTZ17]: C. Badertscher, U. Maurer, D. Tschudi, V. Zikas. Bitcoin as a Transaction Ledger: A

Composable Treatment. Crypto 17.

[GKR18]: P. Gaži, A. Kiayias, A. Russell. Stake-Bleeding Attacks on Proof-of-Stake Blockchains.

Crypto Valley Conference 2018.

GKL Analysis: J. Garay, A. Kiayias, N. Leonardos: The Bitcoin Backbone Protocol: Analysis and Applications. Eurocrypt 2015.

PSs Analysis: R. Pass, L. Seeman, A. Shelat: Analysis of the Blockchain Protocol in Asynchronous Networks. Eurocrypt 2016.

Fruitchain: R. Pass, E. Shi: Fruitchains: A Fair Blockchain. PODC 2017

Images: https://openclipart.org/

Contact information and credits

216