Robust BFT Protocols

Similar documents
Reducing the Costs of Large-Scale BFT Replication

RBFT: Redundant Byzantine Fault Tolerance

Zyzzyva. Speculative Byzantine Fault Tolerance. Ramakrishna Kotla. L. Alvisi, M. Dahlin, A. Clement, E. Wong University of Texas at Austin

Byzantine fault tolerance. Jinyang Li With PBFT slides from Liskov

Practical Byzantine Fault

Byzantine Fault Tolerance and Consensus. Adi Seredinschi Distributed Programming Laboratory

A definition. Byzantine Generals Problem. Synchronous, Byzantine world

Data Consistency and Blockchain. Bei Chun Zhou (BlockChainZ)

Tolerating Latency in Replicated State Machines through Client Speculation

Distributed Algorithms Practical Byzantine Fault Tolerance

Practical Byzantine Fault Tolerance. Miguel Castro and Barbara Liskov

Distributed Algorithms Practical Byzantine Fault Tolerance

Authenticated Agreement

Fault Tolerance via the State Machine Replication Approach. Favian Contreras

Recovering from a Crash. Three-Phase Commit

BFT Selection. Ali Shoker and Jean-Paul Bahsoun. University of Toulouse III, IRIT Lab. Toulouse, France

Two New Protocols for Fault Tolerant Agreement

Revisiting Fast Practical Byzantine Fault Tolerance

AS distributed systems develop and grow in size,

G Distributed Systems: Fall Quiz II

Today: Fault Tolerance

Today: Fault Tolerance. Fault Tolerance

Viewstamped Replication to Practical Byzantine Fault Tolerance. Pradipta De

Failure models. Byzantine Fault Tolerance. What can go wrong? Paxos is fail-stop tolerant. BFT model. BFT replication 5/25/18

Practical Byzantine Fault Tolerance Consensus and A Simple Distributed Ledger Application Hao Xu Muyun Chen Xin Li

Adapting Byzantine Fault Tolerant Systems

