namada
namada copied to clipboard
MASP finalization plan
trafficstars
Proposed order after reading through the issue backlog:
- [ ] Investigate the epoch transition proof issue and agree on a plan
- [x] Convert MASP to a native validity predicate (rebase and merge https://github.com/anoma/namada/pull/2051)
- [x] Check that our imported versions of the upstream MASP crates are the latest
- [ ] Implementing missing validation (https://github.com/anoma/namada/issues/1373 and https://github.com/anoma/namada/issues/1962)
- [ ] Check/fix unsafe validation (https://github.com/anoma/namada/issues/1374)
- [x] Audit MASP & MASP rewards
- [ ] Other stuff
Ensure that wallets have an easy library to import to generate proofs that we can independently optimize.
also check that proofing times don't scale with epoch sizes.
Two points to check on the epoch transition issue:
- We should allow proofs with reference to past commitment tree anchors.
- We should allow unshielding from previous epochs (the user will receive fewer rewards, we can show a warning in extreme cases).
Together per discussion we think that these two changes should resolve the issue.
Notes:
- Rework to avoid unnecessary conversions on AssetType, which should be used all the way through to the edge of CLI client input.
- Discrete conversions with threshold: amounts below conversion are currently left behind - we should just send them anyways, and later allow unshielding (with no conversions)
- Check on proof generation time increasing (maybe more notes to convert?)
- Check on duplicate SpendDescriptions, OutputDescriptions, etc. - seems to be the case in recent iterations of the client.
- Fix MASP verifying key / parameters loading (should only load once into memory when the ledger starts) (see reference here)