let proof = Prover::new(&pk) .private("preimage", preimage) .public("digest", &digest) .generate() .unwrap();
@gate "ec_add" (x1, y1, x2, y2) => (x3, y3) elliptic_curve = "secp256k1" libzkfpdll
assert!(proof.verify(&vk, &[&digest])); println!("✅ Proof verified without revealing preimage"); let proof = Prover::new(&pk)
The project began in late 2025 at the Privacy & Cryptography Lab at ETH Zürich, led by Dr. Anya Sharma. After two years of closed development, version 1.0 was released under the Apache 2.0 license, gaining rapid adoption by projects like Nym (mixnet privacy) and Filecoin’s L2, Basin. libzkfpdll is written in Rust, with C and Python bindings. Its internal design follows four layers: 2.1 FPDL Frontend (Flexible Proof Description Language) Instead of writing arithmetic circuits or R1CS constraints directly, developers define relations using FPDL: let proof = Prover::new(&pk) .private("preimage"