Specula(ng Seriously. Rachid Guerraoui, EPFL

Distributed Systems. replication Johan Montelius ID2201. Distributed Systems ID2201

Replication in Distributed Systems

Byzantine Fault Tolerance

Zyzzyva: Speculative Byzantine Fault Tolerance

Tradeoffs in Byzantine-Fault-Tolerant State-Machine-Replication Protocol Design

Transactions Between Distributed Ledgers

Today: Fault Tolerance. Failure Masking by Redundancy

EECS 591 DISTRIBUTED SYSTEMS. Manos Kapritsos Fall 2018

Prophecy: Using History for High Throughput Fault Tolerance

Basic vs. Reliable Multicast

When You Don t Trust Clients: Byzantine Proposer Fast Paxos

Byzantine Fault-Tolerance with Commutative Commands

Towards Recoverable Hybrid Byzantine Consensus

Proactive and Reactive View Change for Fault Tolerant Byzantine Agreement

ABSTRACT. Web Service Atomic Transaction (WS-AT) is a standard used to implement distributed

The Next 700 BFT Protocols

International Journal of Advanced Research in Computer Science and Software Engineering

Practical Byzantine Fault Tolerance. Castro and Liskov SOSP 99

XFT: Practical Fault Tolerance beyond Crashes

PBFT: A Byzantine Renaissance. The Setup. What could possibly go wrong? The General Idea. Practical Byzantine Fault-Tolerance (CL99, CL00)

or? Paxos: Fun Facts Quorum Quorum: Primary Copy vs. Majority Quorum: Primary Copy vs. Majority

Byzantine Fault Tolerance for Distributed Systems

ZZ: Cheap Practical BFT using Virtualization

Introduction to Distributed Systems Seif Haridi

Practical Byzantine Fault Tolerance and Proactive Recovery

Practical Byzantine Fault Tolerance (The Byzantine Generals Problem)

Key-value store with eventual consistency without trusting individual nodes

Byzantine Techniques

ByzID: Byzantine Fault Tolerance from Intrusion Detection

XFT: Practical Fault Tolerance Beyond Crashes

ZHT: Const Eventual Consistency Support For ZHT. Group Member: Shukun Xie Ran Xin

Evaluating BFT Protocols for Spire

APPLICATION AWARE FOR BYZANTINE FAULT TOLERANCE

Fault Tolerance. Distributed Software Systems. Definitions

Byzantine Fault Tolerance

Byzantine Fault Tolerant Raft

ZZ and the Art of Practical BFT

Practical Byzantine Fault Tolerance

Practical Byzantine Fault Tolerance Using Fewer than 3f+1 Active Replicas

TAPIR. By Irene Zhang, Naveen Sharma, Adriana Szekeres, Arvind Krishnamurthy, and Dan Ports Presented by Todd Charlton

A SECURE DOMAIN NAME SYSTEM BASED ON INTRUSION TOLERANCE

arxiv: v2 [cs.dc] 12 Sep 2017

The Long March of BFT. Weird Things Happen in Distributed Systems. A specter is haunting the system s community... A hierarchy of failure models

Today: Fault Tolerance. Replica Management

Toward Intrusion Tolerant Clouds

BFTCloud: A Byzantine Fault Tolerance Framework for Voluntary-Resource Cloud Computing

CS 138: Practical Byzantine Consensus. CS 138 XX 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Distributed Consensus: Making Impossible Possible

Toward Open Source Intrusion Tolerant SCADA. Trevor Aron JR Charles Akshay Srivatsan Mentor: Marco Platania

Recall our 2PC commit problem. Recall our 2PC commit problem. Doing failover correctly isn t easy. Consensus I. FLP Impossibility, Paxos

Velisarios: Byzantine Fault-Tolerant Protocols Powered by Coq

Byzantine Fault Tolerant Coordination for Web Services Atomic Transactions

All about Eve: Execute-Verify Replication for Multi-Core Servers

Distributed Systems 11. Consensus. Paul Krzyzanowski

Alternative Consensus

The Next 700 BFT Protocols

ByTAM: a Byzantine Fault Tolerant Adaptation Manager

arxiv:cs/ v3 [cs.dc] 1 Aug 2007

Paxos and Replication. Dan Ports, CSEP 552

Parsimonious Asynchronous Byzantine-Fault-Tolerant Atomic Broadcast

RailCloud: A Reliable PaaS Cloud for Railway Applications

Global atomicity. Such distributed atomicity is called global atomicity A protocol designed to enforce global atomicity is called commit protocol

ZZ and the Art of Practical BFT Execution

UpRight Cluster Services

Fault Tolerance. Distributed Systems. September 2002

Machine Fault Tolerance for Reliable Datacenter Systems

Distributed Systems. 09. State Machine Replication & Virtual Synchrony. Paul Krzyzanowski. Rutgers University. Fall Paul Krzyzanowski

ZZ and the Art of Practical BFT Execution

CS State Machine Replication

CSE 5306 Distributed Systems. Fault Tolerance

Zyzzyva: Speculative Byzantine Fault Tolerance

Semi-Passive Replication in the Presence of Byzantine Faults

ZZ and the Art of Practical BFT Execution

Transcription:

Robust BFT Protocols Sonia Ben Mokhtar, LIRIS, CNRS, Lyon Joint work with Pierre Louis Aublin, Grenoble university Vivien Quéma, Grenoble INP 18/10/2013

Who am I? CNRS reseacher, LIRIS lab, DRIM research group Fault-tolerant distributed systems Byzantine fault tolerance State machine replication (BFT)(e.g., robust BFT[ICDCS'13]) Byzantine fault detection Accountability (e.g., accountable mobile systems, performance issues in accountable systems[ongoing]) Robustness against selfish behavior Game theory (e.g., RR spam filtering[srds'10], RR anonymous communication[icdcs'13], RR live streaming[ongoing])

Who am I? CNRS reseacher, LIRIS lab, DRIM research group. Fault-tolerant distributed systems Byzantine fault tolerance State machine replication (BFT)(e.g., robust BFT[ICDCS'13]) Byzantine fault detection Accountability (e.g., accountable mobile systems, performance issues in accountable systems[ongoing]) Robustness against selfish behavior Game theory (e.g., RR spam filtering[srds'10], RR anonymous communication[icdcs'13], RR live streaming[ongoing]) Privacy (mobile systems, reputation/recommender systems, systems enforcing accountability)

Outline What is BFT? BFT under attack: the robustness problem Existing robust BFT protocols Can we do better? 4

State machine replication Clients 5

State machine replication Clients 6

State machine replication Clients 7

State machine replication Clients (1) Place copies of a deterministic state machine on multiple, independent servers. 8

State machine replication Clients (2) Receive client requests (inputs to the state machine). 9

State machine replication Clients Agreement protocol (3) Define an ordering for the inputs and execute them in the chosen order on each server. 10

State machine replication Clients Agreement protocol (4) Respond to clients with the output from the state machine. 11

BFT state machine replication BFT = Byzantine Fault Tolerance The term Byzantine dates back to the seminal paper by Lamport, Shostak, Pease: The Byzantine Generals Problem, ACM TPLS, 1982. Byzantine failure = arbitrary failure + crash-stop malicious BFT state machine replication = state machine replication that tolerates Byzantine failures 12

BFT evolution Lamport, Shostak, Pease: The Byzantine generals problem, 1982 Castro, Liskov: Practical BFT [OSDI'99] BFT in 2011 (a decade+ later) Efficient BFT: Q/U [SOSP 05], HQ [OSDI 06], Zyzzyva [SOSP 07], Chain and Quorum [EuroSys 10] Cheap BFT: zz [Umass Eurosys'11] Robust BFT: Aardvark [NSDI'09], Spinning [SRDS'09], Prime [DSN'08], RBFT[ICDCS'13] 13

BFT with an example: PBFT Message-passing with unreliable communication links Byzantine faults Any number of clients Less than 1/3 of replicas are faulty (optimal) Cryptographic techniques cannot be violated Eventual synchrony 14

PBFT: protocol steps Client sends a request to the primary 15

PBFT: protocol steps The primary assigns a seqno to the request 16

PBFT: protocol steps Replicas agree on the assigned seqno 17

PBFT: protocol steps Replicas know 2f+1 replicas that agreed on the proposed seqno 18

PBFT: protocol steps Replicas execute the request and reply to the 19 client

Outline What is BFT? BFT under attack: the robustness problem Existing robust BFT protocols Can we do better? 20

BFT under attack: the robustness problem BFT protocols do not tolerate Byzantine faults very well [NSDI'09] System Peak throughput (req/s) PBFT 61710 0 Q/U 23850 0 HQ 7629 N/A Zyzzyva 65999 0 Throughput under attack (req/s) 21

Outline What is BFT? BFT under attack: the robustness problem Existing robust BFT protocols Can we do better? 22

Robust BFT state machine replication Guarantees a lower bound on performance during uncivil executions Uncivil executions: Synchronous network Up to f servers and any number of clients are Byzantine Lower bound: k% of the theoretical maximum (with the same workload) k should be as high as possible 23

Malicious primary 24

Malicious primary D E L A Y 25

Aardvark [NSDI'09] Principle: Regular primary changes Increasing throughput expectations Monitoring of the current throughput Change the primary when the current throughput is below the expected thourhgput 26

Aardvark A malicious primary is bounded in: The delay it can add to requests The amount of time it acts as a primary Only works under constant load Attack 27

Aardvark under fluctuating load 28

Spinning [SRDS'09] Principle: Each primary orders a fixed number of requests The primary is changed if no request is ordered before a timeout r1 r2 r3 r4 29

Spinning Spinning throughput with a malicious primary that delays client requests by up to timeout: 1/(1+F*timeout)*t peak r1 r2 r3 r4 timeout 30

Prime [DSN'08] Principle: The primary periodically sends messages of the same size in the network (fixed workload) Replicas monitor the primary Distributed pre-ordering phase Leader-based global ordering phase 31

Prime The latency of any update initiated by a correct client is bounded Only if the network guarantees bounded variance Distributed pre-ordering phase Leader-based global ordering phase D E L A Y 32

Outline What is BFT? BFT under attack: the robustness problem Existing robust BFT protocols Can we do better? 33

What is wrong with existing protocols? The primary is a single point of failure Aardvark and Prime: monitor the primary Spinning: bound the time spent with a faulty primary Robustness conditions are strong: Aardvark: constant load Prime: bounded variance 34

What is wrong with existing protocols? The primary is a single point of failure Aardvark and Prime: monitor the primary Spinning: bound the time spent with a faulty primary Robustness conditions are strong: Aardvark: constant load Prime: bounded variance Question: Can we run multiple instances of a protocol simultaneously? 35

The RBFT protocol Clients Master Protocol Instance Node 0 Node 1 Node 2 Node 3 Primary Replica Replica Replica Backup Protocol Instance Replica Primary Replica Replica 36

The RBFT protocol Master Protocol Instance Node 0 Node 1 Node 2 Node 3 Primary Primary Backup Protocol Instance Primary Primary Primary change 37

RBFT Redundant Agreement Client REQUEST PROPAGATE PRE-PREPARE PREPARE COMMIT PRE-PREPARE PREPARE COMMIT REPLY Node 0 Node 1 Node 2 Node 3 3 4 5 1 2 3 4 5 6 Redundant agreement performed by the replicas 38

RBFT Node Design 39

RBFT Performance 40

RBFT under attack 41

Conclusion We need BFT protocols (to tolerate arbitrary faults) Current BFT protocols are either: Robust (e.g., RBFT) or Efficient (e.g., Chain, Quorum) Future work Dynamic switching: can we design a BFT protocol that smartly combines robustness and efficiency? 42

Thank you! 43