490 / 736FP

Wallet Fingerprint

Kurzer Fingerabdruck des Wallet-Hauptschlüssels

Nach der Wiederherstellung einer Wallet möchtest du wissen, ob du dieselben Schlüssel wie zuvor verwendest. Der Wallet Fingerprint ist eine kurze Kennung, die dabei hilft. Meist bezeichnet sie den Hauptschlüssel der Wallet in seiner öffentlichen Form nach BIP32. Sie dient dem Vergleich, ersetzt aber weder eine Sicherung noch einen abschließenden Nachweis, dass die gesamte Wallet übereinstimmt.

Der BIP32-Fingerprint besteht aus den ersten 4 Bytes des HASH160 eines komprimierten öffentlichen Schlüssels. HASH160 bedeutet SHA-256 gefolgt von RIPEMD-160, zwei Funktionen zur Berechnung numerischer Datenabdrücke. Die resultierenden 32 Bit werden meist als 8 hexadezimale Zeichen aus Ziffern und Buchstaben angezeigt. Der Chain Code, eine Zusatzangabe zum Ableiten weiterer Schlüssel, geht nicht in diesen kurzen Fingerprint ein.

Stell dir vor, du hast Aufzeichnungen zu mehreren Wallets und möchtest sie auseinanderhalten. Der Fingerprint dient als kurzes Etikett, berechnet aus dem öffentlichen Schlüssel in einer genau festgelegten Kodierung. Er ist kein direkter Hash der Sicherungswörter oder des privaten Schlüssels. Allein ist er weder Empfangsadresse noch Zahlungsmöglichkeit: Er kann keine Transaktion signieren und keine Schlüssel wiederherstellen. Ihn zu notieren ersetzt deshalb keine Sicherung, aus der die Wallet tatsächlich wiederhergestellt werden kann. [1]

BIP32 bildet einen Schlüsselbaum: Vom Hauptschlüssel werden weitere Schlüssel abgeleitet, ähnlich wie Äste aus einem gemeinsamen Stamm. Ein erweiterter öffentlicher Schlüssel, xpub, oder privater Schlüssel, xprv, enthält den Fingerprint seines übergeordneten Schlüssels, also der Ebene darüber. Der Hauptschlüssel hat keinen solchen Elternschlüssel; deshalb steht dort 00000000. Das ist jedoch nicht sein eigener Fingerprint. Eine Anwendung kann den eigenen Fingerprint des Hauptschlüssels anzeigen. Kläre vor dem Vergleich, welche Angabe du gerade liest. [1]

Der Hauptschlüssel aus dem öffentlichen BIP32-Testvektor 1 hat den eigenen Fingerprint 3442193e. Trotzdem steht im Elternfeld seines Haupt-xpub der Wert 00000000. Das ist kein Widerspruch: Eine Angabe beschreibt den Schlüssel selbst, die andere seinen nicht vorhandenen Elternschlüssel. Ein Testvektor ist eine veröffentlichte Zusammenstellung von Eingaben und erwarteten Ergebnissen zur Softwareprüfung. Verwende diese allgemein bekannten Daten niemals als Grundlage einer Wallet für eigenes Geld. [1]

PSBT ist ein Paket mit Transaktionsdaten, das an ein Signiergerät übergeben werden kann. Nach BIP174 verbindet es den Fingerprint des Hauptschlüssels mit einem Ableitungspfad: der Anleitung zum Erreichen eines bestimmten öffentlichen Schlüssels. Auch ein Output Descriptor, eine Textbeschreibung der Schlüssel und Ausgabebedingungen, kann den Ursprung eines Schlüssels festhalten. Prüft das Signiergerät das Wechselgeld einer Zahlung, reicht ein passender Fingerprint nicht. Es muss den tatsächlichen Schlüssel und die zugehörigen Bedingungen ableiten beziehungsweise vergleichen, damit es keinen fremden Output für einen eigenen hält. [2] [3]

Ein kurzer Fingerprint spart Platz, hat aber einen begrenzten Wertebereich: 32 Bit erlauben nur 4294967296 Werte. Verschiedene Schlüssel können daher denselben Fingerprint haben. Das nennt man eine Kollision, und BIP32 verlangt ausdrücklich, dass Software damit umgeht. Eine Übereinstimmung prüft weder sämtliche Konten und Ableitungspfade noch die Skripttypen, also die Ausgaberegeln. Sie beweist auch nicht, dass die benötigten privaten Schlüssel vorhanden sind. [1] [3]

Prüfe zuerst, ob du dieselbe Art von Fingerprint auf derselben Ebene des Baums vergleichst. Eine Abweichung kann auf einen anderen Seed, die geheime Grundlage der Schlüssel, oder eine andere Passphrase, ein zusätzliches Passwort, hindeuten. Schließe zuvor eine Verwechslung von Haupt- und Elternfeld aus. Ergänze einen passenden Fingerprint durch die Prüfung bekannter Adressen, Ableitungspfade und Ausgaberegeln. Er ist eine nützliche Teilkontrolle, ersetzt aber keine sicher verwahrte Sicherung und kein geprüftes Wiederherstellungsverfahren. [1] [3]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit HD Wallet, PSBT, BIP39 passphrase, Output Descriptor. Auf diesen Eintrag verweisen außerdem SeedQR.

DOC · 001BIP32 — Key identifiers and serializationSpezifikation DOC · 002BIP174 — Key origins and change detectionSpezifikation DOC · 003BIP380 — Output Script DescriptorsSpezifikation
Überarbeitet: Quellenbasiert · Keine Anlageberatung