Add jeffro256 full time dev 2025Q1
What
The last quarter I implemented the core cryptography for Carrot. I will note that preliminary performance tests put Carrot scanning at about 30% faster on CPU usage versus scanning today, mostly thanks to the use of the X25519 ECDH library mx25519. I also implemented pruned cryptonote::transaction
construction and scanning for Carrot. The FCMP++ integration and Carrot integration are finally meeting ends and are almost ready for hot path integration. This next quarter, I want to continue this work to get a testnet out ASAP.
To recap, here is a list of things I will attempt to work on this quarter, in rough order of execution:
- Integrate Carrot scanning/transaction construction into main wallet codepaths
- Provide support to existing hardware wallet manufacturors on how to securely support Carrot outputs
- Use benchmarkings and static analysis to inform MRL decisions on transaction weight discussions etc
- Begin soliciting Carrot core implementation audits
- Provide Rust implementation of Carrot for Serai/Cuprate
- Solicit help for multisig implementations of Carrot
- Help out with the FCMP++ integration wherever I can
Who
I have been contributing to the Monero core repository for over two years with a total of 84 merged commits to master thus far, with many open PRs. Over the last few months, I wrote up the Carrot specification, organized []auditing](https://github.com/cypherstack/carrot-audit), for which the community graciously funded, and began implementing it. Carrot will be the main supported addressing protocol post-FCMP++ if all goes according to plan. I also worked on the Seraphis migration project in 2023/2024.
Previous Proposals:
Payment
I propose to work for 3 months at a rate of 38 XMR per month.
Merge request reports
Activity
- Resolved by plowsoff
mentioned in commit fd814e9d
Milestone Update 1: January 2025
WIP branches
- https://github.com/jeffro256/monero/tree/carrot_core
- https://github.com/jeffro256/monero/tree/carrot_impl
- https://github.com/seraphis-migration/monero/tree/fcmp%2B%2B-stage
Monero Core PRs
- https://github.com/monero-project/monero/pull/9717
- https://github.com/monero-project/monero/pull/9718
- https://github.com/monero-project/monero/pull/9739
- https://github.com/monero-project/monero/pull/9740
- https://github.com/monero-project/monero/pull/9751
- https://github.com/monero-project/monero/pull/9760
- https://github.com/monero-project/monero/pull/9804
- https://github.com/monero-project/monero/pull/9805
Carrot/FCMP++ integration work
I created the
fcmp++-stage
development branch and have started to merge codepaths between Carrot and FCMP++. The biggest milestone here was creating FCMP++ spend authorization & linkability (SA/L) proofs on outputs created in Carrot transactions. You can see the testcases here: https://github.com/seraphis-migration/monero/blob/7dbc0e9f240f86b1dce55a3fff65534048356657/tests/unit_tests/carrot_impl.cpp#L534. Specifically for the SA/L proof creation, see this line: https://github.com/seraphis-migration/monero/blob/7dbc0e9f240f86b1dce55a3fff65534048356657/tests/unit_tests/carrot_impl.cpp#L670. Thecarrot_impl
branch also now contains almost full transaction generation code, from input selection, to fee carving, to proof generation, to transaction serialization.Review / debugging work
I spent a lot of time reviewing / debugging the upcoming release v0.18.4.0 build. I would like to post more details about this for transparency, but some of it involves vulnerability work, so I will hold off for now. I plan to publish reports about this eventually.