Pinocchio
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 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 inputs and outputs. Anyone can use a public verification key to check the proof. Crucially, our evaluation on seven applications demonstrates that Pinocchio is efficient in practice too. Pinocchio’s verification time is typically 10ms: 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). Pinocchio also reduces the worker’s proof effort by an additional 19-60x. As an additional feature, Pinocchio generalizes to zero-knowledge proofs at a negligible cost over the base protocol. 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.
Keywords for this software
References in zbMATH (referenced in 23 articles )
Showing results 1 to 20 of 23.
Sorted by year (- Anisimov, A.V.; Novokshonov, A.K.: Trusted computing with addition machines. II (2018)
- Alabdulatif, Abdulatif; Kumarage, Heshan; Khalil, Ibrahim; Yi, Xun: Privacy-preserving anomaly detection in cloud with lightweight homomorphic encryption (2017)
- Ben-Sasson, Eli; Bentov, Iddo; Chiesa, Alessandro; Gabizon, Ariel; Genkin, Daniel; Hamilis, Matan; Pergament, Evgenya; Riabzev, Michael; Silberstein, Mark; Tromer, Eran; Virza, Madars: Computational integrity with a public random string from quasi-linear PCPs (2017)
- Ben-Sasson, Eli; Chiesa, Alessandro; Tromer, Eran; Virza, Madars: Scalable zero knowledge via cycles of elliptic curves (2017)
- Bitansky, Nir; Canetti, Ran; Chiesa, Alessandro; Goldwasser, Shafi; Lin, Huijia; Rubinstein, Aviad; Tromer, Eran: The hunting of the SNARK (2017)
- López-Alt, Adriana; Tromer, Eran; Vaikuntanathan, Vinod: Multikey fully homomorphic encryption and applications (2017)
- Mohassel, Payman; Rosulek, Mike; Scafuro, Alessandra: Sublinear zero-knowledge arguments for RAM programs (2017)
- Veeningen, Meilof: Pinocchio-based adaptive zk-SNARKs and secure/correct adaptive function evaluation (2017)
- Albrecht, Martin; Grassi, Lorenzo; Rechberger, Christian; Roy, Arnab; Tiessen, Tyge: MiMC: efficient encryption and cryptographic hashing with minimal multiplicative complexity (2016)
- Ben-Sasson, Eli; Chiesa, Alessandro; Spooner, Nicholas: Interactive oracle proofs (2016)
- Cuvelier, Édouard; Pereira, Olivier: Verifiable multi-party computation with perfectly private audit trail (2016)
- Fiore, Dario; Nitulescu, Anca: On the (in)security of SNARKs in the presence of oracles (2016)
- Papamanthou, Charalampos; Tamassia, Roberto; Triandopoulos, Nikos: Authenticated hash tables based on cryptographic accumulators (2016)
- Schoenmakers, Berry; Veeningen, Meilof; de Vreede, Niels: Trinocchio: privacy-preserving outsourcing by distributed verifiable computation (2016)
- Sun, Yujuan; Yu, Yu; Li, Xiangxue; Zhang, Kai; Qian, Haifeng; Zhou, Yuan: Batch verifiable computation with public verifiability for outsourcing polynomials and matrix computations (2016)
- Chiesa, Alessandro; Zhu, Zeyuan Allen: Shorter arithmetization of nondeterministic computations (2015)
- Ben-Sasson, Eli; Chiesa, Alessandro; Tromer, Eran; Virza, Madars: Scalable zero knowledge via cycles of elliptic curves (2014)
- Canetti, Ran; Paneth, Omer; Papadopoulos, Dimitrios; Triandopoulos, Nikos: Verifiable set operations over outsourced databases (2014)
- Chuengsatiansup, Chitchanok; Naehrig, Michael; Ribarski, Pance; Schwabe, Peter: PandA: pairings and arithmetic (2014)
- Ben-Sasson, Eli; Chiesa, Alessandro; Genkin, Daniel; Tromer, Eran; Virza, Madars: Snarks for C: verifying program executions succinctly and in zero knowledge (2013)