Federated Byzantine Quorum Systems lvaro Garca-Prez and Alexey - - PowerPoint PPT Presentation

federated byzantine
SMART_READER_LITE
LIVE PREVIEW

Federated Byzantine Quorum Systems lvaro Garca-Prez and Alexey - - PowerPoint PPT Presentation

Federated Byzantine Quorum Systems lvaro Garca-Prez and Alexey Gotsman IMDEA Software Institute Blockchains Append-only, distributed ledger. Uses a Byzantine fault-tolerant (BFT) consensus algorithm to ensure that distributed nodes


slide-1
SLIDE 1

Federated Byzantine Quorum Systems

Álvaro García-Pérez and Alexey Gotsman IMDEA Software Institute

slide-2
SLIDE 2

Blockchains

 Append-only, distributed ledger.  Uses a Byzantine fault-tolerant (BFT) consensus algorithm to ensure that distributed nodes agree on the next block to append.

header hash transaction

...

header hash transaction header transaction

slide-3
SLIDE 3

Permissioned and permissionless blockchains

 Permissioned blockchains assume a fixed set of participants:

 classic consensus algorithms, decisions rely on a quorum, I.e., 3f+1.

 Permissionless blockchains have open membership:

 often rely on proof-of-work, high energy consumption.

slide-4
SLIDE 4

Flexible trust

 Combines quorum systems with decentralisation:

 The set of participants is fixed, the choice of trust is not.

slide-5
SLIDE 5

Flexible trust

 Combines quorum systems with decentralisation:

 The set of participants is fixed, the choice of trust is not.

 Classic quorum systems:

 Dissemination quorum systems (DQS) [Malkhi and Reiter, 1998].  Allow to choose a tailor-made quorum system.

 Stellar's federated systems [Mazières, 2016]:

 Federated Byzantine quorum systems (FBQS) [Mazières, 2016].  Each participant decides who to trust, and participants may not know the whole system.

slide-6
SLIDE 6

Broadcast and quorum systems

classic quorum systems Stellar'sfederated systems

slide-7
SLIDE 7

Broadcast and quorum systems

Dissemination quorum systems [Malkhi and Reiter, 1998] Bracha broadcast [Bracha, 1987] classic quorum systems Stellar'sfederated systems

slide-8
SLIDE 8

Broadcast and quorum systems

Bracha broadcast [Bracha, 1987] Reliable Byzantine broadcast abstraction classic quorum systems Stellar'sfederated systems Dissemination quorum systems [Malkhi and Reiter, 1998]

slide-9
SLIDE 9

Broadcast and quorum systems

Federated Byzantine quorum systems [Mazières, 2016] Bracha broadcast [Bracha, 1987] Stellar broadcast [Mazières,2016] Reliable Byzantine broadcast abstraction classic quorum systems Stellar'sfederated systems Dissemination quorum systems [Malkhi and Reiter, 1998]

slide-10
SLIDE 10

Our contribution

Federated Byzantine quorum systems [Mazières, 2016] Bracha broadcast [Bracha, 1987] Stellar broadcast [Mazières,2016] Reliable Byzantine broadcast abstraction classic quorum systems Stellar'sfederated systems

Weakly reliable Byzantine broadcast abstraction Dissemination quorum systems [Malkhi and Reiter, 1998]

slide-11
SLIDE 11

Dissemination Quroum System (DQS)

slide-12
SLIDE 12

1 3 2 4

DQS

U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ 𝕎 = {1,2,3,4} B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

𝕎

2

𝕎

2

slide-13
SLIDE 13

1 3 2 4

DQS

U1 𝕎 = {1,2,3,4} U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

𝕎

2

𝕎

2

slide-14
SLIDE 14

1 3 2 4

DQS

U1 U2 𝕎 = {1,2,3,4} U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

𝕎

2

𝕎

2

slide-15
SLIDE 15

1 3 2 4

DQS

U2 U3 𝕎 = {1,2,3,4} U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

𝕎

2

𝕎

2

slide-16
SLIDE 16

1 3 2 4

DQS

