MSTR Cat

Blockchain/Niveau II · Mechanik/2.1 Kryptographie/Lektion 4

Digitale Signaturen: ECDSA und Schnorr

Der mathematische „Händedruck“, der Ausgaben autorisiert, ohne den Schlüssel preiszugeben

MaterialienEin Block-Explorer, der Witness-Daten anzeigtEine native SegWit-Ausgabe und eine Taproot-Key-Path-Ausgabe zum Vergleich

Neugier

  1. Wie kann eine Signatur die Kontrolle über eine geheime Zahl nachweisen, ohne sie preiszugeben?
  2. Warum verloren Sonys PlayStation 3 und mehrere Android-Bitcoin-Wallets ihre Schlüssel durch wiederverwendete oder vorhersehbare Nonces?
  3. Was macht Schnorr-Signaturen im Vergleich zu ECDSA kleiner, schneller und aggregierbar?

Erkunden

  1. Eine digitale Signatur beweist den Besitz eines privaten Schlüssels, ohne ihn offenzulegen. In Bitcoin erfordert das Ausgeben eines Transaktions-Outputs, den Transaktions-Hash mit dem privaten Schlüssel zu signieren, der zum öffentlichen Schlüssel im Locking-Skript dieses Outputs gehört. Die Signatur kann von jedem mithilfe des öffentlichen Schlüssels und des Nachrichten-Hashes überprüft werden. Dieser Mechanismus stellt sicher, dass nur der Inhaber des Schlüssels Übertragungen autorisieren kann, während die Privatsphäre gewahrt bleibt.
  2. ECDSA, standardisiert in ANSI X9.62 (1999), ist seit 2009 das primäre Signaturverfahren von Bitcoin. Es erzeugt aus dem Nachrichten-Hash und einer geheimen Nonce k ein Wertepaar (r, s). Der Wert r ist die x-Koordinate des Punkts k·G; der Wert s ist k⁻¹(hash + x·r) mod n, wobei x der private Schlüssel ist. Da jede Signatur ein neues zufälliges k erfordert, kann ein Angreifer bei Wiederverwendung oder Offenlegung von k den privaten Schlüssel direkt berechnen.
  3. Der Signaturschlüssel von Sonys PlayStation 3 wurde 2010 kompromittiert, als fail0verflow zeigte, dass Sony für alle Signaturen dieselbe Nonce wiederverwendete. Bitcoin erlebte im August 2013 ähnliche Diebstähle aufgrund eines Fehlers in Androids SecureRandom, der vorhersehbare Nonces erzeugte. RFC 6979 (2013) löste dieses Problem, indem k deterministisch aus dem privaten Schlüssel und dem Nachrichten-Hash abgeleitet wird, wodurch die Abhängigkeit von externen Zufallsquellen entfällt.
  4. ECDSA-Signaturen sind formbar (malleable): Für ein gegebenes r existieren zwei gültige s-Werte (s und n−s). Ein Dritter könnte die gleichwertige Signatur einsetzen und so die ID der Transaktion ändern, ohne sie ungültig zu machen. Die Bitcoin-Policy verlangt eine „Low-S“-Normalisierung, die s auf die untere Hälfte der Kurvenordnung beschränkt. Diese Einschränkung stellt sicher, dass jede Nachricht pro Nonce nur eine kanonische Signatur hat.
  5. Schnorr-Signaturen, von Claus-Peter Schnorr patentiert (US-Patent 1991 erteilt, 2008 abgelaufen) und für Bitcoin in BIP340 standardisiert, erzeugen Signaturen fester Größe von 64 Bytes ohne den Overhead der DER-Kodierung. Sie sind linear: Mit einem sorgfältig gestalteten Protokoll lassen sich mehrere öffentliche Schlüssel zu einem aggregierten Schlüssel und ihre Signaturen zu einer einzigen Signatur zusammenfassen. Das ermöglicht MuSig2-Multisig-Verfahren, die on-chain wie Outputs eines einzelnen Unterzeichners aussehen, wodurch die Transaktionsgröße sinkt und die Privatsphäre verbessert wird.
  6. Taproot wurde im November 2021 (Block 709.632) aktiviert und führte native Unterstützung für Schnorr-Signaturen bei P2TR-Outputs ein. Eine Key-Path-Ausgabe benötigt in ihren Witness-Daten nur eine 64-Byte-Signatur, gegenüber einer 71–72 Byte langen ECDSA-Signatur plus einem 33-Byte-öffentlichen-Schlüssel bei einer P2WPKH-Ausgabe. Die feste Größe vereinfacht das Parsen, und Schnorr erlaubt die Batch-Verifizierung, bei der viele Signaturen verschiedener Schlüssel gemeinsam schneller geprüft werden als einzeln nacheinander; diese Möglichkeit nutzt Bitcoin Core bisher noch nicht.

Kernfakten

  • ECDSA (ANSI X9.62, 1999) erzeugt DER-kodierte Signaturen mit einer Länge von etwa 71–72 Bytes; Schnorr (BIP340) erzeugt Signaturen mit fester Größe von 64 Bytes.
  • Die Wiederverwendung oder Offenlegung der ECDSA-Nonce k gibt den privaten Schlüssel preis: Sony PS3 (2010) und Diebstähle aus Android-Wallets (August 2013).
  • RFC 6979 leitet k deterministisch aus dem privaten Schlüssel und dem Nachrichten-Hash ab, wodurch die Abhängigkeit von Zufallszahlengeneratoren entfällt.
  • ECDSA-Signaturen sind formbar (malleable); die Bitcoin-Policy erzwingt „Low-S“, um eine kanonische Kodierung sicherzustellen.
  • Schnorr-Signaturen sind linear: Schlüssel und Signaturen können zur Effizienzsteigerung aggregiert (MuSig2) und in Batches überprüft werden.
  • Taproot wurde im November 2021 (Block 709.632) aktiviert und brachte eine native Schnorr-Signaturunterstützung für P2TR-Ausgaben ein.

Übung neun, sechs, drei, eins

9SammelnListen Sie 9 digitale Signaturverfahren oder Schlüsseltypen auf. Notieren Sie jeweils das Standardisierungsgremium, das Jahr, die Ausgabegröße und ob sie Aggregation unterstützen.
6GruppierenGruppieren Sie die 9 nach Komplexität der Überprüfung in 6 Kategorien: feste Größe und linear, variable Größe und formbar (malleable), variable Größe und kanonisch, batch-verifizierbar, nur für eine Partei oder hybrid.
3VerdichtenReduzieren Sie die 6 auf 3 zentrale Zielkonflikte zwischen Signaturgröße, Privatsphäre und Recheneffizienz.
1KristallisierenSchreiben Sie 1 Satz darüber, was eine digitale Signatur über die Kontrolle eines Schlüssels garantiert und was sie nicht preisgibt.

Faktcheck

Datumsangaben, Zahlen und Behauptungen wurden mit den unten aufgeführten veröffentlichten Quellen abgeglichen.

In der interaktiven Akademie öffnen →

EN PT ES ZH JA KO RU FR MS