Trait snarkvm_dpc::traits::dpc_components::DPCComponents [−][src]
pub trait DPCComponents: 'static + Sized {}Show associated items
type InnerCurve: PairingEngine; type OuterCurve: PairingEngine; type InnerScalarField: PrimeField; type OuterScalarField: PrimeField; type AccountEncryption: EncryptionScheme; type AccountEncryptionGadget: EncryptionGadget<Self::AccountEncryption, Self::InnerScalarField>; type AccountCommitment: CommitmentScheme; type AccountCommitmentGadget: CommitmentGadget<Self::AccountCommitment, Self::InnerScalarField>; type AccountSignature: SignatureScheme; type AccountSignatureGadget: SignaturePublicKeyRandomizationGadget<Self::AccountSignature, Self::InnerScalarField>; type EncryptedRecordCRH: CRH; type EncryptedRecordCRHGadget: CRHGadget<Self::EncryptedRecordCRH, Self::InnerScalarField>; type InnerCircuitIDCRH: CRH; type InnerCircuitIDCRHGadget: CRHGadget<Self::InnerCircuitIDCRH, Self::OuterScalarField>; type LocalDataCRH: CRH; type LocalDataCRHGadget: CRHGadget<Self::LocalDataCRH, Self::InnerScalarField>; type LocalDataCommitment: CommitmentScheme; type LocalDataCommitmentGadget: CommitmentGadget<Self::LocalDataCommitment, Self::InnerScalarField>; type ProgramVerificationKeyCRH: CRH; type ProgramVerificationKeyCRHGadget: CRHGadget<Self::ProgramVerificationKeyCRH, Self::OuterScalarField>; type ProgramVerificationKeyCommitment: CommitmentScheme; type ProgramVerificationKeyCommitmentGadget: CommitmentGadget<Self::ProgramVerificationKeyCommitment, Self::InnerScalarField> + CommitmentGadget<Self::ProgramVerificationKeyCommitment, Self::OuterScalarField>; type PRF: PRF; type PRFGadget: PRFGadget<Self::PRF, Self::InnerScalarField>; type RecordCommitment: CommitmentScheme; type RecordCommitmentGadget: CommitmentGadget<Self::RecordCommitment, Self::InnerScalarField>; type SerialNumberNonceCRH: CRH; type SerialNumberNonceCRHGadget: CRHGadget<Self::SerialNumberNonceCRH, Self::InnerScalarField>; const NETWORK_ID: u8; const NUM_INPUT_RECORDS: usize; const NUM_OUTPUT_RECORDS: usize; const NUM_TOTAL_RECORDS: usize;
Associated Types
type InnerCurve: PairingEngine
type OuterCurve: PairingEngine
Encryption scheme for account records.
type AccountEncryptionGadget: EncryptionGadget<Self::AccountEncryption, Self::InnerScalarField>
Commitment scheme for account contents. Invoked only over Self::InnerScalarField
.
type AccountCommitmentGadget: CommitmentGadget<Self::AccountCommitment, Self::InnerScalarField>
Signature scheme for delegated compute.
type AccountSignatureGadget: SignaturePublicKeyRandomizationGadget<Self::AccountSignature, Self::InnerScalarField>
type EncryptedRecordCRH: CRH
type EncryptedRecordCRH: CRH
CRH for the encrypted record.
type EncryptedRecordCRHGadget: CRHGadget<Self::EncryptedRecordCRH, Self::InnerScalarField>
type InnerCircuitIDCRH: CRH
type InnerCircuitIDCRH: CRH
CRH for hash of the Self::InnerSNARK
verification keys.
This is invoked only on the larger curve.
type InnerCircuitIDCRHGadget: CRHGadget<Self::InnerCircuitIDCRH, Self::OuterScalarField>
type LocalDataCRH: CRH
type LocalDataCRH: CRH
CRH and commitment scheme for committing to program input. Invoked inside
Self::InnerSNARK
and every program SNARK.
type LocalDataCRHGadget: CRHGadget<Self::LocalDataCRH, Self::InnerScalarField>
type LocalDataCommitmentGadget: CommitmentGadget<Self::LocalDataCommitment, Self::InnerScalarField>
CRH for hashes of birth and death verification keys. This is invoked only on the larger curve.
type ProgramVerificationKeyCRHGadget: CRHGadget<Self::ProgramVerificationKeyCRH, Self::OuterScalarField>
Commitment scheme for committing to hashes of birth and death verification keys
Used to commit to hashes of verification keys on the smaller curve and to decommit hashes of verification keys on the larger curve
type PRFGadget: PRFGadget<Self::PRF, Self::InnerScalarField>
Commitment scheme for record contents. Invoked only over Self::InnerScalarField
.
type RecordCommitmentGadget: CommitmentGadget<Self::RecordCommitment, Self::InnerScalarField>
type SerialNumberNonceCRH: CRH
type SerialNumberNonceCRH: CRH
CRH for computing the serial number nonce. Invoked only over Self::InnerScalarField
.
type SerialNumberNonceCRHGadget: CRHGadget<Self::SerialNumberNonceCRH, Self::InnerScalarField>
Associated Constants
const NETWORK_ID: u8
const NUM_INPUT_RECORDS: usize
const NUM_OUTPUT_RECORDS: usize
const NUM_TOTAL_RECORDS: usize