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
impl<E: Engine> AggregateProof<E>
[src]
impl<E: Engine> AggregateProof<E>
[src]pub fn parsing_check(&self) -> Result<(), SynthesisError>
[src]
pub fn parsing_check(&self) -> Result<(), SynthesisError>
[src]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.
pub fn write(&self, out: impl Write) -> Result<()>
[src]
pub fn write(&self, out: impl Write) -> Result<()>
[src]Writes the agggregated proof into the provided buffer.
pub fn serialized_len(&self) -> usize
[src]
pub fn serialized_len(&self) -> usize
[src]Returns the number of bytes this proof is serialized to.
pub fn read(source: impl Read) -> Result<Self>
[src]
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
impl<E: Engine> PartialEq<AggregateProof<E>> for AggregateProof<E>
[src]
impl<E: Engine> PartialEq<AggregateProof<E>> for AggregateProof<E>
[src]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,
<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,
<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,
<E as Engine>::Fqk: UnwindSafe,
<E as Engine>::G1: UnwindSafe,
<E as Engine>::G1Affine: UnwindSafe,
<E as Engine>::G2Affine: UnwindSafe,
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,