Skip to content

Repository files navigation

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.

LicenseGo VersionStatusCoverageChains

🚀 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

ProtocolAlgorithmFeaturesPerformance
CMPECDSA4-round online, 7-round presigning, identifiable aborts~15ms signing
FROSTSchnorr/EdDSABIP-340 Taproot compatible, 2-round signing~8ms signing
LSSECDSADynamic resharing, automated fault tolerance, state rollback~35ms resharing
Doerner2-of-2 ECDSAOptimized for 2-party, constant-time~5ms signing
UnifiedMulti-AlgorithmChain-agnostic adapter patternVaries 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

ChainSignatureFeaturesStatus
XRPLECDSA/EdDSASTX/SMT prefixes, SHA-512Half, low-S✅ Production
EthereumECDSAEIP-155/1559/4844, contract wallets✅ Production
BitcoinECDSA/SchnorrTaproot, SegWit, PSBT✅ Production
SolanaEdDSAPDAs, versioned transactions✅ Production
TONEdDSABOC serialization, workchains✅ Production
CardanoEdDSA/ECDSA/SchnorrMulti-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/threshold@v1.1.11

Basic Usage

import (
"github.com/luxfi/threshold/protocols/cmp""github.com/luxfi/threshold/protocols/unified/adapters"
)
// Generate threshold keysconfigs:=cmp.Keygen(curve.Secp256k1{}, selfID, parties, threshold, pool)
// Create chain adapterfactory:=&adapters.AdapterFactory{}
adapter:=factory.NewAdapter("ethereum", adapters.SignatureECDSA)
// Sign transactiondigest, _:=adapter.Digest(transaction)
signature:=cmp.Sign(config, signers, digest, pool)
// Encode for blockchainencoded, _:=adapter.Encode(signature)

Dynamic Resharing (LSS)

// Add new parties to existing thresholdnewConfigs:=lss.Reshare(oldConfigs, newParties, newThreshold, pool)
// Remove partiesreducedConfigs:=lss.Reshare(configs, remainingParties, threshold, pool)
// Emergency rollbackmanager:=lss.NewRollbackManager(maxGenerations)
restoredConfig, _:=manager.Rollback(targetGeneration)

Post-Quantum Signatures (Corona)

// Create post-quantum adapterpqAdapter:=adapters.NewCoronaAdapter(256, numParties) // 256-bit security// Generate preprocessingpreprocessing:=pqAdapter.GeneratePreprocessing(parties, threshold, 100)
// Sign with post-quantum securitypqSignature:=pqAdapter.Sign(message, shares, preprocessing)

📊 Performance Benchmarks

Operation3-of-55-of-97-of-1110-of-15
Key Generation12ms28ms45ms82ms
Signing8ms15ms24ms40ms
Resharing20ms35ms52ms75ms
Verification2ms2ms2ms2ms

🔧 Advanced Features

BIP-32 Key Derivation

// Derive child keys without accessing master keychildConfig:= config.DeriveChild(pathuint32) 

Identifiable Aborts

// CMP protocol with identifiable abortsresult, 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

About

▼ LUX multiparty CGGMP21, FROST, LSS protocol and other threshold signature schemes.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages