Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Describe key generation for wallet credentials. #2

Open
hdevalence opened this issue Apr 29, 2020 · 0 comments
Open

Describe key generation for wallet credentials. #2

hdevalence opened this issue Apr 29, 2020 · 0 comments

Comments

@hdevalence
Copy link
Owner

Very rough notes:

The epoch mechanism requires that new issuance parameters be generated for every epoch. These issuance parameters may need some number of secret bytes, but since we can symmetrically expand a short secret into as much data as we need, we only have to consider how we generate a secret seed for each epoch.

Loss of key material means loss of availability, since all existing credentials can no longer be verified. Compromise of key material means credentials can be forged.

Forward security for issuance secrets requires that we have additional random inputs, but this cuts against ease of maintaining availability, since if there was no forward secrecy, all keys could be derived from a single seed that can be backed up by the issuer.

For now, deriving all keys from a single seed is the easiest thing to do.

Note: because this is the key schedule for the issuer's side, it's all hidden from the client anyways, so it can be changed later without breaking anything (though doing so in an existing deployment would be awkward / horrible).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant