pub struct BatchArgument<E: Pairing>(/* private fields */);
Expand description
A batching argument.
Implementations§
Source§impl<E, F, P> BatchArgument<E>where
E: Pairing<BaseField = F, G1Affine = Affine<P>>,
F: RescueParameter + SWToTEConParam,
P: SWCurveConfig<BaseField = F>,
impl<E, F, P> BatchArgument<E>where
E: Pairing<BaseField = F, G1Affine = Affine<P>>,
F: RescueParameter + SWToTEConParam,
P: SWCurveConfig<BaseField = F>,
Sourcepub fn setup_instance(
srs: &UniversalSrs<E>,
circuit: PlonkCircuit<E::ScalarField>,
circuit_type: MergeableCircuitType,
) -> Result<Instance<E>, PlonkError>
pub fn setup_instance( srs: &UniversalSrs<E>, circuit: PlonkCircuit<E::ScalarField>, circuit_type: MergeableCircuitType, ) -> Result<Instance<E>, PlonkError>
Setup the circuit and the proving key for a (mergeable) instance.
Sourcepub fn batch_prove<R, T>(
prng: &mut R,
instances_type_a: &[Instance<E>],
instances_type_b: &[Instance<E>],
) -> Result<BatchProof<E>, PlonkError>
pub fn batch_prove<R, T>( prng: &mut R, instances_type_a: &[Instance<E>], instances_type_b: &[Instance<E>], ) -> Result<BatchProof<E>, PlonkError>
Prove satisfiability of multiple instances in a batch.
Sourcepub fn partial_verify<T>(
beta_g: &E::G1Affine,
generator_g: &E::G1Affine,
merged_vks: &[VerifyingKey<E>],
shared_public_input: &[E::ScalarField],
batch_proof: &BatchProof<E>,
blinding_factor: E::ScalarField,
) -> Result<(E::G1, E::G1), PlonkError>where
T: PlonkTranscript<F>,
pub fn partial_verify<T>(
beta_g: &E::G1Affine,
generator_g: &E::G1Affine,
merged_vks: &[VerifyingKey<E>],
shared_public_input: &[E::ScalarField],
batch_proof: &BatchProof<E>,
blinding_factor: E::ScalarField,
) -> Result<(E::G1, E::G1), PlonkError>where
T: PlonkTranscript<F>,
Partially verify a batched proof without performing the pairing. Return the two group elements used in the final pairing.
Source§impl<E> BatchArgument<E>where
E: Pairing,
impl<E> BatchArgument<E>where
E: Pairing,
Sourcepub fn aggregate_verify_keys(
vks_type_a: &[&VerifyingKey<E>],
vks_type_b: &[&VerifyingKey<E>],
) -> Result<Vec<VerifyingKey<E>>, PlonkError>
pub fn aggregate_verify_keys( vks_type_a: &[&VerifyingKey<E>], vks_type_b: &[&VerifyingKey<E>], ) -> Result<Vec<VerifyingKey<E>>, PlonkError>
Aggregate verification keys
Auto Trait Implementations§
impl<E> Freeze for BatchArgument<E>
impl<E> RefUnwindSafe for BatchArgument<E>where
E: RefUnwindSafe,
impl<E> Send for BatchArgument<E>
impl<E> Sync for BatchArgument<E>
impl<E> Unpin for BatchArgument<E>where
E: Unpin,
impl<E> UnwindSafe for BatchArgument<E>where
E: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more