1 of 16

Jolteon and Ditto �Network-Adaptive Efficient Consensus �with Asynchronous Fallback

FC 2022

Rati Gelashvili, Lefteris Kokoris-Kogias, Alberto Sonnino, Alexander Spiegelman, Zhuolun Xiang

1

UIUC

Mystenlabs

IST

Aptos

Aptos

Work done while all authors were working at Novi Research at Meta

2 of 16

Motivation

  • State machine replication (SMR) builds permissioned blockchain

  • State-of-the-art of SMR:
    • Efficient under good network, but no liveness under bad network
    • Robust under bad network, but not efficient under good network
    • Not adaptive to network conditions
  • Q: Can we get the best of both worlds?

2

3 of 16

Results

3

Protocol

Optimistic

Under Async

Liveness

HotStuff

not live if async

VABA

always

Ditto

always

Adding async fallback path to psync protocol

Adding sync fast path to async protocol

Consensus on constant size messages. Crypto object size omitted in the cost.

4 of 16

HotStuff/DiemBFT: Optimistic Linear Path

4

propose

vote

propose

vote

propose

vote

L1

L2

L3

L4

block

QC = {2f+1 votes}

r

r

r+1

r+1

r+2

r+2

n=3f+1 nodes, f Byzantine faults

5 of 16

 

5

all-to-alltimeout

propose

vote

propose

vote

L1

L2

L3

L4

block

QC = {2f+1 votes}

r

r

r+2

r+2

propose

vote

TC = {2f+1 timeouts}

r+1

delayed

6 of 16

 

6

all-to-alltimeout

all-to-alltimeout

propose

vote

propose

vote

L1

L2

L3

L4

block

QC = {2f+1 votes}

r

r

TC = {2f+1 timeouts}

r+1

delayed

TC

r+2

No liveness

delayed

7 of 16

Meanwhile in Async World

  • No assumed message delay bound => no timeouts
  • Always live, but less efficient

  • Existing protocols: VABA, HBBFT, BEAT, Dumbo, …

7

8 of 16

VABA

  •  

8

Leader

Election

elect()

leader

View change

9 of 16

Chained-VABA

9

n parallel HS

exchange last QC, wait for n-f QC, then elect leader

exchange latest QC of leader (similar to Pacemaker of HS)

continue from leader’s chain

10 of 16

Ditto: Combine HotStuff and Chained-VABA

10

sync chain same as HotStuff

Broadcast timeouts with high-QC

Build VABA chain extending high-QC

Chained-VABA finish, back to HotStuff

11 of 16

Ditto: Correctness Intuition

  •  

11

12 of 16

Ditto: Improved Latency

12

Protocol

Optimistic

Under Async

Liveness

Rounds

HotStuff

not live if async

7

VABA

always

E(16.5)

Ditto

always

5�E(10.5)

The 5-round HotStuff is called Jolteon

13 of 16

Implementation and Evaluation

  • Ditto implementation in Rust (2k LOC) on top of HotStuff codebase (5k LOC)
  • Use real cryptography (dalek), networking (tokio), and storage (rocksdb)
  • Running across 5 different AWS regions

  • We want to show:
    • Ditto is as good as HotStuff in common good case (sync, good leader)
    • Ditto is as good as VABA in bad case (async, slow leader)

13

14 of 16

Evaluation: Good Case

14

Ditto is as good as HotStuff

VABA is worse than HotStuff/Ditto

15 of 16

Evaluation: Bad Case

15

Ditto is as good as VABA

HotStuff drops to 0

16 of 16

Summary

16

Protocol

Optimistic

Under Async

Liveness

Rounds

HotStuff

not live if async

7

VABA

always

E(16.5)

Ditto

always

5�E(10.5)