Expand description
This module implements This module implements A succinct proof of knowledge of a witness to a batch of relaxed R1CS instances
The proof is produced using Spartan’s combination of the sum-check and
the commitment to a vector viewed as a polynomial commitment This module implements This module implements This module implements This module implements produces a succinct proof of satisfiability of a BatchedRelaxedR1CSSNARKTrait
using Spartan that is generic over the polynomial commitment
+ Expand description
BatchedRelaxedR1CSSNARKTrait
using Spartan that is generic over the polynomial commitment
and evaluation argument (i.e., a PCS) This version of Spartan does not use preprocessing so the verifier keeps the
entire description of R1CS matrices. This is essentially optimal for the verifier when using an IPA-based polynomial
commitment scheme. This batched implementation batches the outer and inner sumchecks of the Spartan SNARK.Struct arecibo::
source · pub struct BatchedRelaxedR1CSSNARK<E: Engine, EE: EvaluationEngineTrait<E>> { /* private fields */ }
Expand description
Trait Implementations§
impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>
type VerifierKey = VerifierKey<E, EE>
Trait Implementations§
impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>
type VerifierKey = VerifierKey<E, EE>
fn setup(
ck: Arc<<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey>,
S: Vec<&R1CSShape<E>>
) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>
fn prove(
@@ -11,7 +11,7 @@
S: Vec<&R1CSShape<E>>,
U: &[RelaxedR1CSInstance<E>],
W: &[RelaxedR1CSWitness<E>]
-) -> Result<Self, NovaError>
fn verify(
&self,
vk: &Self::VerifierKey,
U: &[RelaxedR1CSInstance<E>]
@@ -21,19 +21,19 @@
be at least as large as this hint.
impl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for BatchedRelaxedR1CSSNARK<E, EE>
impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for BatchedRelaxedR1CSSNARK<E, EE>
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>
type VerifierKey = VerifierKey<E, EE>
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for BatchedRelaxedR1CSSNARK<E, EE>
type VerifierKey = VerifierKey<E, EE>
fn setup(
ck: Arc<<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey>,
S: &R1CSShape<E>
-) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>
fn prove(
+) -> Result<(Self::ProverKey, Self::VerifierKey), NovaError>
fn prove(
ck: &<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey,
pk: &Self::ProverKey,
S: &R1CSShape<E>,
U: &RelaxedR1CSInstance<E>,
W: &RelaxedR1CSWitness<E>
-) -> Result<Self, NovaError>
fn verify(
&self,
vk: &Self::VerifierKey,
U: &RelaxedR1CSInstance<E>
diff --git a/docs/arecibo/spartan/index.html b/docs/arecibo/spartan/index.html
index 84622a814..79629b81f 100644
--- a/docs/arecibo/spartan/index.html
+++ b/docs/arecibo/spartan/index.html
@@ -1,5 +1,5 @@
Expand description
RelaxedR1CSSNARKTrait
using Spartan that is generic
+ Expand description
RelaxedR1CSSNARKTrait
using Spartan that is generic
over the polynomial commitment and evaluation argument (i.e., a PCS)
We provide two implementations, one in snark.rs (which does not use any preprocessing)
and another in ppsnark.rs (which uses preprocessing to keep the verifier’s state small if the PCS provides a succinct verifier)
diff --git a/docs/arecibo/spartan/snark/index.html b/docs/arecibo/spartan/snark/index.html
index bff6bd5f8..bd97d2b47 100644
--- a/docs/arecibo/spartan/snark/index.html
+++ b/docs/arecibo/spartan/snark/index.html
@@ -1,5 +1,5 @@
Expand description
RelaxedR1CSSNARKTrait
using Spartan that is generic
+ Expand description
RelaxedR1CSSNARKTrait
using Spartan that is generic
over the polynomial commitment and evaluation argument (i.e., a PCS)
This version of Spartan does not use preprocessing so the verifier keeps the entire
description of R1CS matrices. This is essentially optimal for the verifier when using
diff --git a/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html b/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html
index be6dc6529..d12354eab 100644
--- a/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html
+++ b/docs/arecibo/spartan/snark/struct.RelaxedR1CSSNARK.html
@@ -7,14 +7,14 @@
EE::EvaluationArgument: Clone,fn clone(&self) -> RelaxedR1CSSNARK<E, EE>
fn clone_from(&mut self, source: &Self)
source
. Read moreimpl<E: Debug + Engine, EE: Debug + EvaluationEngineTrait<E>> Debug for RelaxedR1CSSNARK<E, EE>
impl<'de, E: Engine, EE: EvaluationEngineTrait<E>> Deserialize<'de> for RelaxedR1CSSNARK<E, EE>
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for RelaxedR1CSSNARK<E, EE>
fn prove(
+ __D: Deserializer<'de>,
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for RelaxedR1CSSNARK<E, EE>
fn prove(
ck: &<<E as Engine>::CE as CommitmentEngineTrait<E>>::CommitmentKey,
pk: &Self::ProverKey,
S: &R1CSShape<E>,
U: &RelaxedR1CSInstance<E>,
W: &RelaxedR1CSWitness<E>
) -> Result<Self, NovaError>
RelaxedR1CS
instancefn verify(
&self,
vk: &Self::VerifierKey,
U: &RelaxedR1CSInstance<E>
diff --git a/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html b/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html
index 76bcd5b63..dc70f027d 100644
--- a/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html
+++ b/docs/arecibo/traits/snark/trait.BatchedRelaxedR1CSSNARKTrait.html
@@ -48,4 +48,4 @@
a minimum sizing cue for the commitment key used by this SNARK
implementation. The commitment key passed in setup should then
be at least as large as this hint.
Object Safety§
Implementors§
impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
Object Safety§
Implementors§
impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
impl<E: Engine, EE: EvaluationEngineTrait<E>> BatchedRelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
Object Safety§
Implementors§
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched::BatchedRelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::batched_ppsnark::BatchedRelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::ppsnark::RelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>
impl<E: Engine, EE: EvaluationEngineTrait<E>> RelaxedR1CSSNARKTrait<E> for arecibo::spartan::snark::RelaxedR1CSSNARK<E, EE>
type ProverKey = ProverKey<E, EE>
type VerifierKey = VerifierKey<E, EE>