4

I am reading the "Reaching Agreement in the Presence of Faults", M. Pease et al and trying to understand their proof for the $n \geq 3m+1$ case.

In the induction step $m \gt 0$ it says the following:

... Any other set satisfying these requirements, moreover, must contain a nonfaulty processor (since it must be of size $\gt \frac{(n + m)}{2}$, and $n \ge 3m + 1$) and must therefore also yield $V_q$ as the common value. The algorithm thus terminates at step (1), and $p$ records $V_q$ and $q$ as required...

This is not obvious to me and seems wrong. For example, assume $Q$ is a set of processors of length $\ \ge \frac{n+m}{2}$ where only one is a faulty processor $f$ and rest are nonfaulty. Now we consider all strings $w$ of length $\le m$ of this set and in particular $\sigma_p(pfq)$. Since $f$ is a faulty processor it can return any value, not necessarily $V_q$, thus there cannot be a common value between all $w$ strings. This means that any set $Q$ that contains at least one nonfaulty processor cannot be used at all.

Is my understanding wrong?

sadolit
  • 41
  • 1

2 Answers2

1

What is important about the paragraph above are the few lines that proceed it in the proof. This is all under the context of "First note that if q is nonfaulty". If we know that q is nonfaulty, then we know that q has sent the same value of its internal state, Vq, to every processor. Therefore, if we have a subset of processors that meet the requirements of all reporting to p that all of them have received the same value from everyone else in the subset for Vq, and the subset includes at least 1 nonfaulty processor and we are in the scenario that q is nonfaulty, then we know no matter which subset this happens to be, there can only be one value of Vq which could possibly be used in generating such a set (i.e. the true internal state of q)

D.W.
  • 167,959
  • 22
  • 232
  • 500
cypher
  • 11
  • 1
0

The word "requirements" is the key to solve the question. the requirements mean: (1) some subset Q ofPofsize >(n + m)/2 (2) some value v,op(pwq) = v for each string w over Q of length _<m, p records v. The second requirement is very important, which solves your question.