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.