Specification
Ring Signatures
**Draft.** Reference implementation: `crates/confium-ring`.
status: draft
Status
Draft. Reference implementation: crates/confium-ring.
Motivation
A ring signature proves that ONE member of a group signed a message, without revealing which. Useful for whistleblowing, anonymous credentials, and blockchain privacy.
Scope
- Spontaneous ring signatures (no setup coordinator)
- Ring sizes from 2 to N (N limited by verification cost)
- Ed25519 and ECDSA-P256 variants
- Threshold ring signatures (T members sign as N)
Out of scope
- Traceable ring signatures (CryptoNote-style)
- RingCT (Confidential Transactions) — out of scope
Specification
Setup
Verifier publishes a set of N public keys (the “ring”). Signer has one private key corresponding to one of the public keys.
Signing
. Signer picks their index i secretly.
. For each ring member j != i, signer generates a fake signature share.
. For member i, signer uses their real private key.
. Closes the loop via a polynomial equation so all shares look uniformly random.
Verification
Verifier checks the polynomial equation closes (Σ shares = challenge). Cannot distinguish real from fake.
Security considerations
- Ring members MUST be unaware they’re included (spontaneous).
- Ring size is a privacy/usability tradeoff: larger ring = more privacy, slower verification.
- Signer anonymity is unconditional given a random oracle hash.
References
- Rivest, R. L., Shamir, A., & Tauman, Y. (2001). How to Leak a Secret. ASIACRYPT 2001.
- Confium source:
crates/confium-ring