Abstract:
A small modification to the interactive convergence clock synchronization algorithm allows it to tolerate a larger number of simple faults than the standard algorithm, without reducing its ability to tolerate arbitrary or "Byzantine " faults. Because the extended caseanalysis required by the new fault model complicates the already intricate argument for correctness of the algorithm, it has been subjected to mechanically-checked formal verification. The fault model examined is similar to the "hybrid" one previously used for the problem of distributed consensus: in addition to arbitrary faults, we also admit symmetric (i.e., consistent) and manifest (i.e., detectable) faults. With n processors, the modified algorithm can withstand a arbitrary, s symmetric, and m manifest faults simultaneously, provided n? 3a + 2s + m. A further extension to the fault model includes link faults with bound n? 3a + 2s + m + l where l is the maximum, over all pairs of processors, of the number of processors that have faulty links to one or other of the pair. The mechanically-checked formal verification of the modified algorithm was achieved by extending one for the classical Interactive Convergence algorithm, and was accomplished relatively easily. A mechanicallychecked formal specification and verification is a reusable intellectual resource whose initial cost is amply repaid by the support it provides for inexpensive and reliable investigation of modified assumptions and algorithms such as those reported here.
Citations
|
806
|
The Byzantine generals problem
– Lamport, Shostak, et al.
- 1982
|
|
390
|
PVS: A prototype verification system
– Owre, Shankar, et al.
- 1992
|
|
175
|
Synchronizing clocks in the presence of faults
– Lamport, Melliar-Smith
- 1985
|
|
87
|
A New Fault-Tolerant Algorithm for Clock Synchronization
– Welch, Lynch
- 1988
|
|
77
|
Reaching Approximate Agreement in the Presence of Faults
– Dolev, Lynch, et al.
- 1986
|
|
74
|
Understanding Protocols for Byzantine Clock Synchronization
– Schneider
- 1987
|
|
68
|
The MAFT architecture for distributed fault tolerance
– Kieckhafer, Walter, et al.
- 1988
|
|
61
|
Interactive Consistency with Multiple Failure Modes
– Thambidurai, Park
- 1988
|
|
40
|
A formally verified algorithm for interactive consistency under a hybrid fault model
– Lincoln, Rushby
- 1993
|
|
38
|
Consensus with Dual Failure Modes
– Meyer, Pradhan
- 1987
|
|
38
|
Formal verification of algorithms for critical systems
– Rushby, Henke
- 1993
|
|
34
|
Distributed agreement in the presence of processor and communication faults
– Perry, Toueg
- 1986
|
|
26
|
Verification of fault-tolerant clock synchronization systems
– Miner
- 1993
|
|
22
|
Mechanical verification of a generalized protocol for Byzantine fault-tolerant clock synchronization
– Shankar
|
|
22
|
A continuum of failure models for distributed computing
– Garay, Perry
- 1992
|
|
21
|
An introduction to formal specification and verification using Ehdm
– Rushby, Henke, et al.
- 1991
|
|
18
|
Formal verification of an algorithm for interactive consistency under a hybrid fault model
– Lincoln, Rushby
- 1993
|
|
16
|
Verifying the Interactive Convergence clock-synchronization algorithm using the Boyer-Moore prover
– Young
- 1992
|
|
12
|
Formal verification of the Interactive Convergence clock synchronization algorithm using Ehdm
– Rushby, Henke
- 1989
|
|
3
|
Mechanical verification of a schematic Byzantine fault-tolerant clock synchronization algorithm
– Shankar
- 1991
|
|
2
|
Economic approach to fault-tolerant synchronization
– Infis, Moore
- 1988
|
|
2
|
Experimental validation of clock synchronization algorithms
– Palumbo, Graham
- 1992
|
|
1
|
A formally verified module to support Byzantine fault-tolerant clock synchronization
– Liu, Rushby
- 1993
|
|
1
|
Experimental didation of clock synchronization algorithms
– Palumbo, Graham
- 1992
|