Keldrion

2026-09-16

Prove, Don't Disclose: a working paper, and a Kaimeter rewrite

We've published a working paper.

Prove, Don't Disclose: Verifiable CBAM Compliance Across Industrial Supply Chains Using Rules as Code and Zero-Knowledge Proofs - Kaimeter Working Paper 2026-01, v1.1, preprint. DOI: 10.5281/zenodo.22740284 · CC BY 4.0.

The gap

CBAM's Operators Portal already lets an installation share one verified embedded-emissions figure with every EU declarant. Three gaps remain. The figure is held in an EU-operated registry - a problem for producers in jurisdictions that restrict cross-border data transfer; it is per installation, so it cannot assemble a complex or downstream good's emissions from independent suppliers; and it carries a number without the rule version that produced it. Where actual data is unavailable, punitive default values apply: +10% in 2026, +20% in 2027, +30% from 2028 (fertilisers: 1%).

The idea

Two techniques, combined for the first time in border-carbon compliance:

  • Rules as code - the CBAM methodology encoded per sector as a versioned, tested, executable rule bundle whose cryptographic hash identifies exactly which rules were applied.
  • Zero-knowledge proofs - a producer proves the declared figure is the correct output of that rule version without revealing its activity data. Proofs compose recursively up the supply chain, so a manufacturer can incorporate precursor emissions from installations it never sees.

The paper is explicit that this complements accredited verification, it does not replace it. A proof establishes correct computation, not true inputs; accredited verifiers remain the trust anchor. The full design, legal fit, deployment models including air-gapped operation, a worked smelter→extruder→manufacturer scenario, and the limitations are all in the paper.

Kaimeter is being rebuilt from scratch

The paper specifies a reference implementation, and that is what Kaimeter becomes: a Rust workspace (kaimeter-rules, kaimeter-core, kaimeter-app) built around the rule bundle and the proof system. It is a ground-up rewrite, so its shape differs from the tool you may have tried.

The old prototype is not going away. It remains available, Apache-2.0, on the legacy-v0 branch: github.com/kaimeter/kaimeter/tree/legacy-v0.

Where the project stands today

main holds the finalized paper sources and build pipeline, the pinned Rust toolchain, CI quality gates, the comment policy, and the first conformance vector - but no crate has been released yet. Planned releases:

Release Target Content
v0.1 Oct 2026 kaimeter-rules aluminium bundle, Appendix B vector, bundle hash, no prover
v0.2 Nov 2026 First zkVM guest, differential tests, secondary aluminium
v0.3 Q1 2027 Steel, proof envelope, offline verifier, signed bundles
Later 2027-28 Cement, fertilisers, hydrogen, downstream, recursive proofs

Comments on the preprint are welcome and will be acknowledged in a later version.

All posts