From 9dfadd528145822df36fa4d1c7334e0b771d612d Mon Sep 17 00:00:00 2001 From: Rahul Ghangas Date: Mon, 2 Mar 2026 20:46:17 +0000 Subject: [PATCH] feat: gnark support for plonk --- cli/src/init/gnark.rs | 2 +- cli/src/template/gnark/lib.rs | 57 ++++++++++++++---- cli/src/template/init/src/gnark.rs | 54 +++++++++++++++++ cli/src/template/init/src/stubs.rs | 31 +++++++++- .../test-vectors/gnark/cubic_circuit_plonk.pk | Bin 0 -> 35552 bytes .../gnark/cubic_circuit_plonk.scs | Bin 0 -> 900 bytes .../test-vectors/gnark/cubic_circuit_plonk.vk | Bin 0 -> 34328 bytes .../tests/bindings/gnark/test_gnark_cubic.kts | 29 ++++++--- .../bindings/gnark/test_gnark_cubic.swift | 35 +++++++---- 9 files changed, 175 insertions(+), 33 deletions(-) create mode 100644 cli/src/template/init/test-vectors/gnark/cubic_circuit_plonk.pk create mode 100644 cli/src/template/init/test-vectors/gnark/cubic_circuit_plonk.scs create mode 100644 cli/src/template/init/test-vectors/gnark/cubic_circuit_plonk.vk diff --git a/cli/src/init/gnark.rs b/cli/src/init/gnark.rs index 82005d0a..0570704b 100644 --- a/cli/src/init/gnark.rs +++ b/cli/src/init/gnark.rs @@ -11,6 +11,6 @@ impl ProvingSystem for Gnark { const ADAPTER: Adapter = Adapter::Gnark; const DEPENDENCIES: &'static str = r#" -rust-gnark = "0.0.2" +rust-gnark = "0.0.3" "#; } diff --git a/cli/src/template/gnark/lib.rs b/cli/src/template/gnark/lib.rs index 184fd0b0..f81863c9 100644 --- a/cli/src/template/gnark/lib.rs +++ b/cli/src/template/gnark/lib.rs @@ -1,26 +1,36 @@ #[cfg(not(target_arch = "wasm32"))] mod gnark; #[cfg(not(target_arch = "wasm32"))] -pub use gnark::{generate_gnark_proof, verify_gnark_proof, GnarkProofResult}; +pub use gnark::{ + generate_gnark_proof, generate_gnark_plonk_proof, + verify_gnark_proof, verify_gnark_plonk_proof, + GnarkProofResult, GnarkPlonkProofResult, +}; #[cfg(test)] #[cfg(not(target_arch = "wasm32"))] mod gnark_tests { - use crate::gnark::{generate_gnark_proof, verify_gnark_proof}; + use crate::gnark::{ + generate_gnark_proof, generate_gnark_plonk_proof, + verify_gnark_proof, verify_gnark_plonk_proof, + }; const R1CS_PATH: &str = "./test-vectors/gnark/cubic_circuit.r1cs"; - const PK_PATH: &str = "./test-vectors/gnark/cubic_circuit.pk"; - const VK_PATH: &str = "./test-vectors/gnark/cubic_circuit.vk"; + const GROTH16_PK_PATH: &str = "./test-vectors/gnark/cubic_circuit.pk"; + const GROTH16_VK_PATH: &str = "./test-vectors/gnark/cubic_circuit.vk"; - #[test] - fn test_gnark_cubic_circuit() { - // x=3: x^3 + x + 5 = 27 + 3 + 5 = 35 - let witness_json = r#"{"X": "3", "Y": "35"}"#.to_string(); + const SCS_PATH: &str = "./test-vectors/gnark/cubic_circuit_plonk.scs"; + const PLONK_PK_PATH: &str = "./test-vectors/gnark/cubic_circuit_plonk.pk"; + const PLONK_VK_PATH: &str = "./test-vectors/gnark/cubic_circuit_plonk.vk"; + + const WITNESS_JSON: &str = r#"{"X": "3", "Y": "35"}"#; + #[test] + fn test_gnark_groth16_cubic_circuit() { let result = generate_gnark_proof( R1CS_PATH.to_string(), - PK_PATH.to_string(), - witness_json, + GROTH16_PK_PATH.to_string(), + WITNESS_JSON.to_string(), ); assert!(result.is_ok(), "Proof generation should succeed"); @@ -33,7 +43,32 @@ mod gnark_tests { let valid = verify_gnark_proof( R1CS_PATH.to_string(), - VK_PATH.to_string(), + GROTH16_VK_PATH.to_string(), + proof_result, + ); + assert!(valid.is_ok(), "Verification should not error"); + assert!(valid.unwrap(), "Proof should be valid"); + } + + #[test] + fn test_gnark_plonk_cubic_circuit() { + let result = generate_gnark_plonk_proof( + SCS_PATH.to_string(), + PLONK_PK_PATH.to_string(), + WITNESS_JSON.to_string(), + ); + assert!(result.is_ok(), "PLONK proof generation should succeed"); + + let proof_result = result.unwrap(); + assert!(!proof_result.proof.is_empty(), "Proof should not be empty"); + assert!( + !proof_result.public_inputs.is_empty(), + "Public inputs should not be empty" + ); + + let valid = verify_gnark_plonk_proof( + SCS_PATH.to_string(), + PLONK_VK_PATH.to_string(), proof_result, ); assert!(valid.is_ok(), "Verification should not error"); diff --git a/cli/src/template/init/src/gnark.rs b/cli/src/template/init/src/gnark.rs index 1ea719ef..664a6a9a 100644 --- a/cli/src/template/init/src/gnark.rs +++ b/cli/src/template/init/src/gnark.rs @@ -79,3 +79,57 @@ pub fn verify_gnark_proof( rust_gnark::groth16_verify(&r1cs_path, &vk_path, &inner) .map_err(|e| MoproError::GnarkError(e.to_string())) } + +/// Result of a gnark PLONK BN254 proof generation. +#[derive(Debug, Clone)] +#[cfg_attr(feature = "uniffi", derive(uniffi::Record))] +pub struct GnarkPlonkProofResult { + pub proof: String, + pub public_inputs: String, +} + +/// Generate a PLONK BN254 proof using gnark. +/// +/// # Arguments +/// +/// * `scs_path` - Path to the `.scs` file (sparse constraint system) +/// * `pk_path` - Path to the `.pk` file (PLONK proving key) +/// * `witness_json` - JSON object mapping circuit field names to decimal string values +#[cfg_attr(feature = "uniffi", uniffi::export)] +pub fn generate_gnark_plonk_proof( + scs_path: String, + pk_path: String, + witness_json: String, +) -> Result { + GNARK_INIT.call_once(|| { + rust_gnark::init().expect("Failed to initialize gnark runtime"); + }); + + let result = rust_gnark::plonk_prove(&scs_path, &pk_path, &witness_json) + .map_err(|e| MoproError::GnarkError(e.to_string()))?; + + Ok(GnarkPlonkProofResult { + proof: result.proof, + public_inputs: result.public_inputs, + }) +} + +/// Verify a PLONK BN254 proof using gnark. +#[cfg_attr(feature = "uniffi", uniffi::export)] +pub fn verify_gnark_plonk_proof( + scs_path: String, + vk_path: String, + proof_result: GnarkPlonkProofResult, +) -> Result { + GNARK_INIT.call_once(|| { + rust_gnark::init().expect("Failed to initialize gnark runtime"); + }); + + let inner = rust_gnark::PlonkProofResult { + proof: proof_result.proof, + public_inputs: proof_result.public_inputs, + }; + + rust_gnark::plonk_verify(&scs_path, &vk_path, &inner) + .map_err(|e| MoproError::GnarkError(e.to_string())) +} diff --git a/cli/src/template/init/src/stubs.rs b/cli/src/template/init/src/stubs.rs index 33e11b02..dacda384 100644 --- a/cli/src/template/init/src/stubs.rs +++ b/cli/src/template/init/src/stubs.rs @@ -180,7 +180,36 @@ macro_rules! gnark_stub { ) -> Result { panic!("Gnark is not enabled in this build. Please select \"gnark\" adapter when initializing the project."); } + + #[derive(Debug, Clone)] + #[cfg_attr(feature = "uniffi", derive(uniffi::Record))] + pub struct GnarkPlonkProofResult { + pub proof: String, + pub public_inputs: String, + } + + #[cfg_attr(feature = "uniffi", uniffi::export)] + pub fn generate_gnark_plonk_proof( + _scs_path: String, + _pk_path: String, + _witness_json: String, + ) -> Result { + panic!("Gnark is not enabled in this build. Please select \"gnark\" adapter when initializing the project."); + } + + #[cfg_attr(feature = "uniffi", uniffi::export)] + pub fn verify_gnark_plonk_proof( + _scs_path: String, + _vk_path: String, + _proof_result: GnarkPlonkProofResult, + ) -> Result { + panic!("Gnark is not enabled in this build. Please select \"gnark\" adapter when initializing the project."); + } } - pub use gnark_stub::{generate_gnark_proof, verify_gnark_proof, GnarkProofResult}; + pub use gnark_stub::{ + generate_gnark_proof, generate_gnark_plonk_proof, + verify_gnark_proof, verify_gnark_plonk_proof, + GnarkProofResult, GnarkPlonkProofResult, + }; }; } diff --git a/cli/src/template/init/test-vectors/gnark/cubic_circuit_plonk.pk b/cli/src/template/init/test-vectors/gnark/cubic_circuit_plonk.pk new file mode 100644 index 0000000000000000000000000000000000000000..7c3198de98e4cf13b71e1682d0a1b7347ee017a0 GIT binary patch literal 35552 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