VRF Selection Keys - Algorand Specifications

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Algorand Specifications

To check the validity of a voting message, its VRF Selection key needs to be verified. Algorand uses Verifiable Random Function (VRF) to generate selection keys.

More specifically, an unverified vote (UnauthenticatedVoteUnauthenticatedVote) has the following fields:

Important

IMPLEMENTATION:

Unauthenticated vote reference implementation.

Once receiving an unverified vote (UnauthenticatedVoteUnauthenticatedVote) from the network, an Algorand node verifies its VRF selection key by checking the validity of the VRF Proof (in CredCred), the committee membership parameters that it is conditioned on, and the voter’s voting stake.

If verified, the result of this verification is wrapped in a CredentialCredential struct, containing the following fields:

And this verified credential is wrapped in a VoteVote struct with Raw Vote (RR), Verified Credential (CredentialCredential), and Signature (SignatureSignature).

Important

IMPLEMENTATION:

Vote struct reference implementation.