CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.

Slides:



Advertisements
Similar presentations
Fault Tolerance. Basic System Concept Basic Definitions Failure: deviation of a system from behaviour described in its specification. Error: part of.
Advertisements

CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Consensus Steve Ko Computer Sciences and Engineering University at Buffalo.
Byzantine Generals. Outline r Byzantine generals problem.
Agreement: Byzantine Generals UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department CS 739 Distributed Systems Andrea C. Arpaci-Dusseau Paper: “The.
CS 5204 – Operating Systems1 Paxos Student Presentation by Jeremy Trimble.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
1 Indranil Gupta (Indy) Lecture 8 Paxos February 12, 2015 CS 525 Advanced Distributed Systems Spring 2015 All Slides © IG 1.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.
The Byzantine Generals Problem Boon Thau Loo CS294-4.
The Byzantine Generals Problem Leslie Lamport, Robert Shostak, Marshall Pease Distributed Algorithms A1 Presented by: Anna Bendersky.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Google Chubby Lock Service Steve Ko Computer Sciences and Engineering University at Buffalo.
Consensus Algorithms Willem Visser RW334. Why do we need consensus? Distributed Databases – Need to know others committed/aborted a transaction to avoid.
Copyright 2006 Koren & Krishna ECE655/ByzGen.1 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Fault Tolerant Computing ECE 655.
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 15 Wenbing Zhao Department of Electrical and Computer Engineering.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Failure Detectors Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Logical Time Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 425 / ECE 428 Distributed Systems Fall 2014 Indranil Gupta (Indy) Lecture 19: Paxos All slides © IG.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Consensus Steve Ko Computer Sciences and Engineering University at Buffalo.
Paxos Made Simple Jinghe Zhang. Introduction Lock is the easiest way to manage concurrency Mutex and semaphore. Read and write locks. In distributed system:
Distributed Algorithms – 2g1513 Lecture 9 – by Ali Ghodsi Fault-Tolerance in Distributed Systems.
Chapter 19 Recovery and Fault Tolerance Copyright © 2008.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Replication with View Synchronous Group Communication Steve Ko Computer Sciences and Engineering.
CSE 486/586 CSE 486/586 Distributed Systems Concurrency Control Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Concurrency Control Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Wrap-up Steve Ko Computer Sciences and Engineering University at Buffalo.
1 Chapter 12 Consensus ( Fault Tolerance). 2 Reliable Systems Distributed processing creates faster systems by exploiting parallelism but also improve.
Byzantine Fault Tolerance in Stateful Web Service Yilei ZHANG 30/10/2009.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Wrap-up Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 425/ECE 428/CSE424 Distributed Systems (Fall 2009) Lecture 9 Consensus I Section Klara Nahrstedt.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Google Chubby Lock Service Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 60641: Operating Systems Implementing Fault-Tolerant Services Using the State Machine Approach: a tutorial Fred B. Schneider, ACM Computing Surveys.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Mutual Exclusion & Leader Election Steve Ko Computer Sciences and Engineering University.
CSE 486/586 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.
UNIVERSITY of WISCONSIN-MADISON Computer Sciences Department
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Google Chubby Lock Service Steve Ko Computer Sciences and Engineering University at Buffalo.
Byzantine Fault Tolerance
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Replication Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2013 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Transactions on Replicated Data Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586 CSE 486/586 Distributed Systems Leader Election Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Agreement. Agreement Problems High-level goal: Processes in a distributed system reach agreement on a value Numerous problems can be cast.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Paxos Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586, Spring 2014 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
CSE 486/586 Distributed Systems Wrap-up
The consensus problem in distributed systems
CSE 486/586 Distributed Systems Leader Election
CS 525 Advanced Distributed Systems Spring 2013
CSE 486/586 Distributed Systems Paxos
CSE 486/586 Distributed Systems Wrap-up
COMP28112 – Lecture 14 Byzantine fault tolerance: dealing with arbitrary failures The Byzantine Generals’ problem (Byzantine Agreement) 13-Oct-18 COMP28112.
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
COMP28112 – Lecture 13 Byzantine fault tolerance: dealing with arbitrary failures The Byzantine Generals’ problem (Byzantine Agreement) 19-Nov-18 COMP28112.
Implementing Consistency -- Paxos
CS 525 Advanced Distributed Systems Spring 2018
CS 425 / ECE 428 Distributed Systems Fall 2017 Indranil Gupta (Indy)
CSE 486/586 Distributed Systems Leader Election
The Byzantine Generals Problem
COMP28112 – Lecture 13 Byzantine fault tolerance: dealing with arbitrary failures The Byzantine Generals’ problem (Byzantine Agreement) 22-Feb-19 COMP28112.
Implementing Consistency -- Paxos
CSE 486/586 Distributed Systems Paxos
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
CSE 486/586 Distributed Systems Concurrency Control --- 3
CSE 486/586 Distributed Systems Leader Election
CSE 486/586 Distributed Systems Mid-Semester Overview
Presentation transcript:

CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Byzantine Fault Tolerance Steve Ko Computer Sciences and Engineering University at Buffalo

