Expand description
Ring signatures for anonymous signing within a group.
Ring signatures allow a member of a group to sign a message anonymously without revealing which member signed it. This is useful for privacy-preserving content distribution in P2P networks.
This implementation uses a commitment-based ring signature scheme that provides computational anonymity within the ring.
§Example
use chie_crypto::{KeyPair, ring::{RingSignature, sign_ring, verify_ring}};
// Create a ring of public keys
let keypair1 = KeyPair::generate();
let keypair2 = KeyPair::generate();
let keypair3 = KeyPair::generate();
let ring = vec![
keypair1.public_key(),
keypair2.public_key(),
keypair3.public_key(),
];
// Signer uses their secret key (keypair2) to sign
let message = b"Anonymous content distribution";
let signature = sign_ring(&keypair2, &ring, message).unwrap();
// Anyone can verify, but cannot determine which key signed
assert!(verify_ring(&ring, message, &signature).unwrap());Structs§
- Ring
Signature - A ring signature that proves a message was signed by one member of a group.
- Ring
Signature Builder - A builder for creating ring signatures with additional context.
Enums§
- Ring
Error - Error types for ring signature operations.
Functions§
- sign_
ring - Sign a message with a ring signature.
- verify_
ring - Verify a ring signature.