Module ring

Module ring 

Source
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§

RingSignature
A ring signature that proves a message was signed by one member of a group.
RingSignatureBuilder
A builder for creating ring signatures with additional context.

Enums§

RingError
Error types for ring signature operations.

Functions§

sign_ring
Sign a message with a ring signature.
verify_ring
Verify a ring signature.

Type Aliases§

RingResult