|
| 1 | +--- |
| 2 | +title: "Threshold Cryptography" |
| 3 | +--- |
| 4 | + |
| 5 | +Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). |
| 6 | + |
| 7 | +## Supported Elliptic Curves and Signing Schemes |
| 8 | + |
| 9 | +| Signing Scheme | Curves | Crates (Rust) | `CurveType` | `SigningScheme` | |
| 10 | +|---|---|---|---|---| |
| 11 | +| **ECDSA** ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)) | secp256k1 | [`k256`](https://crates.io/crates/k256) | `K256` | `EcdsaK256Sha256` | |
| 12 | +| | P-256 (secp256r1) | [`p256`](https://crates.io/crates/p256) | `P256` | `EcdsaP256Sha256` | |
| 13 | +| | P-384 (secp384r1) | [`p384`](https://crates.io/crates/p384) | `P384` | `EcdsaP384Sha384` | |
| 14 | +| **Schnorr** (FROST) | secp256k1 | [`k256`](https://crates.io/crates/k256) | `K256` | `SchnorrK256Sha256` | |
| 15 | +| | secp256k1 (Taproot) | [`k256`](https://crates.io/crates/k256) | `K256` | `SchnorrK256Taproot` | |
| 16 | +| | P-256 (secp256r1) | [`p256`](https://crates.io/crates/p256) | `P256` | `SchnorrP256Sha256` | |
| 17 | +| | P-384 (secp384r1) | [`p384`](https://crates.io/crates/p384) | `P384` | `SchnorrP384Sha384` | |
| 18 | +| | Ed25519 | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `Ed25519` | `SchnorrEd25519Sha512` | |
| 19 | +| | Ristretto25519 | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `Ristretto25519` | `SchnorrRistretto25519Sha512` | |
| 20 | +| | Ristretto25519 (sr25519) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `Ristretto25519` | `SchnorrkelSubstrate` | |
| 21 | +| | Ed448 | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `Ed448` | `SchnorrEd448Shake256` | |
| 22 | +| | RedJubjub | [`jubjub`](https://crates.io/crates/jubjub) | `RedJubjub` | `SchnorrRedJubjubBlake2b512` | |
| 23 | +| | RedDecaf377 | [`decaf377`](https://crates.io/crates/decaf377) | `RedDecaf377` | `SchnorrRedDecaf377Blake2b512` | |
| 24 | +| **BLS** (Basic, MsgAug, PoP) | BLS12-381 (G2) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `BLS` | `Bls12381` | |
| 25 | +| | BLS12-381 (G1) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `BLS12381G1` | `Bls12381G1ProofOfPossession` | |
| 26 | + |
| 27 | +## Supported Chains |
| 28 | + |
| 29 | +### secp256k1 (K256) with ECDSA |
| 30 | + |
| 31 | +**Bitcoin Ecosystem:** |
| 32 | +- Bitcoin (BTC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 33 | +- Bitcoin Cash (BCH) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 34 | +- Bitcoin SV (BSV) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 35 | +- Litecoin (LTC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 36 | +- Dogecoin (DOGE) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 37 | +- Zcash (ZEC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 38 | +- Dash (DASH) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 39 | +- Decred (DCR) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 40 | + |
| 41 | +**Ethereum Ecosystem:** |
| 42 | +- Ethereum (ETH) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 43 | +- Ethereum Classic (ETC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 44 | +- Polygon (MATIC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 45 | +- Binance Smart Chain (BNB) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 46 | +- Avalanche (AVAX) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 47 | +- Fantom (FTM) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 48 | +- Arbitrum - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 49 | +- Optimism - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 50 | +- Base - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 51 | +- zkSync - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 52 | +- Linea - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 53 | +- Scroll - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 54 | +- Gnosis Chain (xDai) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 55 | + |
| 56 | +**Cosmos Ecosystem:** |
| 57 | +- Cosmos (ATOM) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 58 | + |
| 59 | +**Other secp256k1 Chains:** |
| 60 | +- Tron (TRX) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 61 | +- VeChain (VET) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 62 | +- EOS - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 63 | +- Theta Network (THETA) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 64 | +- Qtum (QTUM) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 65 | +- Zilliqa (ZIL) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 66 | +- ICON (ICX) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 67 | +- DigiByte (DGB) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 68 | +- Komodo (KMD) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 69 | +- Verge (XVG) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 70 | +- Ravencoin (RVN) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 71 | +- Horizen (ZEN) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` |
| 72 | + |
| 73 | +### secp256k1 (K256) with Schnorr |
| 74 | + |
| 75 | +- Bitcoin (Taproot) - `CurveType::K256`, `SigningScheme::SchnorrK256Taproot` |
| 76 | + |
| 77 | +### P-256 (secp256r1) with ECDSA |
| 78 | + |
| 79 | +- Flow - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` |
| 80 | +- NEO - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` |
| 81 | +- Ontology (ONT) - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` |
| 82 | +- Hyperledger Fabric - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` |
| 83 | +- Tezos (optional) - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` |
| 84 | +- WebAuthn / Passkeys - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` |
| 85 | + |
| 86 | +### P-384 (secp384r1) with ECDSA |
| 87 | + |
| 88 | +- Enterprise PKI systems - `CurveType::P384`, `SigningScheme::EcdsaP384Sha384` |
| 89 | +- Government and high-security applications - `CurveType::P384`, `SigningScheme::EcdsaP384Sha384` |
| 90 | + |
| 91 | +### Ed25519 with EdDSA (Schnorr) |
| 92 | + |
| 93 | +- Solana (SOL) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 94 | +- Stellar (XLM) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 95 | +- Cardano (ADA) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 96 | +- Algorand (ALGO) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 97 | +- Hedera Hashgraph (HBAR) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 98 | +- Elrond (EGLD) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 99 | +- Tezos (optional) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 100 | +- Ripple (XRP, optional) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 101 | +- NEM (XEM) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 102 | +- Waves (WAVES) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 103 | +- Lisk (LSK) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 104 | +- Nano (NANO) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 105 | +- Siacoin (SC) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 106 | +- Monero (XMR, variant) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` |
| 107 | + |
| 108 | +### Ristretto25519 with Schnorr/Schnorrkel |
| 109 | + |
| 110 | +- Polkadot (DOT, sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` |
| 111 | +- Kusama (KSM, sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` |
| 112 | +- All Polkadot Parachains (sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` |
| 113 | +- All Substrate-based chains (sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` |
| 114 | + |
| 115 | +### Ed448 with Schnorr |
| 116 | + |
| 117 | +- Research and experimental protocols - `CurveType::Ed448`, `SigningScheme::SchnorrEd448Shake256` |
| 118 | +- High-security government applications - `CurveType::Ed448`, `SigningScheme::SchnorrEd448Shake256` |
| 119 | + |
| 120 | +### RedJubjub with Schnorr |
| 121 | + |
| 122 | +- Zcash (Sapling shielded transactions) - `CurveType::RedJubjub`, `SigningScheme::SchnorrRedJubjubBlake2b512` |
| 123 | + |
| 124 | +### RedDecaf377 with Schnorr (RedDSA) |
| 125 | + |
| 126 | +- Penumbra - `CurveType::RedDecaf377`, `SigningScheme::SchnorrRedDecaf377Blake2b512` |
| 127 | + |
| 128 | +### BLS12-381 with BLS Signatures |
| 129 | + |
| 130 | +- Ethereum (Consensus Layer / Beacon Chain) - `CurveType::BLS`, `SigningScheme::Bls12381` |
| 131 | +- Filecoin (FIL) - `CurveType::BLS`, `SigningScheme::Bls12381` |
| 132 | +- Chia (XCH) - `CurveType::BLS`, `SigningScheme::Bls12381` |
| 133 | +- Dfinity (ICP) - `CurveType::BLS`, `SigningScheme::Bls12381` |
0 commit comments