U4 U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ 𝕎 = {1,2,3,4}

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

𝕎

2

𝕎

2

slide-17
SLIDE 17

1 3 2 4

DQS

U4 U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ 𝕎 = {1,2,3,4}

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

𝕎

2

𝕎

2

slide-18
SLIDE 18

1 3 2 4

DQS

U4 U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ 𝕎 = {1,2,3,4}

 (Consistency)The intersection of any two quorums U and U' in ℚ cannot lie within any element B of 𝔺.  (Availability)For any element Bof 𝔺 there exists some quorum U in ℚ that has empty intersection with B.

B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 (ℚ : 2 , 𝔺 : 2 )

𝕎

2

𝕎

2

slide-19
SLIDE 19

DQS and threshold models

 DQS generalises usual BFT models with threshold f and n = 3f+1 servers.

slide-20
SLIDE 20

DQS and threshold models

 DQS generalises usual BFT models with threshold f and n = 3f+1 servers.

1 3 2 4

f = 1, n = 4

slide-21
SLIDE 21

DQS and threshold models

 DQS generalises usual BFT models with threshold f and n = 3f+1 servers.

1 3 2 4

Quorums equal or bigger than 2f+1 = 3 ℚ = { {1,2,3}, {1,2,4}, {1,3,4}, {2,3,4}, {1,2,3,4} } Fail-prone sets exactly f = 1 𝔺 = { {1}, {2}, {3}, {4} } f = 1, n = 4

slide-22
SLIDE 22

DQS and threshold models

 DQS generalises usual BFT models with threshold f and n = 3f+1 servers.

1 3 2 4

Quorums equal or bigger than 2f+1 = 3 ℚ = { {1,2,3}, {1,2,4}, {1,3,4}, {2,3,4}, {1,2,3,4} } Fail-prone sets exactly f = 1 𝔺 = { {1}, {2}, {3}, {4} } f = 1, n = 4

 (Consistency) Every two quorums intersect in at least f+1 servers.  (Availability) If f servers fail, the remaining ones constitutes a quorum.

slide-23
SLIDE 23

BrachaBroadcast

slide-24
SLIDE 24

1 3 2 4

Example: 3f+1

client

slide-25
SLIDE 25

1 3 2 4

Example: 3f+1

client

slide-26
SLIDE 26

1 3 2 4

Example: 3f+1

receive [BCAST a] receive [BCAST a] receive [BCAST b]

client

To broadcast a value a, the client sends [BCAST a] to every server.

slide-27
SLIDE 27

1 3 2 4

Example: 3f+1

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [ECHO b] to all

client

After receiving [BCAST a], a server sends [ECHO a]to every server.

slide-28
SLIDE 28

1 3 2 4

Example: 3f+1

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [ECHO a] to 1,2 send [ECHO b] to all

client

slide-29
SLIDE 29

1 3 2 4

Example: 3f+1

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [ECHO a] to 1,2 send [ECHO b] to all send [READY a] to all send [READY a] to all

client

After receiving [ECHO a] from a quorum, a server sends [READY a] to every server.

slide-30
SLIDE 30

1 3 2 4

Example: 3f+1

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [ECHO a] to 1,2 send [ECHO b] to all send [READY a] to all send [READY a] to all send [READY a] to all

client

After receiving [READY a] from a set B such that ∀B' ∈ 𝔺, B ⊈ B' , a server sends [READY a] to every server.

slide-31
SLIDE 31

1 3 2 4

Example: 3f+1

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [ECHO a] to 1,2 send [ECHO b] to all send [READY a] to all send [READY a] to all send [READY a] to all deliver(a) deliver(a) deliver(a)

client

After receiving [READY a] from a quorum, a server delivers value a.

slide-32
SLIDE 32

Bracha broadcast satisfies the specification of reliable Byzantine broadcast when all faulty servers belong to some element of 𝔺:  Safety:If some correct server delivers a value a and another correct server delivers a value b, then a = b.  Liveness:If a correct server delivers a value, then every correct server eventually delivers a value.

Reliable Byzantine broadcast

slide-33
SLIDE 33

Bracha broadcast satisfies the specification of reliable Byzantine broadcast when all faulty servers belong to some element of 𝔺:  Safety:If some correct server delivers a value a and another correct server delivers a value b, then a = b.  Liveness:If a correct server delivers a value, then every correct server eventually delivers a value.

Reliable Byzantine broadcast

The protocol needs to compute 𝔺, which requires global information!

slide-34
SLIDE 34

Federated Byzantine Quroum Systems (FBQS)

slide-35
SLIDE 35

1 3 2 4

FBQS

𝕎 = {1,2,3,4} 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕋 : 𝕎 → 2 𝕎

2

slide-36
SLIDE 36

1 3 2 4

FBQS

𝕎 = {1,2,3,4} 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕋 : 𝕎 → 2 𝕎

2

slide-37
SLIDE 37

1 3 2 4

FBQS

𝕎 = {1,2,3,4} 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕋 : 𝕎 → 2 𝕎

2

slide-38
SLIDE 38

1 3 2 4

FBQS

𝕎 = {1,2,3,4} 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕋 : 𝕎 → 2 𝕎

2

slide-39
SLIDE 39

1 3 2 4

FBQS

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-40
SLIDE 40

1 3 2 4

FBQS

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-41
SLIDE 41

1 3 2 4

FBQS

U1 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 = {1,2} ∈ ℚ 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-42
SLIDE 42

1 3 2 4

FBQS

U1 U2 U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-43
SLIDE 43

1 3 2 4

FBQS

U3 U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U2 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-44
SLIDE 44

1 3 2 4

FBQS

U4 U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ 𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-45
SLIDE 45

1 3 2 4

FBQS (Intact and befouled servers)

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

Given a set of faulty servers, 𝕎int is the biggest quorum 𝕎int ∈ ℚ such that: ∀v ∈ 𝕎int, v is correct, ℚ|𝕎int has quorum intersection.

slide-46
SLIDE 46

1 3 2 4

FBQS (Intact and befouled servers)

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕋 : 𝕎 → 2 𝕎

2

𝕎int = {1,2}

Given a set of faulty servers, 𝕎int is the biggest quorum 𝕎int ∈ ℚ such that: ∀v ∈ 𝕎int, v is correct, ℚ|𝕎int has quorum intersection.

slide-47
SLIDE 47

1 2

FBQS (Intact and befouled servers)

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 U1 = {1,2} ∈ ℚ|{1,2} 𝕋 : 𝕎 → 2 𝕎

2

𝕎int = {1,2}

3 4

Given a set of faulty servers, 𝕎int is the biggest quorum 𝕎int ∈ ℚ such that: ∀v ∈ 𝕎int, v is correct, ℚ|𝕎int has quorum intersection.

slide-48
SLIDE 48

1 2

FBQS (Intact and befouled servers)

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 U2'' U1 = {1,2} ∈ ℚ|{1,2} U2'' = {1} ∈ ℚ|{1,2} 𝕋 : 𝕎 → 2 𝕎

2

𝕎int = {1,2}

3 4

Given a set of faulty servers, 𝕎int is the biggest quorum 𝕎int ∈ ℚ such that: ∀v ∈ 𝕎int, v is correct, ℚ|𝕎int has quorum intersection.

slide-49
SLIDE 49

1 2

FBQS (Intact and befouled servers)

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 U2''

U1 = {1,2} ∈ ℚ|{1,2} U2'' = {1} ∈ ℚ|{1,2} 𝕋 : 𝕎 → 2 𝕎

2

𝕎int = {1,2}

3 4

Given a set of faulty servers, 𝕎int is the biggest quorum 𝕎int ∈ ℚ such that: ∀v ∈ 𝕎int, v is correct, ℚ|𝕎int has quorum intersection.

slide-50
SLIDE 50

1 2

FBQS (Intact and befouled servers)

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 U2''

𝕎int = {1,2} U1 = {1,2} ∈ ℚ|{1,2} U2'' = {1} ∈ ℚ|{1,2} 𝕋 : 𝕎 → 2 𝕎

