Key Registration - 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
- Auto
- Light
- Dark
Algorand Specifications
A key registration transaction additionally has the following fields:
| FIELD | CODEC | TYPE | REQUIRED |
|---|---|---|---|
| Vote Public Key | votekey |
[32]byte |
Yes (for Online) |
| Selection Public Key | selkey |
[32]byte |
Yes (for Online) |
| State Proof Public Key | sprfkey |
[64]byte |
Yes (for Online) |
| Vote First | votefst |
uint64 |
Yes (for Online) |
| Vote Last | votelst |
uint64 |
Yes (for Online) |
| Vote Key Dilution | votekd |
uint64 |
Yes (for Online) |
| Non-Participation | nonpart |
bool |
No |
The vote public key vpk is the (root) Ed25519 public authentication key of an account’s participation keys.
The selection public key spk is the public VRF key of an account’s participation keys.
The state proof public key spk is the public commitment to the account’s State Proof keys.
If vpk, spk, and spk are all omitted, the transaction deregisters the account’s participation key set, and marks the account as offline (i.e., non-participating in the agreement).
The vote first vf indicates the first valid round (inclusive) of an account’s participation key sets.
The vote last vl indicates the last valid round (inclusive) of an account’s participation key sets.
The vote key dilution defines the number of rounds for generating a new (second-level) ephemeral participation key. The higher the number, the more "dilution" is added to the authentication key’s security.
For further details on the two-level ephemeral key scheme used for consensus participation authentication, refer to the Algorand Participation Key Specification.
The non-participation nonpart is a flag which, when deregistering keys, specifies whether to mark the account just as offline (if nonpart is false) or as non-participatory (if nonpart is true).
The non-participatory status is set to true if the account is irreversibly excluded from consensus participation and from the legacy distribution rewards mechanism.
For a key registration transaction to be valid, the following conditions MUST apply:
- The elements of the set (vpk,spk,sppk,KeyDilution) are REQUIRED to be all present, or all omitted (clear).
Providing the default value or the empty value for any of the set members would be interpreted as if these values were omitted.
- vfv ≤ vlv.
- If the set (vpk,spk,sppk,KeyDilution) is clear, then vf and vl MUST be clear as well.
- If the set (vpk,spk,sppk,KeyDilution) is not clear, the following MUST apply:
- vfv ≤ r + 1 and vlv > r, where r is the current network round.
- vfv ≤ r l + 1.
- vlv − vfv < K Δ r, max.
It is RECOMMENDED that vlv − vfv ≤ 3,000,000 rounds for security reasons, to ensure safe rotation of participation keys.