Seraphis Wallet PoC
Intro
Hi all, after the completion of my previous Seraphis PoC CCS, there are additional tasks I would like to work on. For background on this CCS, please see the links in the previous sentence.
New tasks
These tasks will be implemented in my seraphis_lib branch. My ultimate goal is that, once this CCS is complete, I can hand off seraphis_lib to other Monero developers who can start working on/thinking about how to get Seraphis actually used in Monero.
- Build a wallet proof-of-concept that demonstrates all the 'transaction engineering' capabilities and implementation modularity of Seraphis/Jamtis. My goal is to have unit tests representing all the main workflows possible with Seraphis, and all the main wallet implementations necessary (i.e. mock-ups of interfaces that could potentially be developed into full-fledged wallet software).
- Test out using x25519 for enote ECDH instead of ed25519, which may speed up enote scanning by a non-trivial amount (>10%).
- Add validation code and plumbing for
tx_extra
fields. - Add tx builder plumbing for tx fees.
- Add multisig tx builders for Seraphis (with unit tests) after the master branch is updated with PR #7877.
- Miscellaneous code cleanup (mostly update/add comments, cleanup TODOs).
I will also lump all the miscellaneous Monero R&D tasks that I work on into this CCS (e.g. in the last period I did a bunch of review/work on multisig security patches, among other things).
Funding
- Rate: 50 USD + 0.2 XMR
- Hours: 8 weeks @ 20hr/wk = 160hrs
- XMR equivalent: 32 + (50*160)/USD_EXCHANGE_RATE XMR
- USD_EXCHANGE_RATE: set from 14-day EMA on a major exchange when merging proposal
- 162 USD/XMR at 2100 UTC 02/23/2022 w/ 14-day EMA on Kraken -> 81.4 XMR total
If I require more time, and the community supports it, then I may make another proposal to extend the hours.
Merge request reports
Activity
mentioned in commit 337baf0a
I have consumed all the hours for this CCS (total time: 198hr), so I will be closing this one and making a new one with a more realistic time estimate.
Summary of work done:
- Seraphis multisig tx builders (120hr, this took way longer than expected).
- Deterministic binning for membership proof reference sets (30hr).
- Tx fee plumbing (2hr).
- Tx extra plumbing (5hr).
- Add a 'dummy' self-send enote type to help optimize the third-party scanning workflow (greatly reduces bandwidth requirements for general users) (5hr).
- Planning workflows/algorithms/design (~5-10hr).
- Miscellaneous (minor improvements, code quality, Monero tasks like working on the multisig PRs and reviewing PRs, etc.) (~25-35hr).
Edited by koementioned in merge request !314 (merged)