426

Practical Verified Computation with Streaming Interactive Proofs

Abstract

When delegating computation to a service provider, as in the cloud computing paradigm, we seek some reassurance that the output is correct and complete. Yet recomputing the output as a check is inefficient and expensive, and we may not even be able to store all the data locally. We are therefore interested in what can be validated by a streaming (sublinear space) user, who cannot store the full input, or perform the full computation herself. Our aim in this work is to advance a recent line of work on "proof systems" in which the service provider {\em proves} the correctness of its output to a user. The goal is to minimize the time and space costs of both parties in generating and checking the proof. Only very recently have there been attempts to implement such proof systems, and thus far these have been quite limited in functionality. Here, our approach is two-fold. First, we describe a carefully engineered implementation of what is currently the most efficient general purpose construction for arbitrary computations (streaming or otherwise), due to Goldwasser, Kalai, and Rothblum. This requires several new insights and enhancements to move the methodology from a theoretical result to a practical possibility. Second, we describe very general techniques that achieve genuine scalability for protocols fine-tuned for specific important problems in streaming and database processing. We argue that even if general-purpose methods improve, fine-tuned protocols will remain valuable in real-world settings for key problems, and hence special attention to specific problems is warranted regardless.

View on arXiv
Comments on this paper