Glossar / Wallets und Verwahrung
Seed einer HD-Wallet
Auch bekannt als HD-Wallet-Seed.
- Was ist der Seed einer HD-Wallet?
- Der Seed einer HD-Wallet ist die rohe Binärzahl, 128 bis 512 Bit davon, die BIP-32 in einen einzigen Hash einspeist, um den Hauptschlüssel und den Chaincode einer Wallet zu erzeugen.
Spezifiziert im BIP-32.
Wallets sprechen von Wörtern, weil Menschen Wörter von Hand abschreiben können, doch BIP-32 sieht niemals Wörter. Es verarbeitet eine Bytefolge und erzeugt in einem einzigen Durchlauf von HMAC-SHA512 einen Hauptschlüssel, wobei der feste Text "Bitcoin seed" als Schlüssel dient. Die Wörter sind eine verbreitete Kodierung dieser Bytefolge, und nicht die einzige, die verwendet wird.
So funktioniert es
BIP-32 legt einen Seed zwischen 128 und 512 Bit fest, empfiehlt 256 und sagt nichts darüber, woher diese Bits stammen. Der Seed geht als Nachricht in HMAC-SHA512 ein, mit der ASCII-Zeichenkette "Bitcoin seed" als Schlüssel. Die Funktion gibt 64 Byte zurück. Die linken 32 werden zum privaten Hauptschlüssel; die rechten 32 werden zum Haupt-Chaincode, dem zusätzlichen Geheimnis, das verhindert, dass ein preisgegebener Kindschlüssel seine Geschwister offenlegt. Alles andere in einer Wallet, jedes Konto, jede Adresse, jeder Wechselgeld-Ausgang, stammt von diesem Paar ab, indem ein ähnlicher Hash mit einer Indexnummer wiederholt wird.
Die Spezifikation enthält einen Sonderfall, der in der Praxis nie eintritt. Wenn diese linken 32 Byte als Null herauskommen oder als ein Wert auf oder über der Ordnung der secp256k1-Kurve, ist der Seed ungültig und die Wallet muss es erneut versuchen. Die Wahrscheinlichkeit liegt bei etwa eins zu 2 hoch 127, sodass noch keine Implementierung jemals gemeldet hat, darauf gestoßen zu sein.
Woher die Bits stammen, ist eine separate Ebene, und es gibt mehrere Antworten. BIP-39 gibt immer genau 512 Bit aus, indem die Merkhilfe durch PBKDF2 läuft. Electrum lässt seine eigene Phrase durch PBKDF2 mit einem anderen Salt laufen und erhält einen Seed, den kein BIP-39-Werkzeug jemals aus denselben Wörtern reproduzieren wird. Eine Wallet kann 256 Bit auch direkt von einem Hardware-Zufallszahlengenerator beziehen und überhaupt keine Phrase anzeigen, was Bitcoin Core tut.
Die Richtung zählt. Wörter werden zu einem Seed; ein Seed wird nicht zu Wörtern. Sobald eine Wallet nur den rohen Wert enthält, wird keine Software jemals eine Merkhilfe dafür ausgeben, weshalb der Export "des Seeds" kein Ersatz dafür ist, die Phrase aufzubewahren, die ihn erzeugt hat.
Wo Sie ihn sehen
Fragen Sie Bitcoin Core zu einer Wallet, meldet es eine hdseedid, einen Fingerabdruck des Seeds, statt irgendeiner Phrase, weil Core BIP-39 nie implementiert hat. Der RPC-Aufruf sethdseed, in Version 0.17.0 hinzugefügt, konnte einen bestimmten Seed in eine Legacy-Wallet installieren, und Deskriptor-Wallets wurden in Bitcoin Core 23.0 zur Voreinstellung für neu erstellte Wallets.
Die Entwicklerdokumentation ist der andere Ort, an dem er offen erscheint. BIP-32 und BIP-39 veröffentlichen beide Testvektoren, die den Seed als 128 Hexadezimalzeichen neben der Merkhilfe zeigen, die ihn erzeugt hat, was die klarste verfügbare Veranschaulichung dafür ist, dass die beiden unterschiedliche Objekte sind.
Der praktische Moment, in dem dies zum Tragen kommt, ist die Migration zwischen Werkzeugen. Einige Wallets und Spezifikationen, darunter die Seed-Sicherungen von Coldcard und verschiedene Entwickler-Werkzeuge, importieren oder exportieren den rohen Wert statt Wörter. Einen rohen Seed einem Werkzeug zu übergeben, das eine Merkhilfe erwartet, oder umgekehrt, erzeugt entweder einen Fehler oder, schlimmer noch, eine gültige, aber leere Wallet. Prüfen Sie, welche Ebene ein Feld verlangt, bevor Sie etwas hineinkopieren.
Seed einer HD-Wallet vs. Seed-Phrase
Der Seed ist eine Zahl; die Phrase ist eine Art, diese Zahl aufzuschreiben. Die beiden auseinanderzuhalten erklärt mehrere Dinge, die sonst wie Magie wirken. Es ist der Grund, warum das Hinzufügen einer optionalen Passphrase den Seed ändert und Ihre Wörter unberührt lässt. Es ist der Grund, warum die Phrase von Electrum und eine BIP-39-Phrase beide zwölf englische Wörter sein können und trotzdem unterschiedliche Wallets öffnen. Und es ist der Grund, warum eine Wallet, die mit "Seed-Import" wirbt, eine Merkhilfe, eine Hex-Zeichenkette oder einen erweiterten privaten Schlüssel meinen kann, drei Eingaben, die einen Spitznamen und sonst nichts gemeinsam haben.