Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Verifiable Computing

Verifiable computation schemes enable a client to outsource the computation of a function F on various inputs to an untrusted worker, and then verify the correctness of the returned results. Critically, the outsourcing and verification procedures must be more efficient than performing the computation itself.

In more detail, we introduce and formalize the notion of Verifiable Computation, which enables a computationally weak client to "outsource" the computation of an arbitrary function F on various dynamically-chosen inputs x_1,...,x_k to one or more workers. The workers return the result of the function evaluation, e.g., y_i=F(x_i), as well as a proof that the computation of F was carried out correctly on the given value x_i. The primary constraint is that the verification of the proof should require substantially less computational effort than computing F(x_i) from scratch.


  • August 5, 2013 - The Pinocchio source code is now available via CodePlex, which supports faster updates and external contributions.
  • June 3, 2013 - Coverage from the MIT Technology Review.
  • May 16, 2013 - The Pinocchio source code is now available!

Rosario Gennaro              Craig Gentry                               

Rosario Gennaro                  Craig Gentry                Mariana Raykova               Vinod Vaikuntanathan