Enum proof_system::statement::Statement
source · [−]pub enum Statement<E: PairingEngine, G: AffineCurve> {
PoKBBSSignatureG1(PoKBBSSignatureG1<E>),
PedersenCommitment(PedersenCommitment<G>),
AccumulatorMembership(AccumulatorMembership<E>),
AccumulatorNonMembership(AccumulatorNonMembership<E>),
SaverProver(SaverProver<E>),
SaverVerifier(SaverVerifier<E>),
BoundCheckLegoGroth16Prover(BoundCheckLegoGroth16Prover<E>),
BoundCheckLegoGroth16Verifier(BoundCheckLegoGroth16Verifier<E>),
R1CSCircomProver(R1CSCircomProver<E>),
R1CSCircomVerifier(R1CSCircomVerifier<E>),
}Expand description
Type of relation being proved and the public values for the relation
Variants
PoKBBSSignatureG1(PoKBBSSignatureG1<E>)
For proof of knowledge of BBS+ signature
PedersenCommitment(PedersenCommitment<G>)
For proof of knowledge of committed elements in a Pedersen commitment
AccumulatorMembership(AccumulatorMembership<E>)
For proof of knowledge of an accumulator member and its corresponding witness
AccumulatorNonMembership(AccumulatorNonMembership<E>)
For proof of knowledge of an accumulator non-member and its corresponding witness
SaverProver(SaverProver<E>)
Used by prover to create proof of verifiable encryption using SAVER
SaverVerifier(SaverVerifier<E>)
Used by verifier to verify proof of verifiable encryption using SAVER
BoundCheckLegoGroth16Prover(BoundCheckLegoGroth16Prover<E>)
Used by prover to create proof that witness satisfies publicly known bounds inclusively (<=, >=) using LegoGroth16
BoundCheckLegoGroth16Verifier(BoundCheckLegoGroth16Verifier<E>)
Used by verifier to verify proof that witness satisfies publicly known bounds inclusively (<=, >=) using LegoGroth16
R1CSCircomProver(R1CSCircomProver<E>)
Used by prover to create proof that witness satisfies constraints given by an R1CS (generated by Circom), using LegoGroth16
R1CSCircomVerifier(R1CSCircomVerifier<E>)
Used by verifier to verify proof that witness satisfies constraints given by an R1CS (generated by Circom), using LegoGroth16
Trait Implementations
sourceimpl<E: PairingEngine, G: AffineCurve> CanonicalDeserialize for Statement<E, G>
impl<E: PairingEngine, G: AffineCurve> CanonicalDeserialize for Statement<E, G>
sourcefn deserialize<R: Read>(reader: R) -> Result<Self, SerializationError>
fn deserialize<R: Read>(reader: R) -> Result<Self, SerializationError>
Self from reader.sourcefn deserialize_uncompressed<R: Read>(
reader: R
) -> Result<Self, SerializationError>
fn deserialize_uncompressed<R: Read>(
reader: R
) -> Result<Self, SerializationError>
Self from reader without compression.sourcefn deserialize_unchecked<R: Read>(reader: R) -> Result<Self, SerializationError>
fn deserialize_unchecked<R: Read>(reader: R) -> Result<Self, SerializationError>
self from reader without compression, and without performing
validity checks. Should be used only when the input is trusted. Read moresourceimpl<E: PairingEngine, G: AffineCurve> CanonicalSerialize for Statement<E, G>
impl<E: PairingEngine, G: AffineCurve> CanonicalSerialize for Statement<E, G>
sourcefn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>
fn serialize<W: Write>(&self, writer: W) -> Result<(), SerializationError>
self into writer.
It is left up to a particular type for how it strikes the
serialization efficiency vs compression tradeoff.
For standard types (e.g. bool, lengths, etc.) typically an uncompressed
form is used, whereas for algebraic types compressed forms are used. Read morefn serialized_size(&self) -> usize
sourcefn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_uncompressed<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>
self into writer without compression.sourcefn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>
fn serialize_unchecked<W: Write>(
&self,
writer: W
) -> Result<(), SerializationError>
self into writer without compression, and without
performing validity checks. Should be used only when there is no
danger of adversarial manipulation of the output. Read more