Skip to main content
Version: 2.0.0-beta-3

Epoch Key

Epoch keys are public, temporary, identifiers for users.

  • Unique epoch keys are generated for each user in each epoch.
  • They are the users' temporary personas, allowing anonymous interaction with others.
  • Epoch keys receive attestations to change user data.
  • An epoch key is computed by:
hash4([identitySecret, attesterId, epoch, nonce])

where nonce can be any value between 0 and numEpochKeyNoncePerEpoch - 1, so that a user can have numEpochKeyNoncePerEpoch epoch keys per epoch.

  • Only a user knows their identitySecret, so only they know if they have received an attestation; others see an attestation given to a random value.
  • In the epoch key proof circuit, a user can prove that they own an epochKey, and so are able to receive and process attestations given to that epochKey.