From 4e74c117d4bb28b2184f4f34ad721efd700ee008 Mon Sep 17 00:00:00 2001 From: Andrew Z Date: Thu, 25 Jul 2024 17:00:28 +0200 Subject: [PATCH] dedup challenges, squeeze range eq num of leaves in mt --- src/direct/proof.rs | 12 ++++++------ src/direct/verifier.rs | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/direct/proof.rs b/src/direct/proof.rs index 2cb859d..da74679 100644 --- a/src/direct/proof.rs +++ b/src/direct/proof.rs @@ -7,7 +7,7 @@ use ark_ff::FftField; #[cfg(not(feature = "std"))] use ark_std::vec::Vec; -use crate::utils::squeeze_integer; +use crate::utils::{dedup, squeeze_integer}; pub struct DirectProof where @@ -57,13 +57,13 @@ where for _ in 0..num_challenges { challenges.push(squeeze_integer(&mut sponge, 32)); } - challenges + dedup(challenges) + } + pub fn num_committed_values(&self) -> usize { + self.committed_values.len() } pub fn verify(&self, commitment_digest: M::InnerDigest, challenges: Vec) -> bool { - if self.challenge_answers.leaf_indexes - != challenges.iter().rev().cloned().collect::>() - { - // TODO: IDK why self.challenge_answers.leaf_indexes comes back in reverse + if self.challenge_answers.leaf_indexes != challenges { return false; } diff --git a/src/direct/verifier.rs b/src/direct/verifier.rs index 44fd4b6..80e2758 100644 --- a/src/direct/verifier.rs +++ b/src/direct/verifier.rs @@ -12,7 +12,7 @@ use crate::{ direct::{config::DirectConfig, proof::DirectProof}, ldt::Verifier, statement::single::SingleStatement, - utils::squeeze_integer, + utils::{dedup, squeeze_integer}, witness::Witness, }; @@ -58,8 +58,9 @@ where // squeeze out the challenges as indices let mut challenges = Vec::with_capacity(self.config.num_challenges); for _ in 0..self.config.num_challenges { - challenges.push(squeeze_integer(&mut sponge, 32)); + challenges.push(squeeze_integer(&mut sponge, proof.num_committed_values())); } + challenges = dedup(challenges); // verifiy the proof against the claim proof.verify(claim.commitment_digest(), challenges) }