Introducing ZKForge: A Pure Rust ZK Compiler with Fiat-Shamir PLONK #14
zkarchitect
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
What is this?
ZKForge is a ZK proof compiler written entirely in Rust — no Node.js, no npm, no WASM. One binary that goes from
.zkf→ R1CS → Groth16/PLONK → Solidity verifier → Foundry deploy.What's unique?
1. Fiat-Shamir PLONK from scratch
We implemented the full Fiat-Shamir transform using a Poseidon-based transcript. No hardcoded challenges. Both prover and verifier absorb wire commitments before deriving beta, gamma, zeta, v in the correct order.
2. Three critical bugs found and fixed during internal review
We published the full post-mortem in TECHNICAL_PAPER.md §4.2. Comparison constraints were forgeable (returned -1 as default). PLONK wires were domain elements, not real witness values. Inequality constraints were inverted. All fixed, all tested.
3. Built-in ZKML
Neural network inference (ReLU, softmax, field-aware arithmetic) runs as a proof — not a separate pipeline. circom and Noir don't have this.
4. 'English to ZK Proof'
zkforge translate 'prove age > 18'→ automatically generates.zkf+ witness. English and Arabic supported. More languages wanted (Issue #13).5. Honest about limitations
No 'trust me bro' claims. Our
SECURITY.mdlists exactly what's unverified. Benchmarks are standalone until we can build circom 2.x for a fair comparison.What we need help with
Why I'm building this
I believe ZK tooling should be as simple as
cargo installandzkforge prove. The current ecosystem requires JavaScript, npm, and multi-tool pipelines — that friction keeps developers away from ZK.Links
All reactions