There is a 1:1 correspondence between Interactive Consensus conditions and Error-Correcting Codes.
You have 27 coins, 1 of which is a different weight. Using a balance scale with 2 pans, how can you determine which coin is different in only 4 weighings?
Generalize this to N coins.
Asynchronous consensus is impossible (Fischer, Lynch, and Paterson 1983)
3 circumventions:
condition-based approach: place restrictions on the input to processes
Assume a likely case:
Number of symbols that differ:
The above two words have a Hamming distance of 3.
Place every possible word in a binary hypercube:
\(\ell_1\) distance is the Hamming distance
Naively send message 3×
Hamming distance \( \geq 2 \).
8 code words \( \implies \) 3 bits of information sent
A code \(C\) is \( (f_v, f_c) \)-error/erasure decoding iff its minimal hamming distance is \( > 2f_v + f_c \)
The original, Hamming(7,4), had a minimal hamming distance of 3:
{conditions that allow IC to be solved despite \(f_c\) crashes and \(f_e\) value domain faults}
\(\wr\)
{ECCs capable of recovering from \(f_c\) erasures and \(f_e\) corruptions}
[ \( C \) \( \implies \) consensus despite \(f_c\) crashes ]
\( \Updownarrow \)
\(C\)’s Hamming distance is \(f_c+1\)
[ \( C \) \( \implies \) consensus despite \(f_b\) Byzantine faults ]
\( \Updownarrow \)
\(C\)’s Hamming distance is \(2f_b+1\)
Requirements that make an ECC valid ∼ conditions needed to solve IC
FLP \( \implies \) no perfect codes can tolerate erasure failures
agreement problem & conditions
\( \downarrow \)
algorithm to solve problem
Form a graph of input vectors, \( G_{f_c,f_v}^C\):
Definition 3.1 & Theorem 3.4: An agreement problem \( (C, f_c,f_v)\) can be solved iff \( \exists h : \) h is constant on every connected component of \( G_{f_c,f_v}^C \)
See 2.1 and 3. \(d(a, b)\) is the Hamming distance between \( a \) and \( b \). \( C \) are the conditions: The set of assumed possible input vectors.