don't serialize challenges

This commit is contained in:
Nicholas Ward 2023-04-12 09:26:06 -07:00
parent 66763c7d0e
commit 146e660523
2 changed files with 9 additions and 19 deletions

View File

@ -55,15 +55,6 @@ fn main() -> Result<()> {
let proof_serialized = serde_json::to_string(&proof).unwrap();
fs::write("proof_with_public_inputs.json", proof_serialized).expect("Unable to write file");
let challenges = proof.get_challenges(
proof.get_public_inputs_hash(),
&data.verifier_only.circuit_digest,
&data.common,
)?;
let challenges_serialized = serde_json::to_string(&challenges).unwrap();
fs::write("proof_challenges.json", challenges_serialized).expect("Unable to write file");
println!(
"100th Fibonacci number mod |F| (starting with {}, {}) is: {}",
proof.public_inputs[0], proof.public_inputs[1], proof.public_inputs[2]

View File

@ -102,7 +102,7 @@ impl<F: RichField + Extendable<D>, C: GenericConfig<D, F = F>, const D: usize>
})
}
pub fn get_public_inputs_hash(
pub(crate) fn get_public_inputs_hash(
&self,
) -> <<C as GenericConfig<D>>::InnerHasher as Hasher<F, C::HCI>>::Hash
where
@ -152,7 +152,7 @@ impl<F: RichField + Extendable<D>, C: GenericConfig<D, F = F>, const D: usize>
CompressedProof<F, C, D>
{
/// Decompress the proof.
pub fn decompress(
pub(crate) fn decompress(
self,
challenges: &ProofChallenges<F, D>,
fri_inferred_elements: FriInferredElements<F, D>,
@ -214,7 +214,7 @@ impl<F: RichField + Extendable<D>, C: GenericConfig<D, F = F>, const D: usize>
})
}
pub fn verify(
pub(crate) fn verify(
self,
verifier_data: &VerifierOnlyCircuitData<C, D>,
common_data: &CommonCircuitData<F, D>,
@ -246,7 +246,7 @@ impl<F: RichField + Extendable<D>, C: GenericConfig<D, F = F>, const D: usize>
)
}
pub fn get_public_inputs_hash(
pub(crate) fn get_public_inputs_hash(
&self,
) -> <<C as GenericConfig<D>>::InnerHasher as Hasher<F, C::HCI>>::Hash
where
@ -276,8 +276,7 @@ impl<F: RichField + Extendable<D>, C: GenericConfig<D, F = F>, const D: usize>
}
}
#[derive(Serialize)]
pub struct ProofChallenges<F: RichField + Extendable<D>, const D: usize> {
pub(crate) struct ProofChallenges<F: RichField + Extendable<D>, const D: usize> {
/// Random values used in Plonk's permutation argument.
pub plonk_betas: Vec<F>,
@ -293,7 +292,7 @@ pub struct ProofChallenges<F: RichField + Extendable<D>, const D: usize> {
pub fri_challenges: FriChallenges<F, D>,
}
pub struct ProofChallengesTarget<const D: usize> {
pub(crate) struct ProofChallengesTarget<const D: usize> {
pub plonk_betas: Vec<Target>,
pub plonk_gammas: Vec<Target>,
pub plonk_alphas: Vec<Target>,
@ -302,7 +301,7 @@ pub struct ProofChallengesTarget<const D: usize> {
}
/// Coset elements that can be inferred in the FRI reduction steps.
pub struct FriInferredElements<F: RichField + Extendable<D>, const D: usize>(
pub(crate) struct FriInferredElements<F: RichField + Extendable<D>, const D: usize>(
pub Vec<F::Extension>,
);
@ -356,7 +355,7 @@ impl<F: RichField + Extendable<D>, const D: usize> OpeningSet<F, D> {
}
}
pub fn to_fri_openings(&self) -> FriOpenings<F, D> {
pub(crate) fn to_fri_openings(&self) -> FriOpenings<F, D> {
let zeta_batch = FriOpeningBatch {
values: [
self.constants.as_slice(),
@ -390,7 +389,7 @@ pub struct OpeningSetTarget<const D: usize> {
}
impl<const D: usize> OpeningSetTarget<D> {
pub fn to_fri_openings(&self) -> FriOpeningsTarget<D> {
pub(crate) fn to_fri_openings(&self) -> FriOpeningsTarget<D> {
let zeta_batch = FriOpeningBatchTarget {
values: [
self.constants.as_slice(),