CSE 486/586, Spring 2012 CSE 486/586 Administrivia Project 3 out –Please, please start right away! –Deadline: 4/30 11:59PM Final –5/7 (Monday), 3:30PM - 6:30PM –Norton 112 2

CSE 486/586, Spring 2012 Recap Paxos agents –Proposers –Acceptors –Learners A proposer always makes sure that, –If a value has been chosen, it always proposes the same value. Three phases –Prepare: “What’s the last proposed value?” –Accept: “Accept my proposal.” –Learn: “Let’s tell other guys about the consensus.” Google Chubby motivation –Many Google systems have one master Google Chubby –A coarse-grained lock service –Takes care of coordination among clients, e.g., master election 3

CSE 486/586, Spring 2012 Byzantine Fault Tolerance Fault categories –Benign: failures we’ve been talking about –Byzantine: arbitrary failures Benign –Fail-stop & crash: process halted –Omission: msg loss, send-omission, receive-omission –All entities still follow the protocol Byzantine –Process or channel exhibits arbitrary behavior. –May deviate from the protocol –Can be malicious (attacks, software bugs, etc.) 4

CSE 486/586, Spring 2012 Byzantine Fault Tolerance Result: with f faulty nodes, we need 3f + 1 nodes to tolerate their Byzantine behavior. How about Paxos? –With f faulty nodes, we need 2f + 1 to obtain the majority. 5

CSE 486/586, Spring 2012 “Byzantine” Leslie Lamport (again!) defined the problem & presented the result. “I have long felt that, because it was posed as a cute problem about philosophers seated around a table, Dijkstra's dining philosopher's problem received much more attention than it deserves.” “At the time, Albania was a completely closed society, and I felt it unlikely that there would be any Albanians around to object, so the original title of this paper was The Albanian Generals Problem.” “…The obviously more appropriate Byzantine generals then occurred to me.” 6

CSE 486/586, Spring 2012 Introducing the Byzantine Generals Imagine several divisions of the Byzantine army camped outside of a city Each division has a general. The generals can only communicate by messenger. 7

CSE 486/586, Spring 2012 Introducing the Byzantine Generals They must decide on a common plan of action. –What is this problem? But, some of the generals can be traitors. 8 Attack Retreat Attack Attack/Retrea t

CSE 486/586, Spring 2012 Requirements All loyal generals decide upon the same plan of action (e.g., attack or retreat). A small number of traitors cannot cause the loyal generals to adopt a bad plan. One strategy –All-to-all communication: every general sends the opinion. –Majority: the final decision is the decision of the majority –Similar to reliable multicast 9

CSE 486/586, Spring 2012 The Byzantine Generals Problem The problem boils down to how a single general sends the general’s own value to the others. –Thus, we can express it in terms of a single commanding general sending an order to lieutenant generals. Byzantine Generals Problem: a commanding general must send an order to n-1 lieutenant generals such that –All loyal lieutenants obey the same order. –If the commanding general is loyal, then every loyal lieutenant obeys the order the commanding general sends. 10

CSE 486/586, Spring 2012 Understanding the Problem 11 Commander Lieutenant 1 Lieutenant 2 (Traitor) “attack” “he said ‘retreat’”

CSE 486/586, Spring 2012 Understanding the Problem 12 Commander (Traitor) Lieutenant 1Lieutenant 2 “attack” “retreat” “he said ‘retreat’”

CSE 486/586, Spring 2012 Understanding the Problem With three generals, it is impossible to solve this problem with one traitor. Why not Paxos? –Paxos works with 2f + 1 nodes when f nodes are faulty. –In Paxos, f nodes can fail (or disappear) from the system, but they don’t lie. In the Byzantine generals problem, f nodes might be alive and lie. In general, you need 3f + 1 nodes to tolerate f faulty nodes in the Byzantine generals problem. Why? 13

CSE 486/586, Spring 2012 Intuition for the Result Question: how many votes do I need? –In Paxos, I need f + 1 votes out of 2f + 1 nodes, since that’s the majority. Let’s apply this to the Byzantine generals problem. –Let’s say we obtain f + 1 votes. –Up to f nodes can lie  f + 1 votes cannot give a consensus We need more votes from the honest nodes than the faulty nodes. –If we obtain 2f + 1 votes, then we have at least f + 1 honest nodes, one more than the number of faulty nodes. But, f nodes still might just simply fail, not reply at all. –In order to get 2f + 1 votes under the possibility of f no replies, –We need at least 3f + 1 nodes in total. 14

CSE 486/586, Spring 2012 Summary Byzantine generals problem –They must decide on a common plan of action. –But, some of the generals can be traitors. Requirements –All loyal generals decide upon the same plan of action (e.g., attack or retreat). –A small number of traitors cannot cause the loyal generals to adopt a bad plan. Impossibility results –With three generals, it’s impossible to reach a consensus with one traitor –In general, with less than 3f + 1 nodes, we cannot tolerate f faulty nodes. 15

CSE 486/586, Spring Acknowledgements These slides contain material developed and copyrighted by Indranil Gupta (UIUC).