Date of Completion

2025

Document Type

Honors College Thesis

Department

Computer Science

Thesis Type

Honors College

First Advisor

Joseph Near

Second Advisor

Christian Skalka

Keywords

zero-knowledge proofs, programming languages, zero-knowledge protocols, Pico-ZK, EMP-ZK, software

Abstract

Zero-knowledge proof protocols are tools used to generate and run digital encodings of zero-knowledge proofs. These protocols may be roughly divided into front-ends and back-ends. Front-ends are more programmable but slower; back-ends are dramatically faster but difficult to work with. Little work has been done to interlink zero-knowledge front-ends and back-ends for more optimal speed while maintaining high ease of use.

We began with the Pico-ZK front-end, written purely in Python, and the EMP-ZK backend, written purely in C++. The existing Pico-ZK implementation generates an intermediate text file-like output that can be run via EMP-ZK; this produces a large speed bottleneck that we moved to eliminate. Rather than text file output, we develop a programmatic “bridge” via Cython that enables Pico-ZK to directly interface with the EMP-ZK. The resulting “ZK-Bridge” produces substantial performance benefits in several zero-knowledge processes over Pico-ZK, including raw gate generation and cryptographic tasks. The alternative paradigm of front-ends calling back-ends directly without any intermediary promises an ideal mix of performance and usability for programmers.

Creative Commons License

Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.

Share

COinS