Concordium / Concordium/concordium-node
New consensus: Review hashing schemes and domain separation
- Dominant language
- Haskell
- Stars
- 108
- Forks
- 24
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 9
Description
**Task description**
This task is to check a few things regarding hashing schemes and domain separation. This is about some of the functions in concordium-node/concordium-consensus/src/Concordium/Konsensus/V1/Types.hs.
**Sub-tasks**
- [ ] Determine if the hashing scheme used in `computeTransactionsHash` is appropriate.
- [ ] Check that the messages bytes in `quorumSignatureMessageBytes` cannot collide with other signed messages.
- [ ] Check that the messages bytes in `timeoutSignatureMessageBytes` cannot collide with other signed messages.
- [ ] Determine if domain seperators should be used in `blockSignatureMessageBytes`.
Contributor guide
Research direction
Start in concordium-node/concordium-consensus/src/Concordium/Konsensus/V1/Types.hs and inspect computeTransactionsHash, quorumSignatureMessageBytes, timeoutSignatureMessageBytes, and blockSignatureMessageBytes. Compare their hashing and signed-message encodings, checking each sub-task for collision and domain-separation concerns. Done means every checklist item has a documented conclusion and any required consensus changes are identified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- blockchain, cryptography
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100