MCPcopy Create free account
hub / github.com/docknetwork/crypto / verify

Method verify

smc_range_proof/src/ccs_range_proof/perfect_range.rs:178–203  ·  view source on GitHub ↗

Verify the proof for `0 <= value < max` where `commitment` is a Pedersen commitment to `value`

(
        &self,
        commitment: &E::G1Affine,
        challenge: &E::ScalarField,
        max: u64,
        comm_key: &MemberCommitmentKey<E::G1Affine>,
        params: impl Into<SetMembershipChe

Source from the content-addressed store, hash-verified

176impl<E: Pairing> CCSPerfectRangeProof<E> {
177 /// Verify the proof for `0 <= value < max` where `commitment` is a Pedersen commitment to `value`
178 pub fn verify(
179 &self,
180 commitment: &E::G1Affine,
181 challenge: &E::ScalarField,
182 max: u64,
183 comm_key: &MemberCommitmentKey<E::G1Affine>,
184 params: impl Into<SetMembershipCheckParamsWithPairing<E>>,
185 ) -> Result<(), SmcRangeProofError> {
186 let params = params.into();
187 self.verify_except_pairings(commitment, challenge, max, comm_key, &params)?;
188
189 let (yc_sigma, lhs) = self.compute_for_pairing_check(challenge, &params);
190 if cfg_into_iter!(0..self.V.len())
191 .map(|i| {
192 let rhs = E::pairing(
193 E::G1Prepared::from(self.V[i]),
194 E::G2Prepared::from(yc_sigma[i]),
195 );
196 lhs[i] == rhs
197 })
198 .any(|r| r == false)
199 {
200 return Err(SmcRangeProofError::InvalidRangeProof);
201 }
202 Ok(())
203 }
204
205 /// Verify the proof for `0 <= value < max` where `commitment` is a Pedersen commitment to `value`
206 pub fn verify_given_randomized_pairing_checker(

Callers 1

Calls 3

mapMethod · 0.80

Tested by 1