Uses in Umbra
User commitment registration: Proves that the on-chain user commitment was constructed correctly from the user’s Poseidon private key and X25519 public key - without revealing either input. This is required once during registration withanonymous: true.
UTXO claiming: Proves knowledge of the secret inputs to a specific Merkle tree leaf (the UTXO commitment), that the Merkle inclusion path is valid and reaches the current root, and that the nullifier produced is correct. This is the proof that entitles the unlocker to receive the tokens.
Verification
Proofs are generated client-side in the browser or on device, and verified on-chain by the Umbra Solana program using thegroth16-solana verifier. Invalid proofs are rejected at the transaction level.