bft in lens of blockchain
play

BFT in Lens of Blockchain Ted Yin 1,2 , Dahlia Malkhi 2 , Michael K. - PowerPoint PPT Presentation

BFT in Lens of Blockchain Ted Yin 1,2 , Dahlia Malkhi 2 , Michael K. Reiter 2,3 Guy Golan Gueta 2 and Ittai Abraham 2 1 Cornell University, 2 VMware Research, 3 UNC-Chapel Hill About Me {Design,prov,build}ing practical distributed systems with


  1. BFT in Lens of Blockchain Ted Yin 1,2 , Dahlia Malkhi 2 , Michael K. Reiter 2,3 Guy Golan Gueta 2 and Ittai Abraham 2 1 Cornell University, 2 VMware Research, 3 UNC-Chapel Hill

  2. About Me {Design,prov,build}ing practical distributed systems with ● fundamental (algorithmic) improvements Major work: ● Avalanche Consensus (permission-less, extremely scalable) ○ HotStuff Consensus (permission-ed, elegant and drop-in ○ replacement for PBFT/PBFT-like use cases) Two other on-going projects (Cornell, VMware) ●

  3. BFT Consensus: Research In Our Eyes What we think we do What others think we do

  4. BFT Consensus: Why Another Protocol? The Saddest Moment , Mickens 2013

  5. BFT Consensus: Why Another Protocol? Bitcoin: a Peer-to-Peer Electronic Cash System, Nakamoto 2008

  6. BFT Consensus: Problem Definition N nodes replicate the same sequence of commands ● Consistent in asynchronous network (safety) ● During period of synchrony, it’d better progress (liveness) ● When the proposer (leader) is correct, it should be fast ● 1 1 1 2 2 2 3 3 3 Byz Replica Replica Replica 4 4 4 ... ... ...

  7. Reducing the Complexity Possibly the first protocol with linear cost “Communication Complexity” during a view change Network Cost “Complexity” Protocol Spec “Protocol Complexity” Conferences probably don’t care. But we do!

  8. Protocol Complexity Classical BFT Nakamoto’s Consensus PoW-free PoW based ● ● Quorum invariants Longest chain ● ● From single-decree (1) Naturally multi-decree (2) ● ● (1) => Sequence numbers (2) => Block heights ● ● (1) => View numbers (2) => Views == Forks ● ● Hard to comprehend Easy to understand ● ●

  9. HotStuff: Protocol Framework & Simplicity Framework Classical BFT variant (same/better guarantee) ● Bridges classical BFT and blockchain ● View change is everywhere, and nowhere ● Locking mechanism (reducing protocol state space) ● Decouples safety and liveness ● “Liveness gadget” could be RR, PoW based, etc. ●

  10. Challenge: BFT consensus in 10 min Ingredients to Make a 2-step HotStuff Protocol state variables ● Message types ● Voting rule ● Commit rule ●

  11. Quorum Certificate QC: Proof of the Existence of 2f+1 (positive) Votes ≥ 1 ≥ f + 1 ≥ f + 1 2f + 1: QC 2 2f + 1: QC 1

  12. Blockchain! B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8

  13. Branch Preference B hqc : block containing QC for the preferred block “Preferred block” or qref(B hqc ): highest block receives a QC Locking mechanism: a replica sticks to qref(B hqc ) unless... qref(B hqc ) QC B 1 B 2 B 3 B 4 B 5 B 6 B hqc B 7 B 8

  14. Challenge: BFT consensus in 10 min Protocol State Variables B hqc = block containing a reference to the preferred branch ● B exec = last committed block ● vheight = height of the block last voted for ● qref(B hqc ) B 1 B 2 B 3 B 4 B 5 B 6 B exec B hqc B 7 B 8

  15. Challenge: BFT consensus in 10 min Message Types <propose , v , B new , B hqc’ > <vote , <v, B new > signed by v , B hqc’ > Proposer broadcasts the propose message for block B new ● Voters give back their opinions to the next proposer via votes ● Only one type of messages for voting/view change, etc. ●

  16. Challenge: BFT consensus in 10 min How to Vote? How to Vote? Only vote positively for B new if the following constraints hold: ● B new .height > vheight ○ B new is on the same branch as qref(B hqc ) ○ qref(B hqc ) Yes B 1 B 2 B 3 B 4 B 5 B 6 B exec B hqc B 7 B 8 No

  17. Challenge: BFT consensus in 10 min When to Commit? Every block could contain a QC for some previous block ● Block B will be committed when a child having QC for B also ● gets a QC. (What…? ) QC QC B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8

  18. Challenge: BFT consensus in 10 min When to Commit? Every block could contain a QC for some previous block ● Block B will be committed when a child having QC for B also ● gets a QC. QC QC B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8

  19. HotStuff: Protocol in a Single Slide (2-step version)

  20. HotStuff: Protocol in a Single Slide (3-step version)

  21. HotStuff vs. State of the Art Performance

  22. HotStuff vs. State of the Art Performance

  23. BFT Solutions & Communication Complexity VC = View Change PBFT Tendermint DLS Casper VC: O(N 3 ) or O(N 2 ) Normal: O(N 2 ) VC: O(N) Normal: O(N) VC: O(N 3 ) Normal: O(N 4 ) HotStuff HotStuff* PBFT* VC: O(N 2 ) VC: O(N 2 ) HotStuff + SBFT Normal: O(N 2 ) Normal: O(N)

  24. That’d be all. Special Thanks VMware Research Group https://arxiv.org/abs/1803.05069 Open-sourced code coming soon

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend