oasisprotocol / oasisprotocol/oasis-core
roothash: Batch RAK verification should not rely on round tripping
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 369
- Forks
- 151
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 6
Description
To verify batch RAK signatures in the roothash, the code re-constructs the BatchSigMessage and attempts to verify the signature.
This is incredibly brittle, and will cause massive problems the moment we need to be backward compatible with old versions, assuming we ever want to change the data-structure.
Even without the backward compatibility requirement, the RAK signature validation has been broken multiple times due to neglecting to keep the structure definition in sync with the rust code.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating roothash batch RAK verification and the BatchSigMessage definitions in the Go and Rust code. Compare how the message is serialized and reconstructed before signature verification. Done means verification no longer depends on brittle round-tripping and the relevant validation paths remain consistent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, rust
- Domain
- blockchain
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100