Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean the Monero lib for auditing #577

Merged
merged 67 commits into from
Jul 7, 2024
Merged

Clean the Monero lib for auditing #577

merged 67 commits into from
Jul 7, 2024

Conversation

kayabaNerve
Copy link
Member

@kayabaNerve kayabaNerve commented Jul 4, 2024

This still needs:

  1. More tests in general
  2. More documentation improvements from monero: documentation #568
  3. Potentially uplifting the FCMP++ BP to replace the BP impl present here
  4. Resolution of TODOs

Yet it is time to start running the CI again.

@kayabaNerve kayabaNerve added improvement This could be better monero An issue with the Monero library/integration labels Jul 4, 2024
Also bifurcates prove with prove_plus, and adds a few documentation items.
Also adds a bit more documentation and does a bit more tidying.
It's a notable bandwidth/performance improvement, yet it's not ready. We need a
dedicated Distribution struct which is managed by the wallet and passed in.
While we can do that now, it's not currently worth the effort.
Abstracts the types used internally.

Also moves the tests from monero-serai to monero-clsag.
Removes usage of dalek-ff-group/multiexp for curve25519-dalek.

Makes compiling in the generators an optional feature.

Adds a structured batch verifier which should be notably more performant.

Documentation and clean up still necessary.
I still don't like the impl of the original Bulletproofs...
Also adds a helper to fetch a transaction's prefix.
…er/GuaranteedScanner

Also cleans the Scanner impl.
Guaranteed addresses are in fact guaranteed even with this due to prefixing key
images causing zeroing the ECDH to not zero the shared key.
This was done by requiring the system's usize can represent a certain number.
Unfortunately, this test is still failing.
Finally fixes the lack of decoy candidates failures in CI.
Change made due to a segfault incurred when locally testing.

monero-project/monero#9141 for the upstream.
Adds a minimum XMR fee to the processor and runs fmt.
I'm truly unsure why this is required right now.
If there's no change, the fee is difference of the inputs to the outputs. The
prior code wouldn't check that amount is greater than or equal to the necessary
fee, and returning the would-be change amount as the fee isn't necessarily
helpful.

Now the fee is validated in such cases and the necessary fee is returned,
enabling operating off of that.
@kayabaNerve
Copy link
Member Author

I'm willing to handle the rest in commits.

@kayabaNerve kayabaNerve merged commit a2c3aba into develop Jul 7, 2024
22 checks passed
@kayabaNerve kayabaNerve deleted the monero-tidy branch July 7, 2024 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement This could be better monero An issue with the Monero library/integration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant