Extensibility for additional KES keys?

Open
#52 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
haskell
Domain
cryptography

Research direction

No files or tests are named. Start by reviewing the KES agent's current key-management entry points, then compare the requirements for Peras certificates and Mithril's changing certificate scheme; done should be a documented assessment of how additional forward-secure key types could be supported.

Written by the indexing model from the issue text.

Description

Certain projects (like Peras and Mithril) also need forward secrecy functionality (for the same fundamental reason as Praos). However, they will most likely require different KES keys than what is being used today.

  • Ouroboros Peras requires certificates, which are stake-based threshold multi-signatures. The current KES keys do not have any nice sublinear aggregation properties, so certificates would be very large here (without heavy/still-impractical machinery like SNARKs). One plausible candidate (with forward secrecy) are Pixel signatures which are forward-secure and have the crucial property that any number of Pixel signatures on the same message can be aggregated in constant space.

    Another nice property is that the size of public keys and signatures is independent of the maximum number of time periods $T$, so one can easily choose a large value like $T = 2^{32}$ and still get reasonable public key/signature sizes. So one would most likely only push a new key when setting up a new node, eg due to a planned hardware migration, or if a previous key on some machine has been compromised.

  • Mithril is another protocol that requires stake-based multi-signatures. Currently, they use non-forward secure cryptography, and require everybody to re-register keys every ~5 days, but they are currently in the process of changing their certificate scheme, but I don't know the details here.

This issue is about getting an idea of how easy it would be to let the KES agent manage additional keys in the future.

Dominant language
Haskell
Stars
2
Forks
13
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from IntersectMBO/kes-agent

All issues in IntersectMBO/kes-agent

Similar issues

More Haskell issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.