Abstract
A zero-knowledge proof (ZKP) is a powerful cryptographic primitive used in many decentralized or privacy-focused applications. However, the high overhead of ZKPs can restrict their practical applicability. We design a programming language, Ou, aimed at easing the programmer's burden when writing efficient ZKPs, and a compiler framework, Lian, that automates the analysis and distribution of statements to a computing cluster. Lian uses programming language semantics, formal methods, and combinatorial optimization to automatically partition an Ou program into efficiently sized chunks for parallel ZK-proving and/or verification. We contribute: (1) A front-end language where users can write proof statements as imperative programs in a familiar syntax; (2) A compiler architecture and implementation that automatically analyzes the program and compiles it into an optimized IR that can be lifted to a variety of ZKP constructions; and (3) A cutting algorithm, based on Pseudo-Boolean optimization and Integer Linear Programming, that reorders instructions and then partitions the program into efficiently sized chunks for parallel evaluation and efficient state reconciliation.
Original language | English (US) |
---|---|
Title of host publication | CCS 2023 - Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security |
Publisher | Association for Computing Machinery |
Pages | 534-548 |
Number of pages | 15 |
ISBN (Electronic) | 9798400700507 |
DOIs | |
State | Published - Nov 15 2023 |
Externally published | Yes |
Event | 30th ACM SIGSAC Conference on Computer and Communications Security, CCS 2023 - Copenhagen, Denmark Duration: Nov 26 2023 → Nov 30 2023 |
Conference
Conference | 30th ACM SIGSAC Conference on Computer and Communications Security, CCS 2023 |
---|---|
Country/Territory | Denmark |
City | Copenhagen |
Period | 11/26/23 → 11/30/23 |
Keywords
- Parallelization
- Programming language
- Zero-knowledge proofs
ASJC Scopus subject areas
- Computer Networks and Communications
- Computer Science Applications
- Software