Star 0

Abstract

Cloud computing sparked interest in Verifiable Computation (VC) protocols, which allow a weak client to securely outsource computations to remote parties. Recent improvements in theory and implementation have dramatically reduced the client's cost to verify the correctness of results, but the overhead to produce proofs largely remains impractical. Geppetto introduces a series of complementary techniques for reducing prover overhead and increasing prover flexibility. With MultiQAPs, Geppetto reduces the cost of sharing state between computations (e.g., for MapReduce) or within a single computation by up to two orders of magnitude. Via a careful instantiation of cryptographic primitives, Geppetto also brings down the cost of verifying outsourced cryptographic computations (e.g., verifiably computing on signed data); combining these techniques with Geppetto's notion of bounded proof bootstrapping, Geppetto improves on prior bootstrapped systems by several orders of magnitude. As a result, Geppetto scales to programs that are larger than prior work by an order of magntitude while still producing a constant-sized proof. Geppetto also supports qualitatively new properties like verifying the correct execution of proprietary (i.e., secret) algorithms. Finally, Geppetto's use of energy-saving circuits brings the prover's costs more in line with the program's actual (rather than worst-case) execution time. Geppetto is implemented in a full-fledged, scalable compiler that consumes LLVM code generated from a variety of apps, as well as a large cryptographic library.

Slides