Sitemap
Veridise

Our mission in to harden blockchain security with formal methods. We write about blockchain security, zero-knowledge proofs, and our bug discoveries.

Announcing LLZK: A unified, open-source intermediate representation (IR) for zero-knowledge languages

2 min readAug 19, 2025

--

Press enter or click to view image in full size

We’re excited to announce that LLZK, our open-source intermediate representation (IR) for zero-knowledge circuits, is now officially launched and available to the public.

Developed by Veridise and supported with a grant from the Ethereum Foundation, LLZK aims to unify the fragmented landscape of ZK development by providing a modular, extensible, and verifiable IR layer that bridges the gap between circuit DSLs and proving backends.

Why LLZK?

As zero-knowledge applications proliferate across use cases, from zkVMs and rollups to privacy-preserving identity protocols, developers face a growing challenge: tool fragmentation.

Every DSL (like Circom, Noir, Halo2, Plonky3) comes with its own quirks, and moving between them or auditing their correctness remains painful. LLZK solves this by acting as a common language between circuit frontends and backends.

Think LLVM, but for ZK.

What is LLZK?

LLZK is a modular intermediate representation for zero-knowledge circuits, designed with the following goals in mind:

  • Multi-language compatibility: Compile circuits written in various DSLs to LLZK.
  • Backend flexibility: Translate to a variety of proving systems (R1CS, AIR, Plonkish, etc.).
  • Support for formal verification: Serve as a foundation for tools like Picus to verify security properties.
  • Optimization-friendly: Enable passes such as constraint simplification and dead code elimination.

LLZK is built on top of MLIR, giving it a rich set of compiler tools and well-defined semantics out of the box.

LLZK in action: Succinct SP1 and Picus

We’ve already used LLZK in production.

Recently, we integrated LLZK with Succinct’s SP1 zkVM, which is written in Plonky3. We translated a set of SP1 core operations into LLZK and then used our formal verifier Picus to check for constraint soundness.

Results:

  • 11 SP1 ops verified with no false positives.
  • One under-constrained operation identified — confirmed and fixed by Succinct.
  • LLZK served as a clean bridge between Plonky3 and Picus, demonstrating the power of a shared IR for verification and analysis.

Who should use LLZK?

LLZK is a developer-focused tool for:

  • ZK application builders who want more backend flexibility.
  • Compiler engineers building new ZK languages or DSLs.
  • Security researchers and auditors looking to analyze circuits across DSLs in a unified format.
  • Proving system developers who want standardized input and richer debugging tools.

Explore the…

[Continue reading on the new Veridise blog]

Full blog post available on our new Veridise blog

We’ve recently moved our main blog to the Veridise website!

You can continue reading the rest of the blog post here:

https://veridise.com/blog/veridise-announcements/announcing-llzk-a-unified-open-source-intermediate-representation-ir-for-zero-knowledge-languages

Author: Shankara Pailoor, Head of ZK Tooling

Want to learn more about Veridise?

Twitter | LinkedIn | Github | Request Audit

--

--

Veridise
Veridise

Published in Veridise

Our mission in to harden blockchain security with formal methods. We write about blockchain security, zero-knowledge proofs, and our bug discoveries.

Veridise
Veridise

Written by Veridise

Hardening blockchain security with formal methods. We write about blockchain & zero-knowledge proof security. Contact us for industry-leading security audits.

No responses yet