2

3 4

In threshold models like 3f+1, the notions of intact and correct coincide.

Given a set of faulty servers, 𝕎int is the biggest quorum 𝕎int ∈ ℚ such that: ∀v ∈ 𝕎int, v is correct, ℚ|𝕎int has quorum intersection.

slide-51
SLIDE 51

1 3 2 4

Mapping FBQS into DQS

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 𝕋 : 𝕎 → 2 𝕎

2

slide-52
SLIDE 52

1 3 2 4

Mapping FBQS into DQS

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} U1 = {1,2} ∈ ℚ U2 = {1,3,4} ∈ ℚ U3 = {1,2,3} ∈ ℚ U4 = {1,2,3,4} ∈ ℚ B1 = {2} ∈ 𝔺 B2 = {3,4} ∈ 𝔺 𝕋 : 𝕎 → 2 𝕎

2

The elements in 𝔺 are the maximal sets whose failure leave some intact server in the system.

slide-53
SLIDE 53

Stellar Broadcast

slide-54
SLIDE 54

1 3 2 4

v-blocking mecahnism

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} B1 ⊇ {2,4} is 1-blocking 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

slide-55
SLIDE 55

1 3 2 4

v-blocking mecahnism

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} B1 ⊇ {2,4} is 1-blocking 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

If v is intact, only intact servers can block v.

slide-56
SLIDE 56

1 3 2 4

v-blocking mecahnism

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} B1 ⊇ {2,4} is 1-blocking 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 𝕎

2

If v is intact, only intact servers can block v. A v-blocking set can be computed by v locally!

slide-57
SLIDE 57

Example:

client 1 3 2 4

slide-58
SLIDE 58

Example:

client 1 3 2 4

slide-59
SLIDE 59

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b]

To broadcast a value a, the client sends [BCAST a] to every server.

slide-60
SLIDE 60

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [ECHO b] to all

After receiving [BCAST a], a server sends [ECHO a]to every server.

slide-61
SLIDE 61

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [READY b] to 4 send [ECHO b] to all

slide-62
SLIDE 62

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [READY b] to 4 send [ECHO b] to all send [READY a] to all send [READY a] to all

After receiving [ECHO a] from a quorum, a server sends [READY a] to every server.

slide-63
SLIDE 63

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [READY b] to 4 send [ECHO b] to all send [READY a] to all send [READY a] to all send [READY b] to all

After receiving [READY a] from a v-blocking set, v sends [READY a]to every server.

slide-64
SLIDE 64

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [READY b] to 4 send [ECHO b] to all send [READY a] to all send [READY a] to all send [READY b] to all deliver(a) deliver(a)

After receiving [READY a] from a quorum, a server delivers value a.

slide-65
SLIDE 65

1 3 2 4

Example:

client 1 3 2 4

receive [BCAST a] receive [BCAST a] receive [BCAST b] send [ECHO a] to all send [ECHO a] to all send [READY b] to 4 send [ECHO b] to all send [READY a] to all send [READY a] to all send [READY b] to all deliver(a) deliver(a) 𝕎int = {1,2}

After receiving [READY a] from a quorum, a server delivers value a.

slide-66
SLIDE 66

Stellar broadcast satisfies the specification of weakly reliable Byzantine broadcast when the faulty servers leave at least one intact server:  Safety: If some correct server delivers a value a and another correct server delivers a value b, then a = b.  Liveness: If a correct server delivers a value, then every intact server eventually delivers a value.

Weakly reliable Byzantine broadcast

slide-67
SLIDE 67

Stellar broadcast satisfies the specification of weakly reliable Byzantine broadcast when the faulty servers leave at least one intact server:  Safety: If some correct server delivers a value a and another correct server delivers a value b, then a = b.  Liveness: If a correct server delivers a value, then every intact server eventually delivers a value.

Weakly reliable Byzantine broadcast

slide-68
SLIDE 68

Stellar broadcast satisfies the specification of weakly reliable Byzantine broadcast when the faulty servers leave at least one intact server:  Safety: If some correct server delivers a value a and another correct server delivers a value b, then a = b.  Liveness: If a correct server delivers a value, then every intact server eventually delivers a value.

