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

Encryption scheme for account records.

Commitment scheme for account contents. Invoked only over Self::InnerScalarField.

Signature scheme for delegated compute.

CRH for the encrypted record.

CRH for hash of the Self::InnerSNARK verification keys. This is invoked only on the larger curve.

CRH and commitment scheme for committing to program input. Invoked inside Self::InnerSNARK and every program SNARK.

CRH for hashes of birth and death verification keys. This is invoked only on the larger curve.

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

PRF for computing serial numbers. Invoked only over Self::InnerScalarField.

Commitment scheme for record contents. Invoked only over Self::InnerScalarField.

CRH for computing the serial number nonce. Invoked only over Self::InnerScalarField.

Associated Constants

Implementors