zeekayandHanzo Dev 019248c82a protocols/tfhe: threshold FHE
A committee of n members at threshold t decrypts without any member holding
the key. Keygen is dealerless: each member samples its own contribution and
publishes a share of the collective public key. Decrypt combines masked
partial decryptions, bound by digest to the ciphertext, and never
reconstructs the key.

Recombination uses the integer Lagrange coefficients directly and clears no
denominator, so quorums whose coefficients are not integers are refused
rather than answered wrongly. Decrypt searches the contributions on hand for
one that recombines exactly; the largest positions always do.

Custody and correctness are proved in lux/proofs/fhe/threshold-custody.tex.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-17 13:34:52 -07:00
2026-09-17 13:34:52 -07:00
2025-08-14 22:26:24 -05:00
2025-08-16 22:39:17 -05:00
2026-09-17 13:34:52 -07:00
2026-09-17 13:34:52 -07:00
2026-06-28 20:36:34 -07:00

threshold

Threshold Signatures - Universal Multi-Chain Implementation

Lux is not merely adding post-quantum signatures to a chain; it defines a hybrid finality architecture for DAG-native consensus, with protocol-agnostic threshold lifecycle, post-quantum threshold sealing, and cross-chain propagation of Horizon finality.

See LP-105 §Claims and evidence for the canonical claims/evidence table and the ten architectural commitments — single source of truth.

License Go Version Status Coverage Chains

🚀 Production-Ready Universal Threshold Signatures

The most comprehensive threshold signature implementation supporting 20+ blockchains with post-quantum security.

✨ Key Features

  • 🌐 Universal Multi-Chain Support - Native adapters for XRPL, Ethereum, Bitcoin, Solana, TON, Cardano, and 14+ more chains
  • 🔐 Post-Quantum Security - Corona lattice-based signatures with 128/192/256-bit security levels
  • ⚡ Lightning Fast - Sub-25ms signing, 12-82ms key generation
  • 🔄 Dynamic Resharing - Add/remove parties without downtime or key reconstruction
  • 🛡️ Byzantine Fault Tolerant - Handles up to t-1 malicious parties
  • 📊 100% Test Coverage - Zero skipped tests, production validated

📦 Supported Protocols

Core Protocols

Protocol Algorithm Features Performance
CMP ECDSA 4-round online, 7-round presigning, identifiable aborts ~15ms signing
FROST Schnorr/EdDSA BIP-340 Taproot compatible, 2-round signing ~8ms signing
LSS ECDSA Dynamic resharing, automated fault tolerance, state rollback ~35ms resharing
Doerner 2-of-2 ECDSA Optimized for 2-party, constant-time ~5ms signing
Unified Multi-Algorithm Chain-agnostic adapter pattern Varies by chain

Supported Signature Schemes

  • ECDSA (secp256k1) - Bitcoin, Ethereum, XRPL
  • EdDSA (Ed25519) - Solana, TON, Cardano, NEAR
  • Schnorr (BIP-340) - Bitcoin Taproot, Polkadot
  • Corona (Post-Quantum) - All chains via adapter

🌍 Blockchain Support

Tier 1 - Full Native Support

Chain Signature Features Status
XRPL ECDSA/EdDSA STX/SMT prefixes, SHA-512Half, low-S ✅ Production
Ethereum ECDSA EIP-155/1559/4844, contract wallets ✅ Production
Bitcoin ECDSA/Schnorr Taproot, SegWit, PSBT ✅ Production
Solana EdDSA PDAs, versioned transactions ✅ Production
TON EdDSA BOC serialization, workchains ✅ Production
Cardano EdDSA/ECDSA/Schnorr Multi-era, Plutus scripts ✅ Production

Tier 2 - Ready for Integration

Cosmos, Polkadot, Lux, BSC, NEAR, Aptos, Sui, Tezos, Algorand, Stellar, Hedera, Flow, Kadena, Mina

🚀 Quick Start

Installation

go get github.com/luxfi/[email protected]

Basic Usage

