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