From 41008cf421516531eda342ebab02e0b060489c8e Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Thu, 6 May 2021 15:19:06 +0200 Subject: [PATCH] Move Merkle root out of opening proof. --- src/polynomial/commitment.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/polynomial/commitment.rs b/src/polynomial/commitment.rs index 40012383..3ef76867 100644 --- a/src/polynomial/commitment.rs +++ b/src/polynomial/commitment.rs @@ -110,7 +110,6 @@ impl ListPolynomialCommitment { ( OpeningProof { - merkle_root: self.merkle_tree.root, fri_proof, quotient_degree: quotient.len(), }, @@ -144,7 +143,6 @@ impl ListPolynomialCommitment { } pub struct OpeningProof { - merkle_root: Hash, fri_proof: FriProof, // TODO: Get the degree from `CommonCircuitData` instead. quotient_degree: usize, @@ -155,6 +153,7 @@ impl OpeningProof { &self, points: &[F], evaluations: &[Vec], + merkle_root: Hash, challenger: &mut Challenger, fri_config: &FriConfig, ) -> Result<()> { @@ -162,7 +161,7 @@ impl OpeningProof { challenger.observe_elements(evals); } - challenger.observe_hash(&self.merkle_root); + challenger.observe_hash(&merkle_root); let alpha = challenger.get_challenge(); let scaled_evals = evaluations @@ -180,7 +179,7 @@ impl OpeningProof { log2_strict(self.quotient_degree), &pairs, alpha, - &[self.merkle_root], + &[merkle_root], &self.fri_proof, challenger, fri_config, @@ -230,7 +229,13 @@ mod tests { let lpc = ListPolynomialCommitment::new(polys, &fri_config); let (proof, evaluations) = lpc.open(&points, &mut Challenger::new()); - proof.verify(&points, &evaluations, &mut Challenger::new(), &fri_config) + proof.verify( + &points, + &evaluations, + lpc.merkle_tree.root, + &mut Challenger::new(), + &fri_config, + ) } #[test] @@ -251,6 +256,12 @@ mod tests { let lpc = ListPolynomialCommitment::new(polys, &fri_config); let (proof, evaluations) = lpc.open(&points, &mut Challenger::new()); - proof.verify(&points, &evaluations, &mut Challenger::new(), &fri_config) + proof.verify( + &points, + &evaluations, + lpc.merkle_tree.root, + &mut Challenger::new(), + &fri_config, + ) } }