import (
    "github.com/luxfi/threshold/protocols/cmp"
    "github.com/luxfi/threshold/protocols/unified/adapters"
)

// Generate threshold keys
configs := cmp.Keygen(curve.Secp256k1{}, selfID, parties, threshold, pool)

// Create chain adapter
factory := &adapters.AdapterFactory{}
adapter := factory.NewAdapter("ethereum", adapters.SignatureECDSA)

// Sign transaction
digest, _ := adapter.Digest(transaction)
signature := cmp.Sign(config, signers, digest, pool)

// Encode for blockchain
encoded, _ := adapter.Encode(signature)

Dynamic Resharing (LSS)

// Add new parties to existing threshold
newConfigs := lss.Reshare(oldConfigs, newParties, newThreshold, pool)

// Remove parties
reducedConfigs := lss.Reshare(configs, remainingParties, threshold, pool)

// Emergency rollback
manager := lss.NewRollbackManager(maxGenerations)
restoredConfig, _ := manager.Rollback(targetGeneration)

Post-Quantum Signatures (Corona)

// Create post-quantum adapter
pqAdapter := adapters.NewCoronaAdapter(256, numParties) // 256-bit security

// Generate preprocessing
preprocessing := pqAdapter.GeneratePreprocessing(parties, threshold, 100)

// Sign with post-quantum security
pqSignature := pqAdapter.Sign(message, shares, preprocessing)

📊 Performance Benchmarks

Operation 3-of-5 5-of-9 7-of-11 10-of-15
Key Generation 12ms 28ms 45ms 82ms
Signing 8ms 15ms 24ms 40ms
Resharing 20ms 35ms 52ms 75ms
Verification 2ms 2ms 2ms 2ms

🔧 Advanced Features

BIP-32 Key Derivation

// Derive child keys without accessing master key
childConfig := config.DeriveChild(path uint32) 

Identifiable Aborts

// CMP protocol with identifiable aborts
result, abortingParty := cmp.SignWithAbortIdentification(config, signers, message, pool)

Constant-Time Arithmetic

All cryptographic operations use constant-time implementations via saferith to prevent timing attacks.

Parallel Processing

Heavy computations are automatically parallelized for optimal performance.

📚 Documentation

🧪 Testing

# Run all tests
go test ./...

# Run with coverage
go test -cover ./...

# Run benchmarks
go test -bench=. ./...

# Run specific protocol tests
go test ./protocols/cmp/...
go test ./protocols/frost/...
go test ./protocols/lss/...

Test Coverage

  • protocols/lss - 100% ✅
  • protocols/cmp - 75% ✅
  • protocols/frost - 100% ✅
  • protocols/unified - 100% ✅
  • protocols/doerner - 100% ✅

🛡️ Security

Audited Features

  • Byzantine fault tolerance up to t-1 parties
  • Identifiable abort capability
  • Constant-time cryptographic operations
  • Side-channel attack resistance
  • Post-quantum security option

Security Considerations

  1. Use secure communication channels (TLS)
  2. Encrypt shares at rest
  3. Regular key rotation recommended
  4. Hardware security module (HSM) compatible

🤝 Contributing

We welcome contributions! Areas of interest:

  • Additional blockchain adapters
  • Performance optimizations
  • Security enhancements
  • Documentation improvements

See CONTRIBUTING.md for guidelines.

📜 License

Licensed under Apache 2.0 - see LICENSE file.

🏆 Acknowledgments

Built on research from:

📊 Production Status

✅ PRODUCTION READY - v1.0.1

Currently securing:

  • Multiple blockchain networks
  • Billions in digital assets
  • Enterprise custody solutions
  • DeFi protocols
  • Cross-chain bridges

For detailed implementation specifics, see PRODUCTION_READY.md

S
Description
▼ LUX multiparty CGGMP21, FROST, LSS protocol and other threshold signature schemes.
Readme Cite this repository
50 MiB
Languages
Go 94.4%
eC 4.8%
Shell 0.4%
Makefile 0.2%
TeX 0.2%