Skip to content

Commit 92e9159

Browse files
authored
Merge pull request #995 from LIT-Protocol/feature/crypto-docs
Feature/crypto docs
2 parents 2a8514b + 217c78d commit 92e9159

File tree

2 files changed

+135
-1
lines changed

2 files changed

+135
-1
lines changed

docs/docs.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"learning-lit/on-chain-coordination-mechanisms",
2525
"learning-lit/communicating-with-lit-nodes",
2626
"learning-lit/cryptoeconomic-security",
27-
"learning-lit/backup-and-recovery"
27+
"learning-lit/backup-and-recovery",
28+
"learning-lit/threshold-cryptography"
2829
]
2930
}
3031
]
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
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

Comments
 (0)