pub enum ProofMode<'a, G1: Group, G2, GT> {
Transparent(&'a ScalarProductMessage<G1, G2>, PhantomData<&'a GT>),
Zk {
e2: &'a G2,
y_com: &'a G1,
sigma1: &'a Sigma1Proof<G1, G2, G1::Scalar>,
sigma2: &'a Sigma2Proof<G1::Scalar, GT>,
scalar_product: &'a ScalarProductProof<G1, G2, G1::Scalar, GT>,
},
}Expand description
A DoryProof classified by mode, carrying references to the fields that
mode guarantees (see DoryProof::mode).
Variants§
Transparent(&'a ScalarProductMessage<G1, G2>, PhantomData<&'a GT>)
Transparent proof: reveals the folded witness as the clear final
message and carries no ZK fields. (The phantom borrow ties down GT,
which only the ZK variant otherwise uses, keeping the enum’s generics —
and auto traits — identical across feature flags.)
Zk
ZK proof: carries every blinding field and Σ-proof
Fields
§
sigma1: &'a Sigma1Proof<G1, G2, G1::Scalar>Σ₁ proof: E₂ and y_com commit to the same y.
§
sigma2: &'a Sigma2Proof<G1::Scalar, GT>Σ₂ proof: VMV constraint (batched into the final check).
§
scalar_product: &'a ScalarProductProof<G1, G2, G1::Scalar, GT>Scalar-product Σ-proof over the folded statement.
Trait Implementations§
impl<'a, G1: Copy + Group, G2: Copy, GT: Copy> Copy for ProofMode<'a, G1, G2, GT>
Auto Trait Implementations§
impl<'a, G1, G2, GT> Freeze for ProofMode<'a, G1, G2, GT>
impl<'a, G1, G2, GT> RefUnwindSafe for ProofMode<'a, G1, G2, GT>where
G2: RefUnwindSafe,
G1: RefUnwindSafe,
GT: RefUnwindSafe,
<G1 as Group>::Scalar: RefUnwindSafe,
impl<'a, G1, G2, GT> Send for ProofMode<'a, G1, G2, GT>
impl<'a, G1, G2, GT> Sync for ProofMode<'a, G1, G2, GT>
impl<'a, G1, G2, GT> Unpin for ProofMode<'a, G1, G2, GT>
impl<'a, G1, G2, GT> UnsafeUnpin for ProofMode<'a, G1, G2, GT>
impl<'a, G1, G2, GT> UnwindSafe for ProofMode<'a, G1, G2, GT>where
G2: RefUnwindSafe,
G1: RefUnwindSafe,
GT: RefUnwindSafe,
<G1 as Group>::Scalar: RefUnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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