In this work we present Zilch, a framework that accelerates and simplifies the deployment of VC and ZKPK for any application transparently, i.e., without the need of trusted setup. Zilch uses traditional instruction sequences rather than static arithmetic circuits that would need to be regenerated for each different computation. Towards that end we have implemented ZMIPS: a MIPS-like processor model that allows verifying each instruction independently and compose a proof for the execution of the target application. To foster usability, Zilch incorporates a novel cross-compiler from an object-oriented Java- like language tailored to ZKPK and optimized our ZMIPS model, as well as a powerful API that enables integration of ZKPK within existing C/C++ programs. In our experiments, we demonstrate the flexibility of Zilch using two real-life applications, and evaluate Prover and Verifier performance on a variety of benchmarks.
Category / Keywords: applications / Verifiable Computation, Zero Knowledge, Proof of Knowledge, Transparent Setup, Universal Circuits Date: received 21 Sep 2020 Contact author: tsoutsos at udel edu Available format(s): PDF | BibTeX Citation Version: 20200925:183830 (All versions of this report) Short URL: ia.cr/2020/1155