Enhancing Ethereum PoA Clique Network with DAG-based BFT Consensus

YongraeJo 59 views 30 slides May 28, 2024
Slide 1
Slide 1 of 30
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30

About This Presentation

ICBC 2024 Presentation Slides


Slide Content

1
Pohang University of Science And Technology
YongraeJo
Enhancing Ethereum PoAClique Network with DAG-
based BFT Consensus
YongraeJo and ChanikPark

2
lConsensus for permissioned blockchain
─Only a few messages for block agreement
─Efficient than proof-of-work (PoW)
Proof of Authority (PoA)
PoA
Consensus
Authorities
12
3
45
6
Block
Proposal

3
lConsensus for permissioned blockchain
─Only a few messages for block agreement
─Efficient than proof-of-work (PoW)
Proof of Authority (PoA)
PoA
Consensus
Authorities
12
3
45
6
Block
Proposal
Clique
(our focus)

4
PoAClique: An Illustration
AuthoritiesRound 1Round 2Round 3Round 4
Block proposal
2
1
3
4
5
by leader
by non-leader
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
*#non-leaders = up to !
"−2

5
PoAClique: An Illustration
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: a leader block
*#non-leaders = up to !
"−2
Block proposal
by leader
by non-leader
Accepted

6
PoAClique: An Illustration
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: a leader block
Block proposal
by leader
by non-leader
Accepted
Delayed
Block
Forks
happen
*#non-leaders = up to !
"−2

7
PoAClique: An Illustration
AuthoritiesRound 1Round 2
2
Round 3Round 4
12
1
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: a leader block
─Forks: a highest scored chain
Block proposal
by leader
by non-leader
Accepted
Scoring mechanism
-leader’s: 2
-non-leaders’: 1
Forks
happen
Delayed
Block
*#non-leaders = up to !
"−2

8
PoAClique: An Illustration
AuthoritiesRound 1Round 2
2
Round 3Round 4
12
12
12
1
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: a leader block
─Forks: a highest scored chain
Block proposal
by leader
by non-leader
Accepted
Delayed
Block
*#non-leaders = up to !
"−2

9
PoAClique: An Illustration
AuthoritiesRound 1Round 2
2
Round 3Round 4
2
12
2
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: aleader block
─Forks: a highest scored chain
Block proposal
by leader
by non-leader
Accepted
-Not proposed
-Invalid block
-Beyond Δ
*#non-leaders = up to !
"−2

10*#non-leaders = up to !
"−2
PoAClique: Issues
AuthoritiesRound 1Round 2
2
Round 3Round 4
2
12
2
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: a leader block
─Forks: a highest scored chain
Block proposal
by leader
by non-leader
Accepted
(network fault)
-Not proposed
-Invalid block
-Beyond Δ
Multiple block proposals, but a single block acceptance

11*#non-leaders = up to !
"−2
PoAClique: Issues
AuthoritiesRound 1Round 2
2
Round 3Round 4
2
12
2
2
1
3
4
5
lRound-based
─(rotating) leader & round timeout Δ
lMultiple block proposals in a round
─by a leader
─by non-leaders* with random delays
lSingle block acceptance in a round
─Normal: a leader block
─Forks: a highest scored chain
Block proposal
by leader
by non-leader
Accepted
(network fault)
-Not proposed
-Invalid block
-Beyond Δ
Limited throughput & Wasted resources
Multiple block proposals, but a single block acceptance

12
Our Idea
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
lRound-based
─leader-less& round timeout Δ
lMultiple block proposals in a round
─By all authorities
lMultiple block acceptance in a round
─Normal: (consistent) all proposedblocks
─Forks: (consistent) total order
Block proposal
by leader
by non-leader
Accepted

13
Our Idea
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
lRound-based
─leader-less& round timeout Δ
lMultiple block proposals in a round
─By all authorities
lMultiple block acceptance in a round
─Normal: (consistent) all proposedblocks
─Forks: (consistent) total order
Block proposal
by leader
by non-leader
Accepted Challenges

14
Challenge (1) Consistent view across nodes
Authority 1’s view
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
X
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
Y
Authority 2’s view
Fork
attack
Delayed/
Dropped

15
Challenge (2) Consistent total ordering
Authority 1’s view
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
AuthoritiesRound 1Round 2Round 3Round 4
2
1
3
4
5
Authority 2’s view
Authority 1’s
total order?Authority 2’s
total order

16
DAG-based BFT Consensus
─Consistent blocks across nodes
─Reliable block distribution
─Parallel block proposals & Acceptance
DAG MempoolConsensus
Round 1Round 2Round 3Round 4
2
1
3
4
5
Round 1Round 2Round 3Round 4
─Consistent total order
─Local & deterministic
─(shared) randomness

