[][src]Module zcash_primitives::constants

Various constants used by the Zcash primitives.

Structs

PEDERSEN_HASH_EXP_TABLE

The exp table for PEDERSEN_HASH_GENERATORS.

Constants

CRH_IVK_PERSONALIZATION

BLAKE2s Personalization for CRH^ivk = BLAKE2s(ak | nk)

GH_FIRST_BLOCK

First 64 bytes of the BLAKE2s input during group hash. This is chosen to be some random string that we couldn't have anticipated when we designed the algorithm, for rigidity purposes. We deliberately use an ASCII hex string of 32 bytes here.

KEY_DIVERSIFICATION_PERSONALIZATION

BLAKE2s Personalization for the group hash for key diversification

NOTE_COMMITMENT_RANDOMNESS_GENERATOR

The note commitment is randomized over this generator.

NULLIFIER_POSITION_GENERATOR

The node commitment is randomized again by the position in order to supply the nullifier computation with a unique input w.r.t. the note being spent, to prevent Faerie gold attacks.

NULLIFIER_POSITION_IN_TREE_GENERATOR_PERSONALIZATION

BLAKE2s Personalization for the nullifier position generator (for computing rho)

PEDERSEN_HASH_CHUNKS_PER_GENERATOR

The maximum number of chunks per segment of the Pedersen hash.

PEDERSEN_HASH_EXP_WINDOW_SIZE

The window size for exponentiation of Pedersen hash generators outside the circuit.

PEDERSEN_HASH_GENERATORS

The generators (for each segment) used in all Pedersen commitments.

PEDERSEN_HASH_GENERATORS_PERSONALIZATION

BLAKE2s Personalization for Pedersen hash generators.

PRF_NF_PERSONALIZATION

BLAKE2s Personalization for PRF^nf = BLAKE2s(nk | rho)

PROOF_GENERATION_KEY_BASE_GENERATOR_PERSONALIZATION

BLAKE2s Personalization for the proof generation key base point

PROOF_GENERATION_KEY_GENERATOR

The prover will demonstrate knowledge of discrete log with respect to this base when they are constructing a proof, in order to authorize proof construction.

SPENDING_KEY_GENERATOR

The spender proves discrete log with respect to this base at spend time.

SPENDING_KEY_GENERATOR_PERSONALIZATION

BLAKE2s Personalization for the spending key base point

VALUE_COMMITMENT_GENERATOR_PERSONALIZATION

BLAKE2s Personalization for the value commitment generator for the value

VALUE_COMMITMENT_RANDOMNESS_GENERATOR

The value commitment is randomized over this generator, for privacy.

VALUE_COMMITMENT_VALUE_GENERATOR

The value commitment is used to check balance between inputs and outputs. The value is placed over this generator.