3 releases
Uses new Rust 2024
| 0.1.2 | Jan 26, 2026 |
|---|---|
| 0.1.1 | Jan 23, 2026 |
| 0.1.0 | Jan 22, 2026 |
#2244 in Cryptography
22 downloads per month
Used in 2 crates
200KB
3.5K
SLoC
Arcanum Threshold Cryptography
Threshold cryptographic schemes for distributed key management and signing.
Secret Sharing
- Shamir: Basic (t, n) secret sharing
- Feldman: Verifiable secret sharing with public commitments
- Pedersen: Information-theoretically hiding verifiable secret sharing
Threshold Signatures (FROST)
FROST (Flexible Round-Optimized Schnorr Threshold) signatures:
- FROST-Ed25519: Ed25519-compatible threshold signatures
- FROST-secp256k1: Bitcoin/Ethereum compatible signatures
Distributed Key Generation (DKG)
Generate group keys without trusted dealer:
- Pedersen DKG: Two-round DKG with information-theoretic security
- FROST DKG: Integrated key generation for FROST signing
Proactive Refresh
Limit the window of compromise with periodic share refresh:
- Centralized refresh: Dealer refreshes all shares at once
- Distributed refresh: Participants cooperatively refresh without dealer
After refresh, old shares are incompatible with new shares, preventing attackers from combining shares collected over different time periods.
Example
use arcanum_threshold::prelude::*;
// Create 3-of-5 Shamir sharing
let secret = b"my secret key";
let shares = ShamirScheme::split(secret, 3, 5)?;
// Reconstruct from any 3 shares
let recovered = ShamirScheme::combine(&shares[..3])?;
assert_eq!(secret.as_slice(), recovered.as_slice());
Dependencies
~17MB
~323K SLoC