threshold
▼ LUX multiparty CGGMP21, FROST, LSS protocol and other threshold signature schemes.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.2%) to scientific vocabulary
Keywords
Repository
▼ LUX multiparty CGGMP21, FROST, LSS protocol and other threshold signature schemes.
Basic Info
- Host: GitHub
- Owner: luxfi
- License: apache-2.0
- Language: Go
- Default Branch: main
- Homepage: https://lux.network
- Size: 8.01 MB
Statistics
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Threshold Signatures - Universal Multi-Chain Implementation
🚀 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 - Ringtail 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
- Ringtail (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, Avalanche, BSC, NEAR, Aptos, Sui, Tezos, Algorand, Stellar, Hedera, Flow, Kadena, Mina
🚀 Quick Start
Installation
bash
go get github.com/luxfi/threshold@v1.0.1
Basic Usage
```go 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)
```go // 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 (Ringtail)
```go // Create post-quantum adapter pqAdapter := adapters.NewRingtailAdapter(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
go
// Derive child keys without accessing master key
childConfig := config.DeriveChild(path uint32)
Identifiable Aborts
go
// 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
- Production Readiness Report
- LSS Protocol Paper
- CMP Implementation
- API Reference
- Integration Guide
- Security Audit
🧪 Testing
```bash
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
- Use secure communication channels (TLS)
- Encrypt shares at rest
- Regular key rotation recommended
- 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: - Canetti et al. (2021) - CMP Protocol - Komlo & Goldberg (2020) - FROST - Seesahai (2025) - LSS Dynamic Resharing - Doerner et al. - 2-Party ECDSA
📊 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
Owner
- Name: ▼
- Login: luxfi
- Kind: organization
- Email: ai@lux.help
- Website: https://lux.link
- Repositories: 99
- Profile: https://github.com/luxfi
Decentralized network of blockchains designed for privacy and quantum security.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software in your research, please cite it as below." authors: - family-names: "Kelling" given-names: "Zach" affiliation: "Lux Industries Inc" - family-names: "Seesahai" given-names: "Vishnu" affiliation: "Cornell University" title: "mpc-lss" version: "v1.0.0" date-released: "2025-09-01" url: "https://github.com/luxfi/threshold"
GitHub Events
Total
- Issues event: 2
- Watch event: 1
- Delete event: 3
- Issue comment event: 17
- Push event: 90
- Fork event: 1
- Create event: 4
Last Year
- Issues event: 2
- Watch event: 1
- Delete event: 3
- Issue comment event: 17
- Push event: 90
- Fork event: 1
- Create event: 4
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 0
- Average time to close issues: about 4 hours
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 0
- Average time to close issues: about 4 hours
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- AndreiD (2)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- github.com/cronokirby/saferith v0.33.0
- github.com/davecgh/go-spew v1.1.1
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
- github.com/fxamacker/cbor/v2 v2.4.0
- github.com/klauspost/cpuid/v2 v2.2.5
- github.com/pmezard/go-difflib v1.0.0
- github.com/stretchr/testify v1.8.4
- github.com/x448/float16 v0.8.4
- github.com/zeebo/blake3 v0.2.3
- golang.org/x/crypto v0.10.0
- golang.org/x/sync v0.3.0
- golang.org/x/sys v0.9.0
- gopkg.in/yaml.v3 v3.0.1
- github.com/cronokirby/saferith v0.33.0
- github.com/davecgh/go-spew v1.1.1
- github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0
- github.com/fxamacker/cbor/v2 v2.4.0
- github.com/klauspost/cpuid/v2 v2.0.12
- github.com/klauspost/cpuid/v2 v2.2.5
- github.com/pmezard/go-difflib v1.0.0
- github.com/stretchr/testify v1.8.4
- github.com/x448/float16 v0.8.4
- github.com/zeebo/assert v1.1.0
- github.com/zeebo/blake3 v0.2.3
- github.com/zeebo/pcg v1.0.1
- golang.org/x/crypto v0.10.0
- golang.org/x/sync v0.3.0
- golang.org/x/sys v0.5.0
- golang.org/x/sys v0.9.0
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/yaml.v3 v3.0.1