Struct ark_poly_commit::marlin::marlin_pst13_pc::UniversalParams [−][src]
pub struct UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>, { pub powers_of_g: BTreeMap<P::Term, E::G1Affine>, pub gamma_g: E::G1Affine, pub powers_of_gamma_g: Vec<Vec<E::G1Affine>>, pub h: E::G2Affine, pub beta_h: Vec<E::G2Affine>, pub prepared_h: E::G2Prepared, pub prepared_beta_h: Vec<E::G2Prepared>, pub num_vars: usize, pub max_degree: usize, }
Expand description
UniversalParams
are the universal parameters for the MarlinPST13 scheme.
Fields
powers_of_g: BTreeMap<P::Term, E::G1Affine>
Contains group elements corresponding to all possible monomials with
num_vars
and maximum degree max_degree
evaluated at \beta
gamma_g: E::G1Affine
\gamma
times the generater of G1
powers_of_gamma_g: Vec<Vec<E::G1Affine>>
Group elements of the form { \beta_i^j \gamma G }
, where i
ranges
from 0 to num_vars-1
and j
ranges from 1
to max_degree+1
.
h: E::G2Affine
The generator of G2.
beta_h: Vec<E::G2Affine>
Group elements of the form { \beta_i H }
, where i
ranges from 0 to num_vars-1
prepared_h: E::G2Prepared
The generator of G2, prepared for use in pairings.
prepared_beta_h: Vec<E::G2Prepared>
Group elements of the form { \beta_i H }
, where i
ranges from 0 to num_vars-1
,
prepared for use in pairings
num_vars: usize
The number of variables self
is initialized for
max_degree: usize
The maximum degree supported by self
Trait Implementations
impl<E, P> CanonicalDeserialize for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]
impl<E, P> CanonicalDeserialize for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]Reads Self
from reader
.
Reads Self
from reader
without compression.
Reads self
from reader
without compression, and without performing
validity checks. Should be used only when the input is trusted. Read more
impl<E, P> CanonicalSerialize for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]
impl<E, P> CanonicalSerialize for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]Serializes 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 more
Serializes self
into writer
without compression.
Serializes 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
impl<E, P> Clone for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]
impl<E, P> Clone for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]impl<E, P> Debug for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]
impl<E, P> Debug for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]impl<E, P> Default for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]
impl<E, P> Default for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]impl<E, P> PCUniversalParams for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]
impl<E, P> PCUniversalParams for UniversalParams<E, P> where
E: PairingEngine,
P: MVPolynomial<E::Fr>,
P::Point: Index<usize, Output = E::Fr>,
[src]Outputs the maximum degree supported by the committer key.
Auto Trait Implementations
impl<E, P> RefUnwindSafe for UniversalParams<E, P> where
<E as PairingEngine>::G1Affine: RefUnwindSafe,
<E as PairingEngine>::G2Affine: RefUnwindSafe,
<E as PairingEngine>::G2Prepared: RefUnwindSafe,
<P as MVPolynomial<<E as PairingEngine>::Fr>>::Term: RefUnwindSafe,
impl<E, P> Send for UniversalParams<E, P>
impl<E, P> Sync for UniversalParams<E, P>
impl<E, P> Unpin for UniversalParams<E, P> where
<E as PairingEngine>::G1Affine: Unpin,
<E as PairingEngine>::G2Affine: Unpin,
<E as PairingEngine>::G2Prepared: Unpin,
impl<E, P> UnwindSafe for UniversalParams<E, P> where
<E as PairingEngine>::G1Affine: RefUnwindSafe + UnwindSafe,
<E as PairingEngine>::G2Affine: UnwindSafe,
<E as PairingEngine>::G2Prepared: UnwindSafe,
<P as MVPolynomial<<E as PairingEngine>::Fr>>::Term: RefUnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
fn hash_uncompressed<H>(&self) -> GenericArray<u8, <H as Digest>::OutputSize> where
H: Digest,
[src]type Output = T
type Output = T
Should always be Self
pub fn vzip(self) -> V