Weakly reliable Byzantine broadcast

Trade-off: operating on local information weakens the liveness properties to intact servers

slide-69
SLIDE 69

Subjective FBQS

slide-70
SLIDE 70

1 3 2 4

Subjective FBQS

𝕋(1) = {{1,2},{1,4}} 𝕋(2) = {{1,2}} 𝕋(3) = {{1,3}} 𝕋(4) = {{3,4}} 𝕎 = {1,2,3,4} 𝕋 : 𝕎 → 2 \ {∅}

𝕎

2

slide-71
SLIDE 71

1 3 2 4

Subjective FBQS

𝕎 = {1,2,3,4}

slide-72
SLIDE 72

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4 𝕎 = {1,2,3,4}

slide-73
SLIDE 73

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4 𝕎 = {1,2,3,4}

1 3 2 4

slide-74
SLIDE 74

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4 𝕎 = {1,2,3,4}

1 3 2 4

𝕋2

slide-75
SLIDE 75

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4 𝕎 = {1,2,3,4}

1 3 2 4

𝕋2 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} 𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}}

slide-76
SLIDE 76

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4

1 3 2 4

𝕋2 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} U2 𝕎 = {1,2,3,4} 𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}}

slide-77
SLIDE 77

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4

1 3 2 4

𝕋2 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} U2 𝕎 = {1,2,3,4}

U2 = {1,3,4} is not a quorum in 𝕋2!

𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}}

slide-78
SLIDE 78

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4

1 3 2 4

𝕋2 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} U2 𝕎 = {1,2,3,4}

U2 = {1,3,4} is not a quorum in 𝕋2!

𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}}

slide-79
SLIDE 79

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4

1 3 2 4

𝕋2 𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}} 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} U2

U2 = {1,3,4} is not a quorum in 𝕋2!

𝕎 = {1,2,3,4}

slide-80
SLIDE 80

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4

1 3 2 4

𝕋2 𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}} 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} U2

U2 = {1,3,4} is not a quorum in 𝕋2!

𝕎int = {1,2} 𝕎int = {1,2}

slide-81
SLIDE 81

1 3 2 4

Subjective FBQS

𝕋1 = 𝕋4

1 3 2 4

𝕋2 𝕋1(1) = 𝕋4(1) = {{1,2},{1,4}} 𝕋1(2) = 𝕋4(2) = {{1,2}} 𝕋1(3) = 𝕋4(3) = {{1,3}} 𝕋1(4) = 𝕋4(4) = {{3,4}} 𝕋2(1) = {{1,2},{1,4}} 𝕋2(2) = {{1,2}} 𝕋2(3) = {{2,3}} 𝕋2(4) = {{3,4}} U2

U2 = {1,3,4} is not a quorum in 𝕋2!

𝕎int = {1,2} 𝕎int = {1,2}

Stellar broadcast over a subjective FBQS with some intact server implements weak reliable Byzantine broadcast.

slide-82
SLIDE 82

 Proof of correctness of the whole Stellar consensus protocol.  Relation between Stellar consensus and existing BFT algorithms.

Work in progress

slide-83
SLIDE 83

 An FBQS maps into a DQS, so off-the-shelf DQS algorithms can be run

  • ver FBQS:

 Trade-off between servers relying on global/local information and liveness properties for correct/intact servers.

 If the set of intact servers coincides with the set of correct servers, then Stellar broadcast and Bracha broadcast are observtionally equivalent.  We prove Stellar broadcast correct when servers lie about their slices.

Conclusions

slide-84
SLIDE 84

Conclusions

Thanks!

 An FBQS maps into a DQS, so off-the-shelf DQS algorithms can be run

  • ver FBQS:

 Trade-off between servers relying on global/local information and liveness properties for correct/intact servers.

 If the set of intact servers coincides with the set of correct servers, then Stellar broadcast and Bracha broadcast are observtionally equivalent.  We prove Stellar broadcast correct when servers lie about their slices.