This paper introduces a simple description language, ZKPDL, and an interpreter for this language. ZKPDL implements non-interactive zero-knowledge proofs of knowledge, a primitive which has received much attention in recent years. Using our language, a single program may specify the computation required by both the prover and verifier of a zero-knowledge protocol, while our interpreter performs a number of optimizations to lower both computational and space overhead.
Our motivating application for ZKPDL has been the efficient implementation of electronic cash. As such, we have used our language to develop a cryptographic library, Cashlib, that provides an interface for using ecash and fair exchange protocols without requiring expert knowledge from the programmer.
Category / Keywords: implementation / applications,electronic commerce and payment,fair exchange,zero knowledge Publication Info: full version of paper published at USENIX Security 2010 Date: received 24 Apr 2012 Contact author: akupcu at ku edu tr Available formats: PDF | BibTeX Citation Note: http://github.com/brownie/cashlib Version: 20120430:152301 (All versions of this report) Discussion forum: Show discussion | Start new discussion