Zum Inhalt springen
buybitcoinsmart

Glossar / Protokoll und Upgrades

Schnorr-Signatur

Auch bekannt als BIP340.

Was ist eine Schnorr-Signatur?
Eine Schnorr-Signatur ist das Signaturverfahren mit 64 Byte, das Bitcoin mit Taproot eingeführt hat, und ihre entscheidende Eigenschaft ist die Linearität: Mehrere Schlüssel und Signaturen lassen sich zu einer einzigen zusammenfassen.

Spezifiziert im BIP-340.

ECDSA-Signaturen belegen 71 oder 72 Bytes und lassen sich nicht kombinieren; Schnorr-Signaturen belegen immer 64 und lassen sich kombinieren. Dieser Unterschied ist der Grund, warum zwei Unterzeichner, oder fünfzehn, eine einzelne Signatur erzeugen können, die sich gegen einen einzelnen öffentlichen Schlüssel prüfen lässt, ohne dass On-Chain erkennbar ist, wie viele es waren. Bitcoin erhielt das Verfahren in BIP-340, erstellt im Januar 2020 und durchsetzbar ab Block 709.632.

Wie es funktioniert

Das Verfahren nutzt dieselbe elliptische Kurve, die Bitcoin schon immer verwendet hat, secp256k1, und dieselben privaten Schlüssel. Was sich ändert, ist die Algebra darum herum.

Zum Signieren wählen Sie einen geheimen Nonce, veröffentlichen den daraus erzeugten Punkt als R und berechnen eine einzelne Zahl s aus dem Nonce, einem Hash von R zusammen mit dem öffentlichen Schlüssel und der Nachricht sowie Ihrem privaten Schlüssel. Die Signatur besteht aus R und s mit je 32 Bytes, woraus sich die feste Länge von 64 Bytes ergibt. Die Verifikation stellt dieselbe Gleichung um und prüft, dass zwei Punkte übereinstimmen. ECDSA braucht dabei eine modulare Inversion; Schnorr nicht, und diese fehlende Inversion ist der Grund, warum das Ganze linear bleibt.

Die Linearität ist der praktische Nutzen. Addieren Sie zwei private Schlüssel, signiert die Summe für die Summe der beiden öffentlichen Schlüssel, sodass eine Gruppe gemeinsam einen scheinbar einzelnen Schlüssel halten kann. Sie erlaubt außerdem die Stapelverifizierung: Ein Node, der einen Block validiert, kann Hunderte Signaturen in einem einzigen zusammengefassten Vorgang prüfen statt eine nach der anderen, was vor allem beim anfänglichen Herunterladen der Blöcke zählt.

Zwei Details in BIP-340 dienen dazu, typische Fehler zu verhindern. Öffentliche Schlüssel sind x-only, 32 Bytes mit impliziter y-Koordinate, was die Mehrdeutigkeit beseitigt, die früher zwei Kodierungen desselben Schlüssels erzeugten. Und jeder Hash ist ein Tag-Hash, dem eine Domänenzeichenfolge vorangestellt ist, sodass eine für einen Zweck erstellte Signatur niemals als gültig in einem anderen Protokoll wiederverwendet werden kann, das zufällig ähnliche Bytes hasht.

Der Nonce bleibt die gefährliche Stelle. Wird einer für zwei verschiedene Nachrichten verwendet, gibt er den privaten Schlüssel durch einfache Arithmetik preis, genau wie bei ECDSA, weshalb BIP-340 eine deterministische Ableitung gemischt mit optionaler zusätzlicher Zufälligkeit vorschreibt, statt die Wahl den Implementierern zu überlassen.

Es gibt einen Grund, warum nichts davon im Jahr 2009 kam. Claus Schnorr hielt das US-Patent 4.995.082 auf das Verfahren, und es lief erst im Februar 2008 aus, wenige Monate bevor das Bitcoin-Whitepaper erschien. ECDSA war damals der unbelastete Standard, also wurde Bitcoin mit der zweitbesten Option ausgeliefert und wartete zwölf Jahre, um das zu korrigieren.

Warum das beim Bitcoin-Kauf zählt

Bei einer Wallet mit einem einzigen Schlüssel ist der Effekt ein Rundungsfehler, und für jeden, der einen ernsthaften Betrag schützt, ist es die nützlichste Kryptografie, die Bitcoin hinzugefügt hat.

Beginnen Sie mit den Kosten, Bitcoin über mehrere Geräte zu halten. Eine 2-von-3-Anordnung, die auf die alte Weise ausgegeben wird, veröffentlicht zwei Signaturen und drei öffentliche Schlüssel in jeder Transaktion, sodass Sie bei jeder Bewegung von Guthaben für die gesamte Richtlinie zahlen. Kooperativ über Taproot ausgegeben, veröffentlicht sie eine Signatur, und die anderen Schlüssel erscheinen nie. Die Ersparnis summiert sich, wenn Sie kleine Beträge zusammenführen, was Langzeit-Halter genau tun.

Dann die Folge für die Privatsphäre, die größer ist. Firmen für Blockchain-Analyse klassifizieren Adressen nach ihrer Form, und Multisig war immer eine auffällige Form. Die Hardware-Wallets, die diese Website bewertet, können als Mitunterzeichner in solchen Anordnungen auftreten, und bis Taproot verriet der Akt, sich ordentlich zu schützen, Beobachtern, dass Sie etwas hatten, das den Schutz wert war. Eine kooperative Schnorr-Ausgabe beseitigt dieses Signal, ohne etwas abzuschwächen.

