Cloud computing enables computationally limited parties to outsource the storage of, and computation on, massive amounts of data. Such outsourced computations, however, might be performed incorrectly, due to implementation errors or malicious behavior. Protocols for verifiable computation allow an untrusted server performing such computations to also provide succinct proofs that the returned results are correct. Drawing on expertise from cryptography, programming languages, databases, and systems, this project develops a novel architecture (Apollo) for automatically producing scalable verifiable-computation protocols. Apollo has the potential to speed up verifiable computations by orders of magnitude while at the same time scaling to large datasets.
This research focuses on cryptographic "gadgets" suited for verifiable computation in different settings, as well as programming languages and type systems for easily expressing verifiable computation in terms of these lower-level gadgets. A major goal of the project is to develop a working prototype of a verifiable SQL database. Results of this research will be disseminated to a wide audience through publications and open-source implementations, and will be integrated into a graduate course on cloud computing security at the University of Maryland.
|