Glossar / Wallets und Verwahrung
Ableitung der Seed-Phrase
- Was ist die Ableitung der Seed-Phrase?
- Die Ableitung der Seed-Phrase ist die Einwegfunktion, die einen mnemotechnischen Satz plus eine optionale Passphrase in den 512 Bit langen Seed umwandelt, aus dem eine Wallet tatsächlich die Schlüssel bildet.
Spezifiziert im BIP-39.
Die Funktion ist PBKDF2 mit HMAC-SHA512, ausgeführt über die Wörter selbst und nicht über die Zufälligkeit dahinter. BIP-39 legt die Anzahl der Iterationen auf 2.048 und die Ausgabe auf 64 Byte fest, wobei Ihre Passphrase an das feste Wort "mnemonic" angehängt wird, um das Salt zu bilden. Nichts in diesem Schritt prüft, ob die Wörter jemals gültig waren, sodass eine falsch eingegebene Phrase trotzdem einen wohlgeformten Seed und eine leere Wallet ergibt.
Wie es funktioniert
Die Ableitung der Seed-Phrase nimmt zwei Eingaben und liefert eine Ausgabe, in einem einzigen Aufruf ohne Zustand und ohne Erinnerung daran, was die Wörter erzeugt hat. Der mnemotechnische Satz ist das Passwort. Das Salt ist der Text "mnemonic" mit einer eventuell angehängten Passphrase, und eine leere Zeichenkette tritt an ihre Stelle, wenn keine Passphrase gesetzt wurde. Beide durchlaufen zuerst die Unicode-NFKD-Normalisierung, sodass akzentuierte Zeichen in einer französischen oder spanischen Phrase unabhängig von der Tastatur, mit der sie getippt wurden, denselben Hash ergeben.
BIP-39 stellt fest, dass diese Hälfte des Standards von der Hälfte, die eine Phrase erzeugt, "completely independent" ist, und sagt dies zustimmend: Es gibt keine Einschränkungen für die Struktur des Satzes, und Clients dürfen eigene Wortlisten oder sogar ganze Satzgeneratoren schreiben. Die praktische Lesart ist nüchterner. Geben Sie der Funktion zwölf Wörter Unsinn, liefert sie 64 einwandfrei verwendbare Byte. BIP-39 verlangt, dass Software die Prüfsumme außerhalb dieses Schritts berechnet und "issue a warning if it is invalid", eine Warnung statt einer Ablehnung, weshalb manche Werkzeuge eine Phrase wiederherstellen, von der sie Ihnen gerade gesagt haben, dass sie defekt ist.
Aus dem Hashen des Satzes statt der dahinterliegenden Entropie folgen zwei Konsequenzen. Übersetzen Sie eine Phrase Wort für Wort in eine andere Sprache, ergibt sich ein völlig anderer Seed, weil sich die Eingabebyte geändert haben, obwohl die zugrunde liegende Zufälligkeit gleich blieb. Und die Richtung kehrt sich nie um: Ein beliebiger BIP-32-Seed lässt sich nicht wieder als BIP-39-Phrase ausschreiben, weshalb "den Seed exportieren" und "die Wörter exportieren" verschiedene Anfragen sind.
Wo Sie ihr begegnen
Die Ableitung der Seed-Phrase tritt in dem Moment zutage, in dem zwei Softwarekomponenten uneins darüber sind, welche Funktion ausgeführt werden soll. Das Backup mit mehreren Anteilen auf der Trezor Safe 3 und der Safe 5, beide hier bewertet, ist SLIP-39 statt BIP-39: eine Liste mit 1.024 Wörtern, die 10 Bit auf einmal liest, was 20 Wörter pro Anteil für ein 128 Bit großes Geheimnis und 33 Wörter für ein 256 Bit großes ergibt. Diese Anteile berühren den PBKDF2-Schritt von BIP-39 nie. SLIP-39 wurde von den Autoren von BIP-39 selbst als Ersatz veröffentlicht und macht "the overly coupled design of BIP-0039 and its use of a one-way derivation function" dafür verantwortlich, dass Anteile nicht zurückkonvertiert werden können; der umgekehrte Weg funktioniert, erzwingt aber für jeden resultierenden Anteil 59 Wörter, unabhängig von der Länge, mit der Sie begonnen haben.
Die Bewertung der Coldcard auf dieser Website zeigt, was die Ableitung nicht für Sie leisten kann. Eine Firmware-Migration im März 2021 führte dazu, dass die Seed-Erzeugung auf einen pseudozufälligen Zahlengenerator in Software statt auf den in Hardware zurückgriff, und Coinkite aktualisierte seinen Hinweis am 1. August 2026. Die Ableitung selbst versagte nie. Sie machte aus einem schwachen Geheimnis einen wohlgeformten 64 Byte großen Seed hinter einer gültigen Prüfsumme, und keine nachgelagerte Wallet hatte eine Möglichkeit, dies zu bemerken.
Um die Funktion laufen zu sehen, ohne etwas zu riskieren, veröffentlicht BIP-39 Testvektoren, die Entropie, Mnemonic und den resultierenden Seed einander zuordnen, wobei für jeden Vektor die Passphrase "TREZOR" verwendet wird.
Ableitung der Seed-Phrase vs. Ableitungspfad
Die Ableitung der Seed-Phrase geschieht einmal, bevor ein einziger Schlüssel existiert; ein Ableitungspfad wird danach herangezogen, jedes Mal wenn eine Adresse benötigt wird. Dieser Unterschied entscheidet, wie schwer eine leer wirkende Wiederherstellung ausfällt. Ein falscher Pfad ist eine Einstellung: Ändern Sie den Skripttyp, scannen Sie erneut, und der Bestand erscheint. Eine falsche Passphrase ändert den Seed, was den gesamten Baum darunter ändert, und keine Einstellung bringt den alten zurück.