ArticleslgStudy

computer science

Verifiable computing

Verifiable computing is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Verifiable computing rather than just read about it. In short: Verifiable computing (or verified computation or verified computing) enables a computer to offload the computation of some function, to other perhaps untrusted clients, while maintaining verifiable results. The other clients evaluate the function and return the result with a proof that the computation of the function was carried out correctly.

Key takeaways

  • Verifiable computing belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Verifiable computing to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Verifiable computing from memory before moving on to harder problems.

Reference excerpt

Verifiable computing (or verified computation or verified computing) enables a computer to offload the computation of some function, to other perhaps untrusted clients, while maintaining verifiable results. The other clients evaluate the function and return the result with a proof that the computation of the function was carried out correctly. The introduction of this notion came as a result of the increasingly common phenomenon of "outsourcing" computation to untrusted users in projects such as SETI@home and also to the growing desire to enable computationally-weak devices to outsource computational tasks to a more powerful computation service, as in cloud computing. The concept dates back to work by Babai et al., and has been studied under various terms, including "checking computations" (Babai et al.), "delegating computations", "certified computation", and verifiable computing. The term verifiable computing itself was formalized by Rosario Gennaro, Craig Gentry, and Bryan Parno, and echoes Micali's "certified computation".

Motivation and overview The growing desire to outsource computational tasks from a relatively weak computational device (client) to a more powerful computation services (worker), and the problem of dishonest workers who modify their client's software to return plausible results without performing the actual work motivated the formalization of the notion of Verifiable Computation. Verifiable computing is not only concerned with getting the result of the outsourced function on the client's input and the proof of its correctness, but also with the client being able to verify the proof with significantly less computational effort than computing the function from scratch. Considerable attention has been devoted in verifying the computation of functions performed by untrusted workers including the use of secure coprocessors, Trusted Platform Modules (TPMs), interactive proofs, probabilistically checkable proofs, efficient arguments, and Micali's CS proofs. These verifications are either interactive which require the client to interact with the worker to verify the correctness proof, or are non-interactive protocols which can be proven in the random oracle model.

Verification by replication The largest verified computation (SETI@home) uses verification by replication. The SETI@home verification process involves one client machine and many worker machines. The client machine sends identical workunits to multiple computers (at least 2). When not enough results are returned in a reasonable amount of time—due to machines accidentally turned off, communication breakdowns, etc.—or the results do not agree—due to computation errors, cheating by submitting false data without actually doing the work, etc.—then the client machine sends more identical workunits to other worker machines. Once a minimum quorum (often 2) of the results agree, then the client assumes those results (and other identical results for that workunit) are correct. The client grants credit to all machines that returned the correct results.

Verifiable computation Gennaro et al. defined the notion of verifiable computation scheme as a protocol between two polynomial time parties to collaborate on the computation of a function F: {0,1}n → {0,1}m. This scheme consists of three main phases:

Preprocessing. This stage is performed once by the client in order to calculate some auxiliary information associated with F. Part of this information is public to be shared with the worker while the rest is private and kept with the client. Input preparation. In this stage, the client calculates some auxiliary information about the input of the function. Part of this information is public while the rest is private and kept with the client. The public information is sent to the worker to compute F on the input data. Output computation and verification. In this stage, the worker uses the public information associated with the function F and the input, which are calculated in the previous two phases, to compute an encoded output of the function F on the provided input. This result is then returned to the client to verify its correctness by computing the actual value of the output by decoding the result returned by the worker using the private information calculated in the previous phases. The defined notion of verifiable computation scheme minimizes the interaction between the client and the worker into exactly two messages, where a single message is sent from each party to the other party during the different phases of the protocol.

An example scheme based on fully homomorphic encryption Gennaro et al. defined a verifiable computation scheme for any function F using Yao's garbled circuit combined with a fully homomorphic encryption system. This verifiable computation scheme VC is defined as follows: VC = (KeyGen, ProbGen, Compute, Verify) consists of four algorithms as follows:

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Verifiable computing

Start with the simplest possible case. Write down what Verifiable computing claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Verifiable computing before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Verifiable computing ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Verifiable computing

In research
Verifiable computing appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Verifiable computing in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Verifiable computing is common in secondary-school and first-year university syllabi. It links to neighbouring topics Distributed computing, Secure communication, so understanding it makes those chapters shorter.
In everyday life
Look for Verifiable computing outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Verifiable computing” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Verifiable computing in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Verifiable computing means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Verifiable computing out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Verifiable computing in simple terms?

Verifiable computing (or verified computation or verified computing) enables a computer to offload the computation of some function, to other perhaps untrusted clients, while maintaining verifiable results. The other clients evaluate the function and return the result with a proof that the computat…

Why does Verifiable computing matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Verifiable computing?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Verifiable computing.

Tags

  • Distributed computing
  • Secure communication

Keep exploring