mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-07 00:03:10 +00:00
Merge pull request #515 from mir-protocol/fix_salt_issue
Fix salt issues
This commit is contained in:
commit
660d785ed1
@ -4,6 +4,7 @@ use crate::hash::hash_types::{HashOutTarget, RichField};
|
|||||||
use crate::plonk::circuit_builder::CircuitBuilder;
|
use crate::plonk::circuit_builder::CircuitBuilder;
|
||||||
use crate::plonk::circuit_data::{CommonCircuitData, VerifierCircuitTarget};
|
use crate::plonk::circuit_data::{CommonCircuitData, VerifierCircuitTarget};
|
||||||
use crate::plonk::config::{AlgebraicHasher, GenericConfig};
|
use crate::plonk::config::{AlgebraicHasher, GenericConfig};
|
||||||
|
use crate::plonk::plonk_common::salt_size;
|
||||||
use crate::plonk::proof::{
|
use crate::plonk::proof::{
|
||||||
OpeningSetTarget, ProofChallengesTarget, ProofTarget, ProofWithPublicInputsTarget,
|
OpeningSetTarget, ProofChallengesTarget, ProofTarget, ProofWithPublicInputsTarget,
|
||||||
};
|
};
|
||||||
@ -141,11 +142,12 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
|||||||
let fri_params = &common_data.fri_params;
|
let fri_params = &common_data.fri_params;
|
||||||
let cap_height = fri_params.config.cap_height;
|
let cap_height = fri_params.config.cap_height;
|
||||||
|
|
||||||
|
let salt = salt_size(common_data.fri_params.hiding);
|
||||||
let num_leaves_per_oracle = &[
|
let num_leaves_per_oracle = &[
|
||||||
common_data.num_preprocessed_polys(),
|
common_data.num_preprocessed_polys(),
|
||||||
config.num_wires,
|
config.num_wires + salt,
|
||||||
common_data.num_zs_partial_products_polys(),
|
common_data.num_zs_partial_products_polys() + salt,
|
||||||
common_data.num_quotient_polys(),
|
common_data.num_quotient_polys() + salt,
|
||||||
];
|
];
|
||||||
|
|
||||||
ProofTarget {
|
ProofTarget {
|
||||||
@ -200,7 +202,7 @@ mod tests {
|
|||||||
const D: usize = 2;
|
const D: usize = 2;
|
||||||
type C = PoseidonGoldilocksConfig;
|
type C = PoseidonGoldilocksConfig;
|
||||||
type F = <C as GenericConfig<D>>::F;
|
type F = <C as GenericConfig<D>>::F;
|
||||||
let config = CircuitConfig::standard_recursion_config();
|
let config = CircuitConfig::standard_recursion_zk_config();
|
||||||
|
|
||||||
let (proof, vd, cd) = dummy_proof::<F, C, D>(&config, 4_000)?;
|
let (proof, vd, cd) = dummy_proof::<F, C, D>(&config, 4_000)?;
|
||||||
let (proof, _vd, cd) =
|
let (proof, _vd, cd) =
|
||||||
|
|||||||
@ -15,6 +15,7 @@ use crate::hash::merkle_proofs::MerkleProof;
|
|||||||
use crate::hash::merkle_tree::MerkleCap;
|
use crate::hash::merkle_tree::MerkleCap;
|
||||||
use crate::plonk::circuit_data::CommonCircuitData;
|
use crate::plonk::circuit_data::CommonCircuitData;
|
||||||
use crate::plonk::config::{GenericConfig, GenericHashOut, Hasher};
|
use crate::plonk::config::{GenericConfig, GenericHashOut, Hasher};
|
||||||
|
use crate::plonk::plonk_common::salt_size;
|
||||||
use crate::plonk::proof::{
|
use crate::plonk::proof::{
|
||||||
CompressedProof, CompressedProofWithPublicInputs, OpeningSet, Proof, ProofWithPublicInputs,
|
CompressedProof, CompressedProofWithPublicInputs, OpeningSet, Proof, ProofWithPublicInputs,
|
||||||
};
|
};
|
||||||
@ -235,6 +236,7 @@ impl Buffer {
|
|||||||
common_data: &CommonCircuitData<F, C, D>,
|
common_data: &CommonCircuitData<F, C, D>,
|
||||||
) -> Result<FriInitialTreeProof<F, C::Hasher>> {
|
) -> Result<FriInitialTreeProof<F, C::Hasher>> {
|
||||||
let config = &common_data.config;
|
let config = &common_data.config;
|
||||||
|
let salt = salt_size(common_data.fri_params.hiding);
|
||||||
let mut evals_proofs = Vec::with_capacity(4);
|
let mut evals_proofs = Vec::with_capacity(4);
|
||||||
|
|
||||||
let constants_sigmas_v =
|
let constants_sigmas_v =
|
||||||
@ -242,17 +244,18 @@ impl Buffer {
|
|||||||
let constants_sigmas_p = self.read_merkle_proof()?;
|
let constants_sigmas_p = self.read_merkle_proof()?;
|
||||||
evals_proofs.push((constants_sigmas_v, constants_sigmas_p));
|
evals_proofs.push((constants_sigmas_v, constants_sigmas_p));
|
||||||
|
|
||||||
let wires_v = self.read_field_vec(config.num_wires)?;
|
let wires_v = self.read_field_vec(config.num_wires + salt)?;
|
||||||
let wires_p = self.read_merkle_proof()?;
|
let wires_p = self.read_merkle_proof()?;
|
||||||
evals_proofs.push((wires_v, wires_p));
|
evals_proofs.push((wires_v, wires_p));
|
||||||
|
|
||||||
let zs_partial_v =
|
let zs_partial_v = self.read_field_vec(
|
||||||
self.read_field_vec(config.num_challenges * (1 + common_data.num_partial_products))?;
|
config.num_challenges * (1 + common_data.num_partial_products) + salt,
|
||||||
|
)?;
|
||||||
let zs_partial_p = self.read_merkle_proof()?;
|
let zs_partial_p = self.read_merkle_proof()?;
|
||||||
evals_proofs.push((zs_partial_v, zs_partial_p));
|
evals_proofs.push((zs_partial_v, zs_partial_p));
|
||||||
|
|
||||||
let quotient_v =
|
let quotient_v =
|
||||||
self.read_field_vec(config.num_challenges * common_data.quotient_degree_factor)?;
|
self.read_field_vec(config.num_challenges * common_data.quotient_degree_factor + salt)?;
|
||||||
let quotient_p = self.read_merkle_proof()?;
|
let quotient_p = self.read_merkle_proof()?;
|
||||||
evals_proofs.push((quotient_v, quotient_p));
|
evals_proofs.push((quotient_v, quotient_p));
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user