Two-Level Ephemeral Signature - 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
For a player with their participation keys registered on the Ledger (and hosted on an Algorand node), a set of ephemeral sub-keys is created.
An ephemeral sub-key is a key pair that produces one-time signature for messages. It MUST be deleted after use to ensure forward security. Algorand’s ephemeral subkeys use Ed25519 public-key signature system.
For further details, refer to the Cryptography primitives specification.
Algorand uses a two-level ephemeral signature scheme. Instead of signing voting messages directly, Algorand accounts use their registered voting keys to sign an intermediate ephemeral sub-key.
This intermediate ephemeral sub-key signs a batch of leaf-level ephemeral sub-keys. Hence, each intermediate ephemeral sub-key is associated with a batch number (BatchBatch), and each leaf ephemeral sub-key is associated with both a batch number (of its parent key) and an offset (OffsetOffset, denotes its offset within a BatchBatch). An agreement voting message is signed hierarchically:
Voting Keys Root Key
└── Batch Sub-Key
└── Leaf Sub-Key
└── Agreement Voting Message
Further details on this process in the One-time Signature subsection.
Each leaf-level ephemeral sub-key is used for voting on a single agreement round, and will be deleted afterward. Once a batch of leaf-level ephemeral sub-keys run out, a new batch is generated. Algorand allows users to set the number of leaf-level ephemeral sub-key per batch, KeyDilutionKeyDilution.
The default KeyDilutionKeyDilution value is 10,00010,000.
An Algorand account can change its KeyDilutionKeyDilution in the participation keys registration.
For further details about the structure of a participation keys registration (
keyreg) transaction, refer to the Ledger specification.
The following diagram shows the tree structure of the voting signature scheme:
One-Time Signature container
Batch Signer 1
Batch Signer 2
...
Batch Signer N
Batch 1 Key 1
Batch 1 Key 2
...
Batch 1 Key N