Module ringct

Module ringct 

Source
Expand description

Ring Confidential Transactions (Ring CT)

Combines ring signatures with confidential transactions to provide:

  • Sender anonymity (via ring signatures)
  • Amount confidentiality (via Pedersen commitments)
  • Balance verification without revealing amounts

Perfect for privacy-preserving bandwidth credit transfers in CHIE protocol.

§Important Note on Blinding Factors

For Ring CT transactions to verify correctly, the blinding factors must balance: sum(input_blindings) = sum(output_blindings) + fee_blinding

Since fee uses zero blinding, this simplifies to: sum(input_blindings) = sum(output_blindings)

In production, transaction builders should calculate the last output’s blinding factor to ensure this balance.

§Implementation Notes

  • Blinding Factor Balance: Helper methods (add_output_auto_balance, rebalance_last_output, calculate_last_output_blinding) are provided to automatically balance blinding factors, ensuring transactions verify correctly.

  • Decoy Support: Full support for public key decoys via add_decoys and add_decoy methods. In production, use real public keys from the blockchain for actual anonymity.

  • Range Proofs: Not currently implemented due to API limitations in the bulletproof module. They will be added when bulletproofs support custom blinding factors. Without range proofs, the system cannot prevent negative outputs, which is a security concern for production use.

Structs§

RingCtBuilder
Builder for creating Ring CT transactions
RingCtInput
Transaction input with secret opening
RingCtOutput
Transaction output with commitment
RingCtTransaction
A Ring CT transaction with hidden amounts and anonymous sender

Enums§

RingCtError
Errors that can occur in Ring CT operations

Type Aliases§

RingCtResult