Zum Inhalt springen
buybitcoinsmart

Glossar / Adressen und Schlüssel

Öffentlicher Schlüssel

Was ist ein öffentlicher Schlüssel?
Ein öffentlicher Schlüssel ist der Punkt auf der secp256k1-Kurve, der aus Ihrem privaten Schlüssel abgeleitet wird, ohne Risiko veröffentlicht werden kann und der Wert ist, gegen den eine Signatur geprüft wird, wenn Sie Bitcoin ausgeben.

Multipliziert man den privaten Schlüssel mit einem festen Punkt auf der Kurve, erhält man den öffentlichen Schlüssel, und kein bekanntes Verfahren kehrt diesen Schritt um. Komprimierte Schlüssel belegen 33 Bytes, und Taproot reduzierte sie weiter auf die 32 Byte große x-only-Form, die in BIP-340 definiert ist. Als Nutzer sehen Sie einen selten, weil die meisten Adressen nur einen Hash des Schlüssels veröffentlichen und den Schlüssel selbst erst preisgeben, wenn die Bitcoin schließlich bewegt werden.

Wie es funktioniert

Öffentliche Schlüssel stammen aus einer bestimmten Kurve, und deren Arithmetik leistet die ganze Arbeit. Bitcoin verwendet secp256k1, definiert durch die Gleichung y zum Quadrat gleich x hoch drei plus 7 über einem großen Primkörper, zusammen mit einem vereinbarten Startpunkt, dem Generator. Addiert man diesen Generator so oft zu sich selbst, wie der private Schlüssel angibt, entsteht ein weiterer Punkt auf der Kurve, und dieser Punkt ist der öffentliche Schlüssel. Die Operation ist in eine Richtung schnell und mit allen heute bekannten Verfahren in die andere nicht durchführbar, was die gesamte Grundlage des Besitzes von Bitcoin ist.

In der Praxis kommen drei Kodierungen vor. Die ursprüngliche unkomprimierte Form verbraucht 65 Bytes, um beide Koordinaten hinter einem 0x04-Präfix auszuschreiben. Die komprimierte Form behält nur die x-Koordinate und ein Paritätsbyte, insgesamt 33 Bytes, und ist seit weit über einem Jahrzehnt der Standard. Taproot geht einen Schritt weiter mit x-only-Schlüsseln von genau 32 Bytes und lässt das Paritätsbyte weg, weil BIP-340 stattdessen die Konvention festlegt.

Wo der Schlüssel auf der Chain erscheint, hängt vom Ausgabetyp ab. Eine Legacy- oder SegWit-Ausgabe der Version 0 bindet sich an einen 20 Byte großen Hash des öffentlichen Schlüssels, sodass die Chain nur den Hash zeigt und sonst nichts, bis die Bitcoin ausgegeben werden; dann muss der Ausgebende den Schlüssel offenlegen, dessen Hash dazu passt. Eine Taproot-Ausgabe ist anders: Der 32 Byte große Ausgabeschlüssel steht in der Adresse selbst und ist ab dem Eingang der Mittel sichtbar.

Warum das beim Bitcoin-Kauf wichtig ist

Zwei praktische Situationen bringen einen gewöhnlichen Käufer mit einem öffentlichen Schlüssel in Berührung, und beide sind leicht falsch zu handhaben.

Die erste ist der Nachweis, dass eine Adresse Ihnen gehört. Nach der EU-Geldtransferverordnung muss eine Börse prüfen, dass eine selbstverwahrte Adresse tatsächlich zu ihrem Kunden gehört, bevor sie mehr als 1.000 Euro dorthin sendet, und vergleichbare Prüfungen gelten in mehreren anderen Jurisdiktionen, die unsere Länderratgeber abdecken. Der übliche Nachweis ist eine signierte Nachricht: Ihre Wallet signiert eine Challenge mit dem Schlüssel hinter der Adresse, und die Börse prüft sie gegen den öffentlichen Schlüssel. Nichts Geheimes verlässt Ihr Gerät, daher ist es sicher, dieser Aufforderung nachzukommen, anders als bei einer Aufforderung zur Herausgabe des Schlüssels selbst.

