Date of Completion


Document Type

Honors College Thesis


Computer Science

Thesis Type

Honors College

First Advisor

Dr. Joseph Near


differential obliviousness, zero-knowledge proof, differential privacy, automation, compiler, security


Verifiable computation provides means for a local party to outsource program
execution to an untrusted third party while having the guarantee that the
program was run correctly. Zero-knowledge proofs are the foundation for such
protocols, which allow one party (the prover) to convince another party (the
verifier) that they know a secret without revealing the secret itself. It is a
fact that the control flow of programs during execution can reveal information
about variables within the code, and thus could reveal information about the
secret in a zero-knowledge proof. Current approaches to solve this issue are
both burdensome on the programmer and can lead to inefficient circuits. The
compiler proposed in this paper applies the notions of differential
obliviousness to zero-knowledge proof systems, which provides a guarantee that
the control flow of the program satisfies differential privacy with respect to
the secret. Furthermore, the compiler seeks to fully automate differential
obliviousness, such that the programmer can write algorithms and be guaranteed
privacy with virtually no extra work.

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.