17
Contributions
DAG Mempool
Multiple Blocks AcceptanceDAG-based BFT Consensus
2
1
3
4
5
Single Block Acceptance
Consensus
DaPoAPoAClique
2
1
3
4
5
achieves 2.47x higher throughput, 5.76x lower latency than Clique

18
lA consortium blockchain
─Known Identities
─Members operates DaPoAnode
─Clients submit Txs to a trusted node
─fByzantine members out of 3f+1members
lPartially asynchronous network
─unknown time bound ∆
lCrypto cannot besubverted
Assumptions

19
DaPoA: Operations
Tx
Req.TxPool-Block
-round r

DaPoA
Nodes

20
DaPoA: Operations
Tx
Req.TxPoolround r-1round r




-Block
-round r


DAG Mempool
(Reliable Broadcast)
DaPoA
Nodes
─Reliable blockreplication across nodes
─Consistent block views
─Multiple block proposals & acceptance

21
DaPoA: Operations
Tx
Req.TxPool
Consensus
round r-1round r
SubDAG
(Ordered Block
Digests)
with an index…



-Block
-round r


DAG Mempool
(Reliable Broadcast)
DaPoA
Nodes
─Consistent total order
─Local & Deterministic
─Based on a shared
randomness

22
DaPoA: Operations
Tx
Req.TxPool
Consensus
round r-1round r
SubDAG
(Ordered Block
Digests)
with an index…



DAG Block
-Block
-round r Sub
DAG…
……
DAG Mempool
(Reliable Broadcast)
DaPoA
Nodes
Retrieves corresponding blocks

23
DaPoA: Operations
Tx
Req.TxPool
Consensus
round r-1round r
SubDAG
(Ordered Block
Digests)
with an index…



Validate &
Commit
Validate &
Commit
Validate &
Commit
DAG Block
-Block
-round r Sub
DAG…
……
DAG Mempool
(Reliable Broadcast)
DaPoA
Nodes
Retrieves corresponding blocks

24
Security Analysis
Round 1Round 2Round 3Round 4
2
1
3
4
5
Fork
Attack
Round 1Round 2Round 3Round 4
DAG MempoolConsensus
Accept a proposal with 2f+1 votes
from the next round

25
Security Analysis
Round 1Round 2Round 3Round 4
2
1
3
4
5
Fork
Attack
Omission
Attack
Round advances despite f failures
DAG Mempool
Round 1Round 2Round 3Round 4
Consensus
Accept a proposal with 2f+1 votes
from the next round

26
Security Analysis
Round 1Round 2Round 3Round 4
2
1
3
4
5
Round 1Round 2Round 3Round 4
Fork
Attack
Accept a proposal with 2f+1 votes
from the next round
Omission
Attack
Ordering based on
a shared randomness
Fairness
Attack
DAG MempoolConsensus
Round advances despite f failures

27
Evaluation: vs. Clique
─Implement DaPoAbased on Ethereum Geth*
─Narwhal/Tusk** for DAG BFT
─Benchmark using Hyperledger Caliper
─Hardware: AMD Ryzen 3990X CPU, 256 GB RAM
Parameters
─Simple payment contract
─TX confirmation blocks: 2
─Block Period: 1
─Gaslimit: 109
─DAG BFT (Batch Size: 2MB, 1 worker, 1 primary)
─Send rate: 700
*https://github.com/ethereum/go-ethereum
**https://github.com/facebookresearch/narwhal

28
Evaluation: vs. Clique
─Implement DaPoAbased on Ethereum Geth*
─Narwhal/Tusk** for DAG BFT
─Benchmark using Hyperledger Caliper
─Hardware: AMD Ryzen 3990X CPU, 256 GB RAM
Parameters
─Simple payment contract
─TX confirmation blocks: 2
─Block Period: 1
─Gaslimit: 109
─DAG BFT (Batch Size: 2MB, 1 worker, 1 primary)
─Send rate: 700
*https://github.com/ethereum/go-ethereum
**https://github.com/facebookresearch/narwhal
DaPoA scales better

29
Evaluation: vs. Clique
─Implement DaPoAbased on Ethereum Geth*
─Narwhal/Tusk** for DAG BFT
─Benchmark using Hyperledger Caliper
─Hardware: AMD Ryzen 3990X CPU, 256 GB RAM
Parameters
─Simple payment contract
─TX confirmation blocks: 2
─Block Period: 1
─Gaslimit: 109
─DAG BFT (Batch Size: 2MB, 1 worker, 1 primary)
─Send rate: 700
*https://github.com/ethereum/go-ethereum
**https://github.com/facebookresearch/narwhal
5.76xlower
latency
DaPoA scales better
2.74xhigher
throughput

30
DaPoA
lAn effort to enhance Ethereum Clique for performance scalability
─Multiple block acceptance
lLeveraging DAG-based BFT consensus
─A consistent block view across nodes using DAG mempool.
─A consistent block ordering using local consensus based on shared randomness
Conclusion