Skip to main content

Crate arcanum_threshold

Crate arcanum_threshold 

Source
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 shamir::Share;
pub use frost::FrostSigner;
pub use frost::FrostVerifier;
pub use frost::SigningShare;
pub use frost::VerifyingShare;

Modules§

frost
FROST (Flexible Round-Optimized Schnorr Threshold) signatures.
prelude
Prelude for convenient imports.
shamir
Shamir secret sharing implementation.

Enums§

ThresholdError
Errors that can occur in threshold operations.

Type Aliases§

Identifier
Re-export identifier type for participants.
Result
Result type for threshold operations.