diff --git a/Cargo.toml b/Cargo.toml index aa6871e..394a75f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nova-snark" -version = "0.20.1" +version = "0.20.2" authors = ["Srinath Setty "] edition = "2021" description = "Recursive zkSNARKs without trusted setup" diff --git a/src/spartan/pp/mod.rs b/src/spartan/pp/mod.rs index 596aeb8..5b926ba 100644 --- a/src/spartan/pp/mod.rs +++ b/src/spartan/pp/mod.rs @@ -302,7 +302,7 @@ impl R1CSShapeSparkRepr { } /// A type that represents the memory-checking argument -#[derive(Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] #[serde(bound = "")] pub struct MemcheckProof { sc_prod: ProductArgument, @@ -685,7 +685,7 @@ impl MemcheckProof { } /// A type that represents the prover's key -#[derive(Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] #[serde(bound = "")] pub struct ProverKey> { pk_ee: EE::ProverKey, @@ -695,7 +695,7 @@ pub struct ProverKey> { } /// A type that represents the verifier's key -#[derive(Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] #[serde(bound = "")] pub struct VerifierKey> { num_cons: usize, @@ -707,7 +707,7 @@ pub struct VerifierKey> { /// A succinct proof of knowledge of a witness to a relaxed R1CS instance /// The proof is produced using Spartan's combination of the sum-check and /// the commitment to a vector viewed as a polynomial commitment -#[derive(Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] #[serde(bound = "")] pub struct RelaxedR1CSSNARK> { // outer sum-check @@ -1356,6 +1356,8 @@ impl> Circuit for SpartanCircuit } /// A type that holds Spartan's prover key +#[derive(Clone, Serialize, Deserialize)] +#[serde(bound = "")] pub struct SpartanProverKey where G: Group, @@ -1368,6 +1370,8 @@ where } /// A type that holds Spartan's verifier key +#[derive(Clone, Serialize, Deserialize)] +#[serde(bound = "")] pub struct SpartanVerifierKey where G: Group, @@ -1378,7 +1382,7 @@ where } /// A direct SNARK proving a step circuit -#[derive(Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] #[serde(bound = "")] pub struct SpartanSNARK where diff --git a/src/spartan/pp/product.rs b/src/spartan/pp/product.rs index ac3975e..c3f774d 100644 --- a/src/spartan/pp/product.rs +++ b/src/spartan/pp/product.rs @@ -163,7 +163,7 @@ impl SumcheckProof { } /// Provides a product argument using the algorithm described by Setty-Lee, 2020 -#[derive(Serialize, Deserialize)] +#[derive(Clone, Serialize, Deserialize)] #[serde(bound = "")] pub struct ProductArgument { comm_output_vec: Vec>,