Bei einem Nachlassplan verschiebt sich die Rechnung ebenfalls. Weil ungenutzte Zweige eines Taproot-Baums nichts kosten, können Sie einen zeitverzögerten Wiederherstellungspfad für ein Familienmitglied hinzufügen, ohne bei jeder gewöhnlichen Ausgabe dafür zu zahlen. Das ist eine wirklich neue Option, und es lohnt sich, unseren Sicherheitsratgeber zu lesen, bevor Sie einen entwerfen, denn die Fehlerart eines cleveren Verwahrungsschemas ist der Verlust des Zugangs, nicht ein Raub.

MuSig2: zwei Unterzeichner, eine Signatur

MuSig2, standardisiert als BIP-327, ist das Protokoll, das die Linearität in etwas verwandelt, das Wallets tatsächlich nutzen können.

Öffentliche Schlüssel naiv zu addieren ist unsicher. Erfährt ein Teilnehmer die Schlüssel aller anderen, bevor er seinen eigenen bekannt gibt, kann er einen Schlüssel konstruieren, der die anderen aufhebt, und kann am Ende allein signieren. Das ist der Rogue-Key-Angriff, und MuSig2 wehrt ihn ab, indem jeder Schlüssel mit einem aus der gesamten Menge abgeleiteten Koeffizienten gewichtet wird, sodass kein Teilnehmer seinen eigenen frei wählen kann.

Der Signaturablauf besteht aus zwei Runden. Jede Partei sendet Nonce-Commitments, dann sendet jede Partei eine Teilsignatur, und die Teilsignaturen ergeben zusammen eine gültige Schnorr-Signatur unter dem aggregierten Schlüssel. Zwei Runden sind wichtig, weil die erste im Voraus erledigt werden kann, was das Verfahren in Lightning-Kanälen nutzbar macht, wo laufend Signaturen ausgetauscht werden.

On-Chain landet eine einzelne Signatur mit 64 Bytes, die einen einzelnen Schlüsselpfad-Ausgang ausgibt. Eine kooperative Ausgabe zwischen zwei Parteien kostet etwa 57,5 vbytes, weniger als jede andere Eingabeart, und der Beobachter kann nicht erkennen, ob eine Person oder ein Gremium sie autorisiert hat.

Schnorr-Signatur vs. Signatur

Bei Bitcoin bedeutet das bloße Wort Signatur noch immer meist ECDSA, und beide Verfahren werden täglich genutzt. Bitcoin auf einer Adresse, die mit 1, 3 oder bc1q beginnt, wird mit ECDSA ausgegeben, genau wie im Jahr 2010. Bitcoin auf einer bc1p-Adresse wird mit Schnorr ausgegeben. Eine Wallet, die beide Arten hält, was die meisten Wallets mit Vorgeschichte tun, erzeugt beide Arten in derselben Sitzung, ohne es zu erwähnen. Wer Ihnen sagt, Bitcoin nutze ECDSA, Punkt, beschreibt das Protokoll, wie es vor November 2021 war.

Schnorr-Signatur vs. MuSig2

Schnorr ist das Signaturverfahren; MuSig2 ist ein darauf aufbauendes Protokoll. Sie können Schnorr mit einem einzigen Schlüssel für immer nutzen und MuSig2 nie berühren, was heute jede gewöhnliche Taproot-Wallet tut. MuSig2 kommt erst ins Spiel, wenn mehrere Parteien wie eine erscheinen wollen, und es ist nicht die einzige Option, die auf derselben Eigenschaft aufbaut: Schwellenwertverfahren, die einen fehlenden Unterzeichner tolerieren, und Adaptorsignaturen, die für atomare Tauschvorgänge und Lightning genutzt werden, sind eigenständige Konstruktionen, die dieselbe Linearität nutzen.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Sind Schnorr-Signaturen sicherer als ECDSA?

Sie beruhen auf derselben Kurve und denselben Schlüsselgrößen, das Sicherheitsniveau ist also vergleichbar. Was Schnorr hinzufügt, ist ein saubererer Sicherheitsbeweis, eine feste Länge von 64 Byte und die Möglichkeit, Schlüssel zu kombinieren; deshalb hat Bitcoin es übernommen.

Warum hat Bitcoin nicht von Anfang an Schnorr-Signaturen verwendet?

Wegen eines Patents. Claus Schnorr hielt das US-Patent 4.995.082 auf das Verfahren, bis es im Februar 2008 auslief, Monate bevor das Bitcoin-Whitepaper erschien, sodass ECDSA der unbelastete Standard war, der zum Start verfügbar war.

Muss ich etwas tun, um Schnorr-Signaturen zu verwenden?

Nein, außer eine Taproot-Adresse zu verwenden. Jede Ausgabe aus einem bc1p-Output erzeugt automatisch eine Schnorr-Signatur, und Ihre Wallet erzeugt weiterhin ECDSA-Signaturen für Bitcoin, die auf älteren Adresstypen gehalten werden.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Protokoll und Upgrades

Diese Seite auf Englisch lesen