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_decoysandadd_decoymethods. 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§
- Ring
CtBuilder - Builder for creating Ring CT transactions
- Ring
CtInput - Transaction input with secret opening
- Ring
CtOutput - Transaction output with commitment
- Ring
CtTransaction - A Ring CT transaction with hidden amounts and anonymous sender
Enums§
- Ring
CtError - Errors that can occur in Ring CT operations