# VOProof: Efficient zkSNARKs from Vector Oracle Compilers

## Abstract

The design of zkSNARKs is increasingly complicated and requires familiarity with a broad class of cryptographic and algebraic tools. This complexity in zkSNARK design also increases the difficulty in zkSNARK implementation, analysis, and optimization. To address this complexity, we develop a new workflow for designing and implementing zkSNARKs, called VOProof. In VOProof, the designer only needs to construct a Vector Oracle (VO) protocol that is intuitive and straightforward to design, and then feeds this protocol to our VO compiler to transform it into a fully functional zkSNARK. This new workflow conceals most algebraic and cryptographic operations inside the compiler, so that the designer is no longer required to understand these cumbersome and error prone procedures. Moreover, our compiler can be fine-tuned to compile one VO protocol into multiple zkSNARKs with different tradeoffs. We apply VOProof to construct three general-purpose zkSNARKs targeting three popular representations of arithmetic circuits: the Rank-1 Constraint System (R1CS), the Hadamard Product Relation (HPR), and the PLONK circuit. These zkSNARKs have shorter and more intuitive descriptions, thus are easier to implement and optimize compared to prior works. To evaluate their performance, we implement a Python framework for describing VO protocols and compiling them into working Rust code of zkSNARKs. Our evaluation shows that the VOProof-based zkSNARKs have competitive performance, especially in proof size and verification time, e.g., both reduced by roughly 50% compared to Marlin (Chiesa et al., EUROCRYPT 2020). These improvements make the VOProof-based zkSNARKs more preferable in blockchain scenarios where the proof size and verification time are critical.

Read the [full paper](https://dl.acm.org/doi/abs/10.1145/3548606.3559387).

## Authors

[Yuncong Zhang](https://www.researchgate.net/profile/Yuncong-Zhang), [Alan Szepieniec](https://scholar.google.be/citations?user=4LyZn8oAAAAJ&hl=en), [Ren Zhang](https://scholar.google.com/citations?user=JB1uRvQAAAAJ&hl=en), Shifeng Sun, Geng Wang, Dawu Gu

## Published in

ACM SIGSAC Conference on Computer and Communications Security (CCS), November 2022

## Tags

Zero-Knowledge, Proof System, SNARK

---

More papers from the authors:

* [Crystal: Enhancing Blockchain Mining Transparency with Quorum Certificate](https://blog.cryptape.com/crystal-enhancing-blockchain-mining-transparency-with-quorum-certificate)
    
* [Analysing and Improving Shard Allocation Protocols for Sharded Blockchains](https://blog.cryptape.com/analysing-and-improving-shard-allocation-protocols-for-sharded-blockchains)
    
* [NC-Max: Breaking the Security-Performance Tradeoff in Nakamoto Consensus](https://blog.cryptape.com/nc-max-breaking-the-security-performance-tradeoff-in-nakamoto-consensus)
    
* [Eaglesong: an ARX Hash with Fast Diffusion](https://blog.cryptape.com/eaglesong-an-arx-hash-with-fast-diffusion)
    
* [Transparent SNARKs from DARK Compilers](https://blog.cryptape.com/transparent-snarks-from-dark-compilers)
    
* [Lay Down the Common Metrics: Evaluating Proof-of-Work Consensus Protocols' Security](https://blog.cryptape.com/lay-down-the-common-metrics-evaluating-proof-of-work-consensus-protocols-security)
    
* [Authenticated and Auditable Data Sharing via Smart Contract](https://blog.cryptape.com/authenticated-and-auditable-data-sharing-via-smart-contract)
    
* [SC2Share: Smart Contract for Secure Car Sharing](https://blog.cryptape.com/sc2share-smart-contract-for-secure-car-sharing)
