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
Motivation
2
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.
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
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
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
Meanwhile in Async World
7
VABA
8
Leader
Election
elect()
leader
View change
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
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
Ditto: Correctness Intuition
11
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
Implementation and Evaluation
13
Evaluation: Good Case
14
Ditto is as good as HotStuff
VABA is worse than HotStuff/Ditto
Evaluation: Bad Case
15
Ditto is as good as VABA
HotStuff drops to 0
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) |