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-all �timeout

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-all �timeout

all-to-all �timeout

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)