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))) } }