Verifiable Computation allow a client to securely outsource computations to a powerful
but untrusted server, and then to verify their results based on some proof produced by
the server. Recent cryptographic constructions have dramatically reduced the
client's cost to verify proofs, but the server's overhead to produce those proofs remains largely impractical.
In my talk, I will present Geppetto: a compiler & runtime system that consumes LLVM code generated from a variety of source C programs and libraries, and produces code and keys for proving and verifying their correct execution.
Geppetto introduces complementary techniques for reducing prover overhead and increasing prover flexibility. It lowers the cost of sharing state between computations or within a single computation. Via a careful choice of cryptographic primitives, it supports bounded proof bootstrapping, improving on prior systems by up to five orders of magnitude, albeit at some cost in universality. Geppetto can also efficiently verify the execution of proprietary (i.e., secret) algorithms.
This is based on joint work with Craig Costello, Antoine Delignat-Lavaud, Jon Howell, Chantal Keller, Markulf Kohlweiss, Benjamin Kreuter, Vincent Laporte, Michael Naehrig, Bryan Parno, Samee Zahur.
|