About the Position
OpenZL is a suite of software tools for building ZK applications. At its core sits ECLAIR, the circuit description language, which allows developers to build proof-system agnostic applications and leverage custom optimizations at any level of their program. ECLAIR is an embedded domain specific language in Rust and features procedural macros heavily in its design to reduce boilerplate and create generic code. OpenZL also features backends for cryptographic libraries that implement ZK proof systems, and other cryptographic protocols that plug into ECLAIR. Building these macros and cryptographic backends requires advanced knowledge and experience with the Rust compiler and its macro ecosystem but also experience with generics, traits, and the best-practices of Rust interface design to make all of these pieces work together.
Who You Are
Demonstrated experience in language design, compiler/runtime architecture
Solid background in programing language theory and practice, i.e. understanding static analysis, abstract interpretation, etc.
Understanding of foundational Cryptography, a.k.a. encryption, signature schemes, key encapsulation, and key exchange
(plus) Familiarity with zero-knowledge-proof cryptography, understanding of popular constructions like Groth16, Plonk, Halo2, or Nova
(plus) Experience with formal verification, SMT solvers
What You’ll Be Working On
Design and implement a significant part of the compiler from front-end language to Intermediate Representation to zero-knowledge-proof circuit
Design and implement the Embedded DSL (ECLAIR) for zero-knowledge-proof circuit description in Rust (using procedural macros)
Design and implement compilation passes for ECLAIR including optimization and measurement tools
Building syntax and developer tooling for this macro language