Paper 2015/1093

CC: A Framework for Building Composable Zero-Knowledge Proofs

Ahmed Kosba, Zhichao Zhao, Andrew Miller, Yi Qian, Hubert Chan, Charalampos Papamanthou, Rafael Pass, abhi shelat, and Elaine Shi

Abstract

Non-interactive zero-knowledge proofs are a powerful cryptographic primitive used in privacy-preserving protocols. We design and build CC, the first system enabling developers to build efficient, composable, non-interactive zero-knowledge proofs for generic, user-defined statements. CC extends state-of-the-art SNARK constructions by applying known strengthening transformations to yield UC-composable zero-knowledge proofs suitable for modular use in larger cryptographic protocols. To attain fast practical performance, CC includes a library of several ``SNARK-friendly'' cryptographic primitives. These primitives are used in the strengthening transformations in order to reduce the overhead of achieving composable security. Our open-source library of optimized arithmetic circuits for these functions are up to 40 more efficient than standard implementations and are thus of independent interest for use in other NIZK projects. Finally, we evaluate CC on applications such as anonymous credentials, private smart contracts, and nonoutsourceable proof-of-work puzzles and demonstrate 5 to 8 speedup in these application settings compared to naive implementations.

Metadata
Available format(s)
PDF
Category
Cryptographic protocols
Publication info
Preprint. MINOR revision.
Keywords
SNARKUniversal ComposabilityNIZK
Contact author(s)
elaine @ cs cornell edu
History
2017-04-09: last of 7 revisions
2015-11-10: received
See all versions
Short URL
https://ia.cr/2015/1093
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2015/1093,
      author = {Ahmed Kosba and Zhichao Zhao and Andrew Miller and Yi Qian and Hubert Chan and Charalampos Papamanthou and Rafael Pass and abhi shelat and Elaine Shi},
      title = {C$\emptyset$C$\emptyset$: A Framework for Building Composable Zero-Knowledge Proofs},
      howpublished = {Cryptology {ePrint} Archive, Paper 2015/1093},
      year = {2015},
      url = {https://eprint.iacr.org/2015/1093}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.