Trait snarkvm_dpc::testnet1::Testnet1Components [−][src]
pub trait Testnet1Components: DPCComponents { type MerkleParameters: LoadableMerkleParameters; type MerkleHashGadget: CRHGadget<<Self::MerkleParameters as MerkleParameters>::H, Self::InnerScalarField>; type EncryptionGroup: Group + ProjectiveCurve; type EncryptionModelParameters: MontgomeryParameters + TwistedEdwardsParameters; type InnerSNARK: SNARK<Circuit = InnerCircuit<Self>, AllocatedCircuit = InnerCircuit<Self>, VerifierInput = InnerCircuitVerifierInput<Self>>; type InnerSNARKGadget: SNARKVerifierGadget<Self::InnerSNARK, Self::OuterScalarField, Input = Vec<Boolean>>; type OuterSNARK: SNARK<Circuit = OuterCircuit<Self>, AllocatedCircuit = OuterCircuit<Self>, VerifierInput = OuterCircuitVerifierInput<Self>>; type NoopProgramSNARK: SNARK<Circuit = NoopCircuit<Self>, AllocatedCircuit = NoopCircuit<Self>, VerifierInput = ProgramLocalData<Self>>; type NoopProgramSNARKGadget: SNARKVerifierGadget<Self::NoopProgramSNARK, Self::OuterScalarField, Input = Vec<Boolean>>; }
Expand description
Trait that stores information about the testnet1 DPC scheme.
Associated Types
Ledger digest type.
type MerkleHashGadget: CRHGadget<<Self::MerkleParameters as MerkleParameters>::H, Self::InnerScalarField>
type EncryptionGroup: Group + ProjectiveCurve
type EncryptionGroup: Group + ProjectiveCurve
Group and Model Parameters for record encryption
type InnerSNARK: SNARK<Circuit = InnerCircuit<Self>, AllocatedCircuit = InnerCircuit<Self>, VerifierInput = InnerCircuitVerifierInput<Self>>
type InnerSNARK: SNARK<Circuit = InnerCircuit<Self>, AllocatedCircuit = InnerCircuit<Self>, VerifierInput = InnerCircuitVerifierInput<Self>>
SNARK for non-proof-verification checks
type InnerSNARKGadget: SNARKVerifierGadget<Self::InnerSNARK, Self::OuterScalarField, Input = Vec<Boolean>>
type InnerSNARKGadget: SNARKVerifierGadget<Self::InnerSNARK, Self::OuterScalarField, Input = Vec<Boolean>>
SNARK Verifier gadget for the inner snark
type OuterSNARK: SNARK<Circuit = OuterCircuit<Self>, AllocatedCircuit = OuterCircuit<Self>, VerifierInput = OuterCircuitVerifierInput<Self>>
type OuterSNARK: SNARK<Circuit = OuterCircuit<Self>, AllocatedCircuit = OuterCircuit<Self>, VerifierInput = OuterCircuitVerifierInput<Self>>
SNARK for proof-verification checks
type NoopProgramSNARK: SNARK<Circuit = NoopCircuit<Self>, AllocatedCircuit = NoopCircuit<Self>, VerifierInput = ProgramLocalData<Self>>
type NoopProgramSNARK: SNARK<Circuit = NoopCircuit<Self>, AllocatedCircuit = NoopCircuit<Self>, VerifierInput = ProgramLocalData<Self>>
SNARK for the no-op “always-accept” that does nothing with its input.
type NoopProgramSNARKGadget: SNARKVerifierGadget<Self::NoopProgramSNARK, Self::OuterScalarField, Input = Vec<Boolean>>
type NoopProgramSNARKGadget: SNARKVerifierGadget<Self::NoopProgramSNARK, Self::OuterScalarField, Input = Vec<Boolean>>
SNARK Verifier gadget for the no-op “always-accept” that does nothing with its input.