Die zweite ist der erweiterte öffentliche Schlüssel, der xpub, den Ihre Wallet exportieren kann. Ein xpub ist kein Ausgabeschlüssel, und seine Herausgabe kann Sie nicht direkt Bitcoin kosten. Sie gibt aber Ihre Finanzhistorie preis: Wer ihn besitzt, kann jede Adresse erzeugen, die diese Wallet jemals verwendet hat und verwenden wird, und den Saldo und jede damit verbundene Transaktion einsehen. Portfolio-Tracker, Steuertools und Buchhalter fragen routinemäßig nach xpubs. Geben Sie einen nur dort heraus, wo Sie es als unbedenklich empfinden würden, einen lebenslangen Kontoauszug auszuhändigen, und nutzen Sie ein separates Konto oder eine separate Wallet, wo Sie das nicht tun würden.

Einem Schlüssel auf die Blockchain folgen

Nehmen Sie eine Wallet, die den standardmäßigen nativen SegWit-Pfad m/84'/0'/0'/0/0 verwendet. Der Schlüssel an diesem Pfad besteht aus 33 komprimierten Bytes. Die Wallet hasht ihn, zuerst mit SHA-256 und dann mit RIPEMD-160, was 20 Bytes ergibt, und kodiert diese Bytes als bc1q-Adresse. Alles, was an diese Adresse gesendet wird, ist nun an einen Hash gebunden, und das Netzwerk hat den Schlüssel nie gesehen.

Beim Ausgeben enthält das Witness-Feld zwei Elemente: eine Signatur und den 33 Byte großen öffentlichen Schlüssel. Jeder Node hasht den Schlüssel, prüft, dass das Ergebnis mit den 20 Bytes übereinstimmt, die die Ausgabe verlangt hat, und verifiziert dann die Signatur gegen den Schlüssel. Nur wenn beides zutrifft, gilt die Ausgabe. Ab diesem Block ist der Schlüssel öffentlich, was ein guter Grund ist, kein Guthaben auf einer Adresse liegen zu lassen, von der Sie bereits ausgegeben haben.

Öffentlicher Schlüssel vs. privater Schlüssel

Der private Schlüssel wird zufällig gewählt, und der öffentliche Schlüssel wird aus ihm berechnet, nie umgekehrt. Diese Asymmetrie bestimmt den Umgang mit beiden: Einen öffentlichen Schlüssel zu veröffentlichen ist Routine und kostet Sie nichts, während die Veröffentlichung eines privaten Schlüssels die Bitcoin sofort und unwiderruflich aushändigt. Backups schützen die private Seite, da der öffentliche Schlüssel aus ihr jederzeit in Mikrosekunden neu berechnet werden kann. Die Verifikation nutzt die öffentliche Seite, weshalb Fremde und Nodes Ihre Signatur prüfen können, ohne dass ihnen jemals etwas anvertraut wird.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Ist es sicher, meinen öffentlichen Schlüssel weiterzugeben?

Ja. Ein öffentlicher Schlüssel lässt sich nicht in den privaten Schlüssel zurückverwandeln, und er wird ohnehin bei jeder Ausgabe auf der Blockchain veröffentlicht. Der Preis für die Weitergabe ist die Privatsphäre und nicht die Sicherheit, da sie Sie mit den Bitcoin verknüpft, die er steuert.

Ist ein öffentlicher Schlüssel dasselbe wie meine Bitcoin-Adresse?

Nein. Bei Legacy-Ausgaben und nativen SegWit-Ausgaben enthält die Adresse einen Hash des öffentlichen Schlüssels von 20 Byte, nicht den Schlüssel. Taproot-Adressen sind die Ausnahme: Sie betten direkt einen Schlüssel von 32 Byte ein.

Kann jemand meine Bitcoin stehlen, wenn er meinen xpub hat?

Nein, ein erweiterter öffentlicher Schlüssel kann nichts signieren. Er erlaubt es dem Inhaber jedoch, alle Ihre Adressen zu erzeugen und Ihren gesamten Bestand und Ihre Transaktionshistorie einzusehen, behandeln Sie ihn daher als sensible Finanzinformation und nicht als geheimes Zugangsmittel.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Adressen und Schlüssel

Diese Seite auf Englisch lesen