Struct bellperson::groth16::aggregate::AggregateProof [−][src]
pub struct AggregateProof<E: Engine> { pub com_ab: Output<E>, pub com_c: Output<E>, pub ip_ab: E::Fqk, pub agg_c: E::G1, pub tmipp: TippMippProof<E>, }
Expand description
AggregateProof contains all elements to verify n aggregated Groth16 proofs using inner pairing product arguments. This proof can be created by any party in possession of valid Groth16 proofs.
Fields
com_ab: Output<E>
commitment to A and B using the pair commitment scheme needed to verify TIPP relation.
com_c: Output<E>
commit to C separate since we use it only in MIPP
ip_ab: E::Fqk
$A^r * B = Z$ is the left value on the aggregated Groth16 equation
agg_c: E::G1
$C^r$ is used on the right side of the aggregated Groth16 equation
tmipp: TippMippProof<E>
Implementations
Performs some high level checks on the length of vectors and others to make sure all items in the proofs are consistent with each other.
Writes the agggregated proof into the provided buffer.
Returns the number of bytes this proof is serialized to.
Trait Implementations
impl<'de, E: Engine> Deserialize<'de> for AggregateProof<E> where
E::Fqk: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
TippMippProof<E>: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
E::G1: Deserialize<'de>,
[src]
impl<'de, E: Engine> Deserialize<'de> for AggregateProof<E> where
E::Fqk: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
TippMippProof<E>: Deserialize<'de>,
E::Fqk: Deserialize<'de>,
E::G1: Deserialize<'de>,
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl<E> RefUnwindSafe for AggregateProof<E> where
<E as Engine>::Fqk: RefUnwindSafe,
<E as Engine>::G1: RefUnwindSafe,
<E as Engine>::G1Affine: RefUnwindSafe,
<E as Engine>::G2Affine: RefUnwindSafe,
impl<E> Send for AggregateProof<E>
impl<E> Sync for AggregateProof<E>
impl<E> Unpin for AggregateProof<E> where
<E as Engine>::Fqk: Unpin,
<E as Engine>::G1: Unpin,
<E as Engine>::G1Affine: Unpin,
<E as Engine>::G2Affine: Unpin,
impl<E> UnwindSafe for AggregateProof<E> where
<E as Engine>::Fqk: UnwindSafe,
<E as Engine>::G1: UnwindSafe,
<E as Engine>::G1Affine: UnwindSafe,
<E as Engine>::G2Affine: UnwindSafe,