secp256k1 vs ed25519: Elliptische Kurven in der Kryptowelt
Inhaltsverzeichnis
Jede Kryptowaehrungstransaktion erfordert eine digitale Signatur --- einen mathematischen Beweis, dass die sendende Person tatsaechlich das Konto kontrolliert. Diese Signatur wird von einem Algorithmus erzeugt, der auf den Eigenschaften einer elliptischen Kurve basiert. Die zwei Kurven, die die Blockchain-Welt dominieren, sind secp256k1 und ed25519. Sie dienen demselben grundlegenden Zweck, aber ihr Design, ihre Leistungsmerkmale und ihre Adoptionsgeschichte sind sehr unterschiedlich.
Dieser Leitfaden erklaert, was elliptische Kurven in der Kryptographie tun, wie sich secp256k1 und ed25519 unterscheiden, und was diese Unterschiede fuer Schluesselgenerierung, Wallet-Sicherheit und die von Ihnen genutzten Blockchains bedeuten.
Was sind elliptische Kurven?¶
Eine elliptische Kurve ist im kryptographischen Kontext eine mathematische Struktur, definiert durch eine Gleichung der Form y^2 = x^3 + ax + b (fuer Kurven wie secp256k1) oder eine verwandte Form (fuer Kurven wie ed25519). Die Sicherheit der Elliptische-Kurven-Kryptographie (ECC) beruht auf dem Elliptic Curve Discrete Logarithm Problem (ECDLP): Gegeben ein Punkt P auf der Kurve und ein Punkt Q = k * P (wobei k ein Skalar und * die Punktmultiplikation darstellt), ist es berechnungsmaessig nicht durchfuehrbar, k aus P und Q allein zu bestimmen.
In Kryptowaehrungsbegriffen:
- k ist Ihr Private Key --- eine geheime Zahl.
- P ist der Generatorpunkt --- ein fester, oeffentlich bekannter Punkt auf der Kurve.
- Q ist Ihr Public Key --- abgeleitet vom Private Key durch Punktmultiplikation.
Jeder kann verifizieren, dass Q zu k * P passt, wenn er sowohl Q als auch eine mit k erzeugte Signatur kennt, aber niemand kann k aus Q extrahieren. Das ist es, was es sicher macht, Ihren Public Key (und die davon abgeleitete Adresse) zu teilen, waehrend der Private Key geheim bleibt.
ECC bietet die gleiche Sicherheit wie RSA mit deutlich kleineren Schluesselgroessen. Ein 256-Bit-Schluessel fuer elliptische Kurven bietet ungefaehr die gleiche Sicherheit wie ein 3.072-Bit-RSA-Schluessel. Diese Kompaktheit ist essentiell fuer Blockchains, wo jedes Byte einer Transaktion Speicher und Bandbreite kostet.
secp256k1: Die Kurve von Bitcoin und Ethereum¶
secp256k1 ist die elliptische Kurve, die von Bitcoin, Ethereum und den meisten Blockchains in ihrem Oekosystem verwendet wird. Der Name schluesselt sich wie folgt auf:
- sec --- Standards for Efficient Cryptography
- p --- Die Kurve ist ueber einem Primzahlkoerper definiert
- 256 --- Die Primzahl ist 256 Bit lang
- k --- Dies ist eine Koblitz-Kurve (eine spezifische Klasse mit Berechnungseffizienz-Vorteilen)
- 1 --- Es ist die erste (und einzige) Kurve dieses Typs im Standard
Die Kurvengleichung lautet: y^2 = x^3 + 7 (ueber dem endlichen Koerper definiert durch die Primzahl p = 2^256 - 2^32 - 977).
Satoshi Nakamoto waehlte secp256k1 fuer Bitcoin 2009. Damals war es eine ungewoehnliche Wahl. Die meisten Systeme verwendeten die NIST-P-256-Kurve (auch secp256r1 genannt). Das "r" in secp256r1 zeigt an, dass sie einen nachweislich zufaelligen Seed fuer ihre Parameter verwendet, waehrend secp256k1s Parameter fuer Berechnungseffizienz gewaehlt wurden, nicht fuer Zufaelligkeit. Einige Kryptographen machten sich lange Sorgen, dass NIST-Kurven von der NSA beeinflusste Parameter haben koennten --- eine Besorgnis, die durch den Dual_EC_DRBG-Skandal 2013 verstaerkt wurde. Secp256k1 vermeidet diesen Verdacht, weil seine Parameter einfach und transparent sind: a = 0, b = 7.
Signaturen: ECDSA¶
Der mit secp256k1 in Bitcoin und Ethereum gepaarte Signaturalgorithmus ist ECDSA --- der Elliptic Curve Digital Signature Algorithm. Wenn Sie eine Bitcoin- oder Ethereum-Transaktion senden, verwendet das Wallet ECDSA, um eine Signatur aus Ihrem Private Key und dem Transaktions-Hash zu erzeugen. Validatoren im Netzwerk verifizieren diese Signatur mit Ihrem Public Key.
ECDSA-Signaturen auf secp256k1 sind 64 Bytes (zwei 32-Byte-Werte, ueblicherweise r und s genannt) plus ein Recovery-Byte, das einige Implementierungen einschliessen. Sie sind deterministisch bei Verwendung von RFC 6979 (das Bitcoin und Ethereum beide nutzen), was bedeutet, dass dieselbe Nachricht und derselbe Private Key immer dieselbe Signatur erzeugen --- keine Zufaelligkeit beim Signieren noetig.
Eine ECDSA-Eigenheit ist Signatur-Malleabilitaet: Gegeben eine gueltige Signatur (r, s) ist auch das Paar (r, -s mod n) gueltig. Bitcoin adressierte dies mit BIP66 (strikte DER-Kodierung) und spaeter mit SegWit. Ethereum loest es durch Erzwingung einer kanonischen Form fuer s.
Leistung¶
secp256k1-Verifikation auf optimierten Implementierungen (wie libsecp256k1, verwendet von Bitcoin Core) ist schnell: mehrere Tausend Verifikationen pro Sekunde auf moderner Hardware. Allerdings sind ECDSA-Signierung und -Verifikation inhaerent komplexer als EdDSA (der mit ed25519 gepaarte Algorithmus), der von Grund auf fuer Geschwindigkeit entworfen wurde.
ed25519: Solanas moderne Wahl¶
ed25519 ist eine elliptische Kurve, entworfen von Daniel J. Bernstein und Kollegen. Sie wurde 2011 veroeffentlicht, zwei Jahre nach dem Start von Bitcoin, und repraesentiert eine neuere Generation von Kurvendesign, die sowohl Sicherheit als auch Leistung priorisiert.
Der Name bezieht sich auf die Edwards-Kurvenform ueber dem Primzahlkoerper 2^255 - 19 (daher "25519"). Die spezifisch verwendete Kurve ist eine verdrehte Edwards-Kurve namens "edwards25519", die birational aequivalent zu Curve25519 ist (weit verbreitet im Schluesselaustausch, z.B. in Signal und TLS 1.3).
Solana waehlte ed25519 als Signaturkurve, ebenso wie mehrere andere moderne Blockchains. Die Wahl spiegelt ed25519s Vorteile beim Durchsatz wider --- ein kritischer Aspekt fuer Solanas Hochleistungsarchitektur.
Signaturen: EdDSA¶
Der mit ed25519 gepaarte Signaturalgorithmus ist EdDSA --- der Edwards-curve Digital Signature Algorithm. Solana verwendet konkret Ed25519 (EdDSA mit edwards25519), das 64-Byte-Signaturen erzeugt.
EdDSA wurde entworfen, um die Fallstricke von ECDSA zu vermeiden:
- Keine Zufaelligkeit beim Signieren erforderlich. EdDSA-Signaturen sind inhaerent deterministisch --- die Nonce wird aus dem Private Key und der Nachricht per Hashing abgeleitet. Bei ECDSA kann ein schlechter Zufallszahlengenerator beim Signieren den Private Key vollstaendig preisgeben (passiert mit Sonys PS3-Signaturschluessel 2010).
- Keine Signatur-Malleabilitaet. EdDSA-Signaturen haben eine einzige kanonische Form.
- Schnellere Batch-Verifikation. Mehrere Ed25519-Signaturen koennen gleichzeitig schneller verifiziert werden als einzeln --- ein erheblicher Vorteil fuer Hochdurchsatz-Blockchains.
- Einfachere Implementierung. Der Algorithmus hat weniger Sonderfaelle und Verzweigungsbedingungen, was die Angriffsflaeche fuer Seitenkanalangriffe reduziert.
Leistung¶
Ed25519 ist in Benchmarks konsistent schneller als ECDSA-secp256k1. Signierung ist etwa 2-3 Mal schneller, und Einzelsignatur-Verifikation ist ungefaehr vergleichbar, aber Batch-Verifikation ist wo Ed25519 wirklich glaenzt --- es kann Hunderte von Signaturen deutlich schneller verifizieren als einzeln. Bei Solana, wo Bloecke Tausende von Transaktionen enthalten koennen, ist dieser Leistungsunterschied erheblich.
ECDSA vs EdDSA: Ein direkter Vergleich¶
| Eigenschaft | ECDSA (secp256k1) | EdDSA (ed25519) |
|---|---|---|
| Kurventyp | Short Weierstrass | Twisted Edwards |
| Schluesselgroesse | 256 Bit | 256 Bit |
| Signaturgroesse | 64-65 Bytes | 64 Bytes |
| Sicherheitsniveau | ~128 Bit | ~128 Bit |
| Signiergeschwindigkeit | Schnell | Schneller (2-3x) |
| Verifikationsgeschwindigkeit | Schnell | Vergleichbar (einzeln), schneller (Batch) |
| Deterministische Signierung | Optional (RFC 6979) | Eingebaut (by Design) |
| Signatur-Malleabilitaet | Moeglich (in der Praxis mitigiert) | Keine |
| Nonce-Verwundbarkeit | Ja (schlechter RNG leakt Key) | Nein (Nonce aus Key + Nachricht abgeleitet) |
| Adoption | Bitcoin, Ethereum, BNB Chain, Tron, Dogecoin, Litecoin | Solana, XRP (teilweise), Cardano, Polkadot |
Beide Algorithmen bieten ungefaehr 128 Bit Sicherheit, was bedeutet, dass ein Angreifer ungefaehr 2^128 Operationen durchfuehren muesste, um einen Schluessel zu brechen. Das liegt weit jenseits der Faehigkeiten jedes aktuellen oder absehbaren klassischen Computers. Die Unterschiede liegen in Implementierungssicherheit und Leistung, nicht in roher Sicherheitsstaerke.
Fuer einen tieferen Blick auf Schluesselscherheit in der Praxis, lesen Sie Private-Key-Sicherheit: Best Practices.
Welche Chains verwenden welche Kurve?¶
Die Wahl der Kurve ist eine der fundamentalsten Architekturentscheidungen einer Blockchain.
secp256k1-Chains¶
- Bitcoin --- Das Original. Verwendet ECDSA mit secp256k1 fuer Standard-Transaktionen und Schnorr-Signaturen (ebenfalls auf secp256k1) fuer Taproot.
- Ethereum --- ECDSA mit secp256k1. Alle EVM-kompatiblen Chains erben diese Wahl.
- BNB Chain --- EVM-kompatibel, verwendet secp256k1.
- Polygon --- EVM-kompatibel, verwendet secp256k1.
- Arbitrum und Optimism --- Ethereum L2s, erben secp256k1.
- Tron --- Verwendet secp256k1 mit ECDSA.
- Dogecoin --- Fork von Bitcoin, verwendet secp256k1.
- Litecoin --- Fork von Bitcoin, verwendet secp256k1.
- Avalanche (C-Chain) --- EVM-kompatibel, verwendet secp256k1.
ed25519-Chains¶
- Solana --- Verwendet ausschliesslich Ed25519. Dies ist ein Kerngrund, warum Solana Tausende Transaktionen pro Sekunde verarbeiten kann.
- XRP --- Unterstuetzt sowohl secp256k1 als auch ed25519. Nutzer koennen bei der Schluesselgenerierung waehlen.
- Cardano --- Verwendet Ed25519 (speziell Ed25519-BIP32, eine erweiterte Variante).
- Polkadot --- Verwendet primaer Sr25519 (Schnorr ueber Ristretto25519), eng verwandt mit ed25519.
Die Aufteilung ist weitgehend generationsbedingt. Blockchains, die vor 2015 entworfen wurden, verwenden tendenziell secp256k1 (nach Bitcoins Vorbild). Blockchains, die nach 2017 entworfen wurden, bevorzugen zunehmend ed25519 oder verwandte Kurven.
Auswirkungen auf die Schluesselgenerierung¶
Die Wahl der elliptischen Kurve beeinflusst direkt, wie Schluessel und Adressen generiert werden. Wenn Sie SafeSeeds Tools verwenden, wird der Unterschied automatisch behandelt, aber das Verstaendnis hilft zu wissen, was unter der Haube passiert.
secp256k1-Schluesselgenerierung¶
- Generieren Sie eine zufaellige 256-Bit-Zahl (den Private Key). Sie muss zwischen 1 und
n - 1liegen, wobei n die Ordnung von secp256k1 ist (~2^256). - Berechnen Sie den Public Key: Multiplizieren Sie den Private Key mit dem Generatorpunkt G auf secp256k1. Das Ergebnis ist ein Punkt (x, y) auf der Kurve.
- Der unkomprimierte Public Key ist 65 Bytes (04-Praefix + 32 Bytes x + 32 Bytes y). Die komprimierte Form ist 33 Bytes (02- oder 03-Praefix + 32 Bytes x).
- Hashen Sie den Public Key zur Adresse (SHA-256 + RIPEMD-160 fuer Bitcoin; Keccak-256 fuer Ethereum).
Sie koennen secp256k1-Schluessel mit dem Bitcoin Private Key Generator oder Ethereum Private Key Generator generieren.
ed25519-Schluesselgenerierung¶
- Generieren Sie einen zufaelligen 32-Byte-Seed (nicht dasselbe wie ein BIP39-Seed --- dies ist das rohe Schluesselmaterial).
- Hashen Sie den Seed mit SHA-512, um 64 Bytes zu erzeugen. Die ersten 32 Bytes (mit bestimmten geklemmten Bits) werden zum Skalar fuer die Signierung. Die letzten 32 Bytes werden fuer die Nonce-Generierung beim Signieren verwendet.
- Berechnen Sie den Public Key: Multiplizieren Sie den Skalar mit dem Basispunkt B auf edwards25519. Das Ergebnis ist ein 32-Byte komprimierter Punkt.
- Das Adressformat ist chainspezifisch. Bei Solana ist der Public Key selbst (Base58-kodiert) die Adresse.
Sie koennen ed25519-Schluessel mit dem Solana Private Key Generator generieren.
Cross-Curve-Implikationen¶
Da secp256k1 und ed25519 mathematisch inkompatibel sind, hat ein auf einer Kurve gueltiger Private Key keine sinnvolle Beziehung zu einem Schluessel auf der anderen. Wenn Sie eine Seed Phrase in einem Wallet wiederherstellen, das sowohl Bitcoin als auch Solana unterstuetzt, fuehrt das Wallet zwei vollstaendig separate Ableitungsprozesse vom selben Master-Seed durch --- einen mit secp256k1 fuer Bitcoin/Ethereum-Konten und einen mit ed25519 fuer Solana-Konten. Der gemeinsame Seed ist die einzige Verbindung zwischen ihnen.
Deshalb enthaelt der Ableitungspfad einen Muenztyp: Bitcoins Pfad (m/44'/0'/0'/0/0) und Solanas Pfad (m/44'/501'/0'/0') verzweigen sich auf der Muenztyp-Ebene, und jeder Zweig verwendet seine jeweilige Kurve. Fuer eine gruendliche Erklaerung, wie Ableitungspfade ueber Chains hinweg funktionieren, lesen Sie HD-Wallets und Ableitungspfade erklaert.
Was ist mit Quantencomputing?¶
Sowohl secp256k1 als auch ed25519 sind gleichermaessen anfaellig fuer einen ausreichend leistungsfaehigen Quantencomputer, der Shors Algorithmus ausfuehrt und das Diskrete-Logarithmus-Problem in polynomieller Zeit loesen koennte. Keine Kurve ist "quantenresistenter" als die andere. Die kryptographische Community entwickelt Post-Quanten-Signaturverfahren, aber keine grosse Blockchain hat bisher migriert. Fuer eine aktuelle Bewertung siehe Quantencomputing und die Krypto-Bedrohung.
Das richtige Tool waehlen¶
Als Nutzer waehlen Sie nicht direkt zwischen secp256k1 und ed25519. Die von Ihnen verwendete Blockchain trifft diese Wahl fuer Sie. Bitcoin und Ethereum schreiben secp256k1 vor. Solana schreibt ed25519 vor. Was Sie waehlen koennen, ist Tools zu verwenden, die die von Ihrer Chain benoetigte Kurve korrekt implementieren.
SafeSeeds Generatoren handhaben dies automatisch. Der Bitcoin Seed Phrase Generator leitet secp256k1-Schluessel ab. Der Ethereum Seed Phrase Generator ebenso. Der Solana Seed Phrase Generator leitet ed25519-Schluessel ab. Alle laufen vollstaendig clientseitig und nutzen die Web Crypto API Ihres Browsers fuer sichere Zufallszahlengenerierung. Kein Private-Key-Material verlaesst jemals Ihr Geraet.
Die Kurve unter Ihrer Blockchain zu verstehen aendert nicht, wie Sie Ihr Wallet im Alltag verwenden. Aber es hilft zu verstehen, warum Solana-Adressen anders aussehen als Ethereum-Adressen, warum Sie einen rohen Solana-Private-Key nicht auf Ethereum verwenden koennen und warum die Sicherheitsannahmen hinter Ihren Mitteln so stark sind, wie sie sind. Diese Kurven sind das mathematische Fundament des Kryptowaehrungsbesitzes --- unsichtbar im normalen Gebrauch, aber absolut grundlegend.