Consensus Flashcards

1
Q

What are the types of unreliability in distributed systems?

A

Link failures, processor crashes, and Byzantine failures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a link failure?

A

A link failure occurs when a communication link becomes inactive, potentially disconnecting the network and causing messages to not be delivered.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is a processor crash?

A

A processor crash happens when a processor stops functioning and disappears from the network, ceasing to send or receive messages.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are Byzantine failures?

A

Byzantine failures involve processors sending arbitrary or misleading messages, making consensus difficult. Named after the Byzantine Generals problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the Byzantine Generals problem?

A

A problem illustrating the difficulty of reaching consensus with unreliable communication, where generals must agree to attack but messages may fail to deliver.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are the properties of the consensus problem?

A

Validity, Agreement, Termination, and Integrity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is the Validity property in consensus?

A

Any value decided must be a value proposed. If all processes start with the same value, that value must be the one decided.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the Agreement property in consensus?

A

No two correct processes decide differently. All non-faulty processes must agree on the same value.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the Termination property in consensus?

A

Every correct process eventually decides. The algorithm must ensure that all processes reach a decision in a finite amount of time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the Integrity property in consensus?

A

No process decides twice. Once a process decides on a value, it cannot change its decision.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Is consensus possible in asynchronous systems with failures?

A

No, it is impossible to reach consensus in asynchronous systems with even a single failure (link, crash, or Byzantine).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Is consensus possible in synchronous systems with failures?

A

Yes, in synchronous systems, consensus can tolerate crash and Byzantine failures, but not link failures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a simple algorithm for consensus?

A

Each processor broadcasts its input to all processors and decides on the minimum value. Works in a single round if there are no failures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Why does the simple consensus algorithm fail with crash or link failures?

A

If a processor crashes or a link fails, not all values are broadcast, leading to inconsistent decisions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Why does the simple consensus algorithm fail with Byzantine failures?

A

Faulty processors may send arbitrary values, violating the validity property.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is an f-resilient consensus algorithm?

A

An algorithm that can tolerate up to f crash failures, requiring f+1 rounds of information exchange.

17
Q

How does an f-resilient consensus algorithm work?

A

Processors broadcast their values in each round, and after f+1 rounds, they decide on the minimum value received.

18
Q

Is consensus possible with Byzantine failures if more than one-third of processors are faulty?

A

No, no f-resilient algorithm exists for n processes if more than one-third of the processors are Byzantine.

19
Q

What is the role of blockchains in consensus?

A

Blockchains provide a decentralized and fault-tolerant way to achieve consensus, suitable for applications requiring high reliability, such as financial transactions.