Expand description
§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());Re-exports§
pub use shamir::ShamirScheme;pub use frost::FrostSigner;pub use frost::FrostVerifier;
Modules§
- frost
- FROST (Flexible Round-Optimized Schnorr Threshold) signatures.
- prelude
- Prelude for convenient imports.
- shamir
- Shamir secret sharing implementation.
Enums§
- Threshold
Error - Errors that can occur in threshold operations.
Type Aliases§
- Identifier
- Re-export identifier type for participants.
- Result
- Result type for threshold operations.