Skip to content

Conversation

@jeffro256
Copy link
Contributor

@jeffro256 jeffro256 commented Nov 8, 2024

This PR is to implement all Carrot cryptography, as well as enote creation logic and enote scanning logic. This PR should exclude very Monero-specific integration details. The carrot_core library is largely meant to be a stand-alone library, and thus only includes headers from src/crypto and src/ringct.

https://github.com/jeffro256/carrot/blob/master/carrot.md

  • Non-legacy carrot enote creation
  • Non-legacy carrot enote scanning
  • Tests for new enotes addressed to legacy cryptonote accounts/addresses
  • Transaction output set finalization logic
  • Efficient implementation for X25519 unclamped scalar multiplication
  • Hardware device interface
  • Switch commitments (walmart version)
  • Internal self-send messages
  • Fix Debian 10 build
  • Unbind the special janus anchor derivation from the account spend pubkey to make hybrid accounts easier
  • Rewrite ARM mx25519 implementation to support unclamped scalar multiplications
  • Deterministic FCMP++ output rerandomizations to support some refund address schemes
  • Low-dependency payment proposal to enote finalization C interface for hardware wallets
  • Payment proofs to internal enotes which A) allow for burning bug validation and B) don't reveal $s_{vb}$

Depends on #9826, #9827, #9828 , #10108, #10111, #10133

@jeffro256
Copy link
Contributor Author

I'm pretty sure the Debian build error is caused by this GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83258

j-berman and others added 19 commits September 25, 2025 19:30
Helper function to derive I (the key image generator) used in the
FCMP++ composition. The key image generator enters the FCMP++ tree
as part of an output tuple {output pubkey, key image generator,
commitment}.

Note: key images are x*I, where x is the one-time priv key used
to spend an output.
32-bit machines / windows use a different width for unsigned long
@jeffro256 jeffro256 marked this pull request as ready for review December 5, 2025 06:39
@jeffro256
Copy link
Contributor Author

Today, I force-pushed two changes:

  • Remove src/carrot_core/lazy_amount_commitment.*
  • Add output size static assert line in src/carrot_core/hash_functions.cpp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants