Starting This Notebook

I’ve been meaning to start writing things down for a while.

Most of my time lately has gone into zero-knowledge systems, especially things around Noir, Go and the intersection between AI ethics and zero knowledge systems. I spend a lot of time experimenting with ideas for fun, reading code, and building small tools to understand how these systems actually work.

This site is basically a place to collect those notes.

Some posts will be short write-ups about things I’m trying to understand. Others will be notes from projects I’m building, experiments that worked (or didn’t), or rough explanations of concepts that took me a while to wrap my head around.

Right now I’m working on a couple projects around the Noir ecosystem.

One of them is noir-go, which embeds the Noir compiler in WASM so Go programs can compile Noir circuits without needing the full Noir toolchain.

Another recent one is noir-gnark, which experiments with translating ACIR into gnark constraints so proofs can be generated entirely from Go.

The rough idea looks like this:

Noir circuit → ACIR → R1CS → Groth16 proof

The goal is to make Go a first-class environment for working with Noir circuits.

I’ll probably write about things like:

  • constraint systems
  • ACIR and R1CS
  • proof systems
  • Go tooling around ZK
  • experiments around verifiable AI systems

Some posts will probably be rough drafts or thinking-out-loud notes. That’s intentional. This is meant to be more of a notebook than a polished publication.

If something here is useful to someone else working on similar problems, that’s a nice bonus.