IntersectMBO / IntersectMBO/ouroboros-network

[WIP] KES/VRF migration - Separate `Crypto` into `BodyCrypto` and `HeaderCrypto`

Open
#4,262 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
296
Forks
104
Avg merge
2d 10h
Merged PRs (30d)
4

Description

cardano-crypto-class now has new KES and VRF implementations viz., `CompactSum6KES` and `PraosBatchCompatVRF`. This necessiates presense of two KES/VRF algorithms, with newer ones to be used from the next era.

The current code in `cardano-ledger` and `ouroboros-network` (consensus) is written with an assumption that same KES and VRF will be used throughout. This assumption no longer holds true.

It should also be noticed that

- KES/VRF is primarily used in consensus
- Ledger keeps the hash of the KES or VRF keys. Due to the precise type definition of `Hash` in cardano ledger (E.g. `Hash h (VerKeyVRF v)`), the types are needed in the cardano code. This could be averted by adding a proxy type to define the hash (an initial implementation is added [here](https://github.com/input-output-hk/cardano-ledger/tree/lehins/no-vrf-usage-in-ledger)).

Another important assumption is that
- Hash, and Digital Signature (DSIGN) algorithms will not change in forseeable near future. (Blake2).

Considering the above points it would be logical to

- Separate Crypto into two parts `BodyCrypto` (Name can be different) and `HeaderCrypto`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.