pub struct MarlinVerificationGadget<TargetField: PrimeField, BaseField: PrimeField, PC: PolynomialCommitment<TargetField, BaseField>, PCG: PCCheckVar<TargetField, PC, BaseField>, MM: MarlinMode>(_);
Expand description
The Marlin verification gadget.
Implementations
sourceimpl<TargetField, BaseField, PC, PCG, MM: MarlinMode> MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
TargetField: PrimeField,
BaseField: PrimeField + PoseidonDefaultParametersField,
PC: PolynomialCommitment<TargetField, BaseField>,
PCG: PCCheckVar<TargetField, PC, BaseField>,
impl<TargetField, BaseField, PC, PCG, MM: MarlinMode> MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
TargetField: PrimeField,
BaseField: PrimeField + PoseidonDefaultParametersField,
PC: PolynomialCommitment<TargetField, BaseField>,
PCG: PCCheckVar<TargetField, PC, BaseField>,
sourcepub const PROTOCOL_NAME: &'static [u8]
pub const PROTOCOL_NAME: &'static [u8]
The encoding of the protocol name for use as seed.
sourcepub fn prepared_verify<CS: ConstraintSystem<BaseField>, PR: FiatShamirRng<TargetField, BaseField>, R: FiatShamirRngVar<TargetField, BaseField, PR>>(
cs: CS,
prepared_verifying_key: &PreparedCircuitVerifyingKeyVar<TargetField, BaseField, PC, PCG, PR, R, MM>,
public_input: &[NonNativeFieldVar<TargetField, BaseField>],
proof: &ProofVar<TargetField, BaseField, PC, PCG>
) -> Result<Boolean, MarlinError>
pub fn prepared_verify<CS: ConstraintSystem<BaseField>, PR: FiatShamirRng<TargetField, BaseField>, R: FiatShamirRngVar<TargetField, BaseField, PR>>(
cs: CS,
prepared_verifying_key: &PreparedCircuitVerifyingKeyVar<TargetField, BaseField, PC, PCG, PR, R, MM>,
public_input: &[NonNativeFieldVar<TargetField, BaseField>],
proof: &ProofVar<TargetField, BaseField, PC, PCG>
) -> Result<Boolean, MarlinError>
Verify with an established hashchain initial state.
sourcepub fn verify<CS: ConstraintSystem<BaseField>, PR: FiatShamirRng<TargetField, BaseField>, R: FiatShamirRngVar<TargetField, BaseField, PR>>(
cs: CS,
verifying_key: &CircuitVerifyingKeyVar<TargetField, BaseField, PC, PCG, MM>,
public_input: &[NonNativeFieldVar<TargetField, BaseField>],
proof: &ProofVar<TargetField, BaseField, PC, PCG>
) -> Result<Boolean, MarlinError>
pub fn verify<CS: ConstraintSystem<BaseField>, PR: FiatShamirRng<TargetField, BaseField>, R: FiatShamirRngVar<TargetField, BaseField, PR>>(
cs: CS,
verifying_key: &CircuitVerifyingKeyVar<TargetField, BaseField, PC, PCG, MM>,
public_input: &[NonNativeFieldVar<TargetField, BaseField>],
proof: &ProofVar<TargetField, BaseField, PC, PCG>
) -> Result<Boolean, MarlinError>
Verify with an established hashchain initial state.
Trait Implementations
sourceimpl<TargetField, BaseField, PC, PCG, FS, MM, V> SNARKVerifierGadget<MarlinSNARK<TargetField, BaseField, PC, FS, MM, V>> for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
TargetField: PrimeField,
BaseField: PrimeField + PoseidonDefaultParametersField,
PC: PolynomialCommitment<TargetField, BaseField>,
PCG: PCCheckVar<TargetField, PC, BaseField>,
FS: FiatShamirRng<TargetField, BaseField>,
MM: MarlinMode,
V: ToConstraintField<TargetField> + Clone,
impl<TargetField, BaseField, PC, PCG, FS, MM, V> SNARKVerifierGadget<MarlinSNARK<TargetField, BaseField, PC, FS, MM, V>> for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
TargetField: PrimeField,
BaseField: PrimeField + PoseidonDefaultParametersField,
PC: PolynomialCommitment<TargetField, BaseField>,
PCG: PCCheckVar<TargetField, PC, BaseField>,
FS: FiatShamirRng<TargetField, BaseField>,
MM: MarlinMode,
V: ToConstraintField<TargetField> + Clone,
type InputGadget = NonNativeFieldInputVar<TargetField, BaseField>
type PreparedVerificationKeyGadget = PreparedCircuitVerifyingKeyVar<TargetField, BaseField, PC, PCG, FSA<TargetField, BaseField>, FSG<TargetField, BaseField>, MM>
type ProofGadget = ProofVar<TargetField, BaseField, PC, PCG>
type VerificationKeyGadget = CircuitVerifyingKeyVar<TargetField, BaseField, PC, PCG, MM>
fn input_gadget_from_bytes<CS: ConstraintSystem<BaseField>>(
cs: CS,
bytes: &[UInt8]
) -> Result<Self::InputGadget, SynthesisError>
fn check_verify<CS: ConstraintSystem<BaseField>>(
cs: CS,
verification_key: &Self::VerificationKeyGadget,
input: &Self::InputGadget,
proof: &Self::ProofGadget
) -> Result<(), SynthesisError>
fn prepared_check_verify<CS: ConstraintSystem<BaseField>>(
cs: CS,
prepared_verification_key: &Self::PreparedVerificationKeyGadget,
input: &Self::InputGadget,
proof: &Self::ProofGadget
) -> Result<(), SynthesisError>
Auto Trait Implementations
impl<TargetField, BaseField, PC, PCG, MM> RefUnwindSafe for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
BaseField: RefUnwindSafe,
MM: RefUnwindSafe,
PC: RefUnwindSafe,
PCG: RefUnwindSafe,
TargetField: RefUnwindSafe,
impl<TargetField, BaseField, PC, PCG, MM> Send for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
PC: Send,
PCG: Send,
impl<TargetField, BaseField, PC, PCG, MM> Sync for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
PC: Sync,
PCG: Sync,
impl<TargetField, BaseField, PC, PCG, MM> Unpin for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
BaseField: Unpin,
MM: Unpin,
PC: Unpin,
PCG: Unpin,
TargetField: Unpin,
impl<TargetField, BaseField, PC, PCG, MM> UnwindSafe for MarlinVerificationGadget<TargetField, BaseField, PC, PCG, MM> where
BaseField: UnwindSafe,
MM: UnwindSafe,
PC: UnwindSafe,
PCG: UnwindSafe,
TargetField: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more