Paper 2020/1155

Zilch: A Framework for Deploying Transparent Zero-Knowledge Proofs

Dimitris Mouris and Nektarios Georgios Tsoutsos

Abstract

As cloud computing becomes more popular, research has focused on usable solutions to the problem of verifiable computation (VC), where a computationally weak device (Verifier) outsources a program execution to a powerful server (Prover) and receives guarantees that the execution was performed faithfully. A Prover can further demonstrate knowledge of a secret input that causes the Verifier’s program to satisfy certain assertions, without ever revealing which input was used. State-of-the-art Zero-Knowledge Proofs of Knowledge (ZKPK) methods encode a computation using arithmetic circuits and preserve the privacy of Prover’s inputs while attesting the integrity of program execution. Nevertheless, developing, debugging and optimizing programs as circuits remains a daunting task, as most users are unfamiliar with this programming paradigm. 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.

Note: This article is published in IEEE Transactions on Information Forensics and Security (TIFS); the IEEE version is available at https://doi.org/10.1109/TIFS.2021.3074869. The GitHub repositories associated with this article are available at https://github.com/TrustworthyComputing/Zilch (Zilch Framework) and https://github.com/TrustworthyComputing/ZeroJava-compiler (ZeroJava to zMIPS compiler).

Metadata
Available format(s)
PDF
Category
Applications
Publication info
Published elsewhere. IEEE Transactions on Information Forensics and Security
DOI
10.1109/TIFS.2021.3074869
Keywords
Verifiable ComputationZero KnowledgeProof of KnowledgeTransparent SetupUniversal Circuits
Contact author(s)
tsoutsos @ udel edu
History
2021-04-23: last of 3 revisions
2020-09-25: received
See all versions
Short URL
https://ia.cr/2020/1155
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2020/1155,
      author = {Dimitris Mouris and Nektarios Georgios Tsoutsos},
      title = {Zilch: A Framework for Deploying Transparent Zero-Knowledge Proofs},
      howpublished = {Cryptology {ePrint} Archive, Paper 2020/1155},
      year = {2020},
      doi = {10.1109/TIFS.2021.3074869},
      url = {https://eprint.iacr.org/2020/1155}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.