Abstract
In this paper we suggest the notion of self-testing/correcting protocols. The work initiates the merge of distributed computing and the area of “program checking” introduced by Blum, and specifically employs extended notions from the work of Blum, Luby and Rubinfeld. In this setting, given a protocol P (a collection of programs on a network of n processors) which allegedly implements a distributed function f, a self- tester for f is a (simpler) protocol which makes calls to P to estimate the probability that P when executed in a given environment is faulty (i.e., P and f differ in some of the outputs). A self-correcting protocol is another protocol which allows for the computation of f correctly on every input (with high probability) as long as P in the same type of environment is not too faulty.
We first consider self-testing/correcting under a basic form of environ- mental malfunction, that of crash failures, and design a self-tester/cor- rector pair for protocols implementing the agreement “function.” Many distributed protocols can be designed “on top” of this primitive, and can be self tested/corrected whenever it can be. We then consider self- testing/ correcting under gossiping failures, and present a generic self- testing/ correcting pair that is privacy-preserving. The notion is basic in protocols where secrecy is an issue. A self-corrector for P is privacy- preserving if it is private (with overwhelming probability) whenever P is private (with overwhelming probability).
In the process of our study, we identify the basic components of a protocol self-testing “utility library,” which allows for the safe bootstrapping of the self-testing/correcting process.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Y. Afek, S. Kutten and M. Yung, “The Local Detection Paradigm and Its Applications to Self-Stabilization.” TCS 186(1-2), pp. 199–229 (1997).
L. Adleman and K. Kompella. “Fast Checkers for Cryptography.” In CRYPTO’ 90, pp. 515–529.
B. Awerbuch, B. Patt-Shamir and G. Varghese, “Self Stabilizing by local Checking and Correction.” In FOCS’ 91, pp. 268–277.
M. Blum, “Designing programs to check their work.” Communications of the ACM.
P. Berman and A. Bharali, “Quick Atomic Broadcast.” In WDAG’ 93.
M. Blum, W. Evans, P. Gemmell, S. Kannan, and M. Naor. “Checking the Correctness of Memories.” In FOCS’ 91, pp. 90–99.
D. Beaver and J. Feigenbaum, ”Hiding Instances in Multioracle Queries.” In STACS’ 90, pp. 37–48.
M. Bellare, J. Garay and T. Rabin. “Batch Verification with Applications to Cryptography and Checking” (invited paper). In LATIN’ 98, pp. 170–191.
M. Ben-Or, S. Goldwasser, and A. Wigderson, “Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation.” In STOC’ 88, pp. 1–10.
M. Blum and S. Kannan, “Designing programs to check their work.” In STOC’ 89, pp. 86–97.
M. Blum, M. Luby, and R. Rubinfeld, “Self-Testing/Correcting with Applications to Numerical Problems.” In STOC’ 90, pp. 73–83.
D. Chaum, C. Crepeau and I. Damgard. “Multiparty Unconditionally Secure Protocols.” In STOC’ 88, pp. 11–19.
B. Chor, M. Merritt, and D. Shmoys, “Simple Constant-Time Consensus Protocols in Realistic Failure Models.” In PODC’ 85, pp. 152–162.
D. Dolev, “The Byzantine Generals Strike Again,” Journal of Algorithms, 3(1):14–30, January 1982.
S. Dolev, A. Israeli and S. Moran, “Self Stabilization of Dynamic Systems assuming only Read/Write Atomicity.” In PODC’ 90, pp. 103–117.
C. Dwork and Y. Moses, “Knowledge and common knowledge in a Byzantine environment: crash failures.” Information and Computation 88, pp. 156–186 (1990).
F. Ergun, S. Ravi Kumar and R. Rubinfeld. “Approximate Checking of Polynomials and Functional Equations.” In FOCS’ 96, pp. 592–601.
Y. Frankel, P. Gemmell and M. Yung. “Witness-Based Cryptographic Program Checking and Robust Function Sharing.” In STOC’ 96, pp. 499–508.
P. Gemmell, R. Lipton, R. Rubinfeld, M. Sudan, and A. Wigderson. “Self-testing/ correcting for polynomials and for approximate functions.“ In STOC’ 91, pp. 32–42.
S. Kannan, “Program Checkers for Algebraic Problems.” Ph.D. Thesis, ICSI TR-89-064, December 1989.
R. Karp, M. Luby, and N. Madras, “Monte-Carlo Approximation Algorithms for Enumeration Problems.” Journal of Algorithms 10, pp. 429–448 (1989).
S. Katz and K. Perry, “Self-Stabilizing Extensions for Message-Passing Systems.” In PODC’ 90, pp. 91–101.
R. Lipton, “New Directions in Testing,” DIMACS Series in Discrete Mathematics and Theoretical Computer Science, Vol. 2 (1991), pp. 191–202.
L. Lamport, R.E. Shostak and M. Pease, “The Byzantine Generals Problem,” ACM ToPLaS, Vol. 4,No. 3 (1982), pp. 382–401.
R. Rubinfeld, “A Mathematical Theory of Self-Checking, Self-Testing and Self-Correcting Programs.” Ph.D. Thesis, ICSI TR-90-054, October 1990.
R. Rubinfeld. “On the Robustness of Functional Equations.” In FOCS’ 94, pp. 2–13.
R. Rubinfeld. “Designing Checkers for Programs that Run in Parallel.” Algorithmica 15(4), pp. 287–301, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Franklin, M., Garay, J.A., Yung, M. (1999). Self-Testing/Correcting Protocols. In: Jayanti, P. (eds) Distributed Computing. DISC 1999. Lecture Notes in Computer Science, vol 1693. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48169-9_19
Download citation
DOI: https://doi.org/10.1007/3-540-48169-9_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66531-1
Online ISBN: 978-3-540-48169-0
eBook Packages: Springer Book Archive