Zum Inhalt springen
buybitcoinsmart

Glossar / Adressen und Schlüssel

Schlüssel-Fingerabdruck

Was ist ein Schlüssel-Fingerabdruck?
Ein Schlüssel-Fingerabdruck besteht aus den ersten 32 Bits des Hash160 eines öffentlichen Schlüssels, als acht Hexadezimalzeichen geschrieben, und Wallets nutzen ihn, um zu kennzeichnen, von welchem Schlüssel ein Ableitungspfad ausgeht.

Spezifiziert im BIP-32.

Ein Fingerabdruck ist ein Etikett fester Breite für einen Schlüssel, und seine Breite ist Teil des Formats und keine Entscheidung der Darstellung. BIP-380 verlangt genau 8 Hexadezimalzeichen innerhalb der Klammern eines Deskriptors, und seine eigenen Testvektoren verwerfen einen Fingerabdruck mit sieben Zeichen, einen mit neun und einen, der ein Zeichen außerhalb des Hexadezimalbereichs trägt. Wenn eine Wallet sich weigert, Ihren Deskriptor zu importieren, zählen Sie zuerst dieses Feld.

Wie es funktioniert

BIP-32 gibt einem erweiterten Schlüssel zwei Identitäten unterschiedlicher Länge, und der Fingerabdruck ist die kurze. Der Bezeichner ist der Hash160 des serialisierten öffentlichen Schlüssels, RIPEMD-160 über SHA-256, wobei der Chain-Code ignoriert wird, und nur die ersten 32 Bits dieses Bezeichners werden Fingerabdruck genannt. Die anderen 128 Bits werden nicht verworfen: BIP-32 sagt, dass der vollständige Bezeichner mit 160 Bits intern verwendet werden könnte, während die kurze Form nur als schnelle Möglichkeit dient, Eltern- und Kindknoten zu erkennen, sodass Software bereit sein muss, mit Kollisionen umzugehen.

Die Übereinstimmung zwischen einem Fingerabdruckfeld und dem umgebenden Schlüssel ist eine Gültigkeitsregel, keine Konvention. Ein Hauptschlüssel hat keinen Elternschlüssel und schreibt 0x00000000 in sein Eltern-Fingerabdruckfeld, und der fünfte Testvektor von BIP-32, die Menge, die Schlüssel abdeckt, die als ungültig erkannt werden müssen, führt sowohl eine xprv als auch eine xpub mit Tiefe null und einem Eltern-Fingerabdruck ungleich null auf. Software, die eine der beiden Zeichenketten ohne Beanstandung importiert, folgt nicht der Spezifikation, was man wissen sollte, bevor man ihr eine Wiederherstellung anvertraut.

Wo er auftaucht

Schlüssel-Fingerabdrücke stehen vor allem in zwei maschinenlesbaren Formaten, Output-Skript-Deskriptoren und teilweise signierten Bitcoin-Transaktionen, und in beiden stehen sie unmittelbar vor einem Ableitungspfad.

BIP-380 setzt die Ursprungsinformationen des Schlüssels in eckigen Klammern vor den Schlüssel und ist streng bei der Breite: genau 8 Hexadezimalzeichen, dann die gehärteten und nicht gehärteten Schritte. Seine Liste ungültiger Ausdrücke nennt drei Fehler dieses einen Feldes: deadbef mit sieben Zeichen, deadbeeef mit neun und gaaaaaaa, das mit einem Zeichen beginnt, das keine Hexadezimalziffer ist. Alle drei werden rundweg abgelehnt, ein falsch getippter Fingerabdruck kostet Sie also einen Importfehler und nicht eine Wallet, die still den falschen Zweig beobachtet.

BIP-174 paart einen Fingerabdruck mit 4 Byte mit einem Pfad, der als 32-Bit-Ganzzahlen in Little-Endian geschrieben ist, und beim globalen Eintrag für den erweiterten öffentlichen Schlüssel muss die Anzahl dieser Ganzzahlen mit der Tiefe übereinstimmen, die die xpub selbst angibt. Diese Anzahl ist es, die einen Unterzeichner einen angegebenen Pfad mit dem ihm übergebenen Schlüssel abgleichen lässt, statt sich einfach auf das Etikett zu verlassen.

Auf einem Bildschirm eines Geräts beantworten dieselben acht Zeichen eine Frage: Welche Seed-Phrase ist das. Sie verraten nichts Ausgebbares, denn ein abgeschnittener Hash lässt sich nicht in einen Schlüssel oder eine Adresse zurückverwandeln. Sie sind dennoch ein Bezeichner, zwei Deskriptoren mit denselben acht Zeichen sind also eine sichtbare Verknüpfung zwischen diesen beiden Zweigen.

Schlüssel-Fingerabdruck vs. Bitcoin-Adresse

Ein Schlüssel-Fingerabdruck und eine Bitcoin-Adresse beginnen beim selben Hash und sind unmittelbar danach nicht mehr vergleichbar. BIP-32 merkt an, dass der Bezeichner eines erweiterten Schlüssels genau den Daten entspricht, die in traditionellen Bitcoin-Adressen verwendet werden, und rät dann davon ab, diesen Bezeichner in base58 zu schreiben, weil er als Adresse gelesen würde und Wallet-Software nicht verpflichtet ist, Zahlungen an den Chain-Schlüssel selbst anzunehmen. Ein Fingerabdruck behält 4 der 20 Byte des Bezeichners und wird in einfachem Hexadezimal geschrieben, er ist also zu kurz, um auch nur versehentlich für ein Zahlungsziel gehalten zu werden. Acht Hexadezimalzeichen in einem Deskriptor sagen, bei welchem Schlüssel ein Pfad begann; eine Adresse sagt, wohin Bitcoin gehen dürfen.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Ist der Fingerabdruck meiner Wallet ein Geheimnis?

Nein, er wird aus einem öffentlichen Schlüssel abgeleitet und gibt niemandem die Möglichkeit auszugeben oder eine Adresse abzuleiten. Er ist dennoch ein Bezeichner, wer also dieselben acht Zeichen in zwei Deskriptoren sieht, sieht eine Verknüpfung zwischen diesen beiden Zweigen.

Können zwei verschiedene Schlüssel denselben Fingerabdruck haben?

Ja. Ein Fingerabdruck hat nur 32 Bits, BIP-32 legt daher fest, dass Software bereit sein muss, mit Kollisionen umzugehen, und dass der vollständige Bezeichner mit 160 Bits verfügbar ist, wo Eindeutigkeit zählt. Gleichen Sie eine Empfangsadresse ab, nicht nur einen Fingerabdruck, bevor Sie Guthaben senden.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Adressen und Schlüssel

Diese Seite auf Englisch lesen