IntersectMBO / IntersectMBO/ouroboros-network
[WIP] KES/VRF migration - Separate `Crypto` into `BodyCrypto` and `HeaderCrypto`
- 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
Assessment
This issue has not been assessed yet.