From cd40219ba6bf1b99df8b4589493fdb395ea7f507 Mon Sep 17 00:00:00 2001 From: "Eduard S." Date: Tue, 13 May 2025 16:19:51 +0200 Subject: [PATCH] Use id as public inputs in MainPod verify (#233) --- src/backends/plonky2/mainpod/mod.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/backends/plonky2/mainpod/mod.rs b/src/backends/plonky2/mainpod/mod.rs index 397dad2..6bb9218 100644 --- a/src/backends/plonky2/mainpod/mod.rs +++ b/src/backends/plonky2/mainpod/mod.rs @@ -8,8 +8,10 @@ use plonky2::{ hash::poseidon::PoseidonHash, iop::witness::PartialWitness, plonk::{ - circuit_builder::CircuitBuilder, circuit_data::CircuitConfig, config::Hasher, - proof::ProofWithPublicInputs, + circuit_builder::CircuitBuilder, + circuit_data::CircuitConfig, + config::Hasher, + proof::{Proof, ProofWithPublicInputs}, }, }; pub use statement::*; @@ -423,13 +425,13 @@ impl Prover { // generate & verify proof let data = builder.build::(); - let proof = data.prove(pw)?; + let proof_with_pis = data.prove(pw)?; Ok(MainPod { params: params.clone(), id, public_statements, - proof, + proof: proof_with_pis.proof, }) } } @@ -449,7 +451,7 @@ pub struct MainPod { params: Params, id: PodId, public_statements: Vec, - proof: ProofWithPublicInputs, + proof: Proof, } /// Convert a Statement into middleware::Statement and replace references to SELF by `self_id`. @@ -489,8 +491,11 @@ impl MainPod { .eval(&mut builder)?; let data = builder.build::(); - data.verify(self.proof.clone()) - .map_err(|e| Error::custom(format!("MainPod proof verification failure: {:?}", e))) + data.verify(ProofWithPublicInputs { + proof: self.proof.clone(), + public_inputs: id.to_fields(&self.params), + }) + .map_err(|e| Error::custom(format!("MainPod proof verification failure: {:?}", e))) } }