Pinocchio: Nearly Practical Verifiable Computation.

To instill greater confidence in computations outsourced to the cloud, clients should be able to verify the correctness of the results returned. To this end, we introduce Pinocchio, a built system for efficiently verifying general computations while relying only on cryptographic assumptions. With Pi...

Full description

Bibliographic Details
Published in:Communications of the ACM Vol. 59; no. 2; pp. 103 - 113
Main Authors: Parno, Bryan, Howell, Jon, Gentry, Craig, Raykova, Mariana
Format: Article
Published: Association for Computing Machinery Feb2016
Subjects:
Online Access:View this record in EBSCOhost
fields @attributes:
  recordID: 1
pdfLink:
plink: https://search.ebscohost.com/login.aspx?direct=true&db=hlh&AN=112736853&site=ehost-live
header:
  @attributes:
    shortDbName: hlh
    uiTerm: 112736853
    longDbName: Humanities International Complete
    uiTag: AN
  controlInfo:
    bkinfo:
    jinfo:
      jid:
        00010782
        ACM
      jtl: Communications of the ACM
      issn: 00010782
      maglogo: N
    pubinfo:
      dt: Feb2016
      vid: 59
      iid: 2
      pid: 68
      pub: Association for Computing Machinery
    artinfo:
      ui:
        112736853
        10.1145/2856449
      ppf: 103
      ppct: 10
      formats:
      tig:
        atl: Pinocchio: Nearly Practical Verifiable Computation.
      aug:
        au:
          Parno, Bryan
          Howell, Jon
          Gentry, Craig
          Raykova, Mariana
        affil:
          Microsoft Research.
          IBM Research.
          SRI International.
      su:
        Verification of computer systems
        Contracting out
        Public key cryptography
        Industrial efficiency
        Zero-knowledge proofs
        Compilers (Computer programs)
      sug:
        subj:
          Verification of computer systems
          Contracting out
          Public key cryptography
          Industrial efficiency
          Zero-knowledge proofs
          Compilers (Computer programs)
      ab: To instill greater confidence in computations outsourced to the cloud, clients should be able to verify the correctness of the results returned. To this end, we introduce Pinocchio, a built system for efficiently verifying general computations while relying only on cryptographic assumptions. With Pinocchio, the client creates a public evaluation key to describe her computation; this setup is proportional to evaluating the computation once. The worker then evaluates the computation on a particular input and uses the evaluation key to produce a proof of correctness. The proof is only 288 bytes, regardless of the computation performed or the size of the IO. Anyone can check the proof using a public verification key. Crucially, our evaluation on seven applications demonstrates that Pinocchio is efficient in practice too. Pinocchio’s verification time is a fixed 10 ms plus 0.4–15 μs per IO element: 5–7 orders of magnitude less than previous work; indeed Pinocchio is the first general-purpose system to demonstrate verification cheaper than native execution (for some apps). The worker’s proof effort is still expensive, but Pinocchio reduces it by 19×–60× relative to prior work. As an additional feature, Pinocchio allows the worker to include private inputs in the computation and prove that she performed the computation correctly without revealing any information about the private inputs to the client. Finally, to aid development, Pinocchio provides an end-to-end toolchain that compiles a subset of C into programs that implement the verifiable computation protocol.
      pubtype: Periodical
      doctype: Article
      src: R
    language: English
    refInfo:
    copyright:
      @attributes:
        flag: Y
      dt:
        @attributes:
          year: 2016
    holdings:
      @attributes:
        islocal: N