Was ist der Wallet-„Wort-Samen“, der häufig in beliebten Wallets-Clients verwendet wird, und was macht er?

Ich verwende eine ziemlich alte Version von Multibit Classic und habe mich kürzlich für ein Upgrade entschieden. Ich habe Multibit HD und Electrum ausprobiert und festgestellt, dass mir beide eine Wallet mit einem „Word Seed“ eingerichtet haben. Es ist nur eine Reihe von zufälligen Wörtern, die anscheinend in einem Algorithmus verwendet werden. Die Frage ist, was macht es genau? Jemand hat mir gesagt, dass es private Schlüssel für Sie generiert, und alles, was Sie brauchen, ist dieser Wortsamen, und Sie können alle Ihre privaten Schlüssel wiederherstellen/generieren. Wie funktioniert das genau? Welcher Algorithmus wird für den Seed verwendet, um die Schlüssel zu generieren?

Diese Worte sind offenbar sehr wichtig, wie Multibit auf ihrer Seite warnt :

Um Ihre Brieftasche wiederherzustellen und Ihr Bitcoin wiederherzustellen, müssen Sie Ihre Brieftaschenwörter haben.

Mit Ihren Brieftaschenwörtern können Sie Ihre Bitcoins wiederherstellen. Sie müssen Ihre Wallet-Wörter sicher aufbewahren, denn jeder, der Ihre Wallet-Wörter kennt, kann Ihre Bitcoin stehlen.

Die Seed-Wörter scheinen ein Ersatz für die privaten Schlüssel zu sein, basierend auf dem, was Multibit über sie sagt. Ich persönlich hänge sehr an der Idee, meine privaten Schlüssel zu haben, also warum sollte ich mich stattdessen mit diesem Wortsamen begnügen? Einige denken anscheinend, dass es sicher genug ist: Ist die Seed Phrase mit 12 Wörtern sicher genug? , aber ist es brauchbar genug?

Diese Fragen: Hat eine Brieftasche mit mehreren Adressen einen einzigen privaten Schlüssel? und Warum können die gleichen 12 Wörter unterschiedliche Seeds in einer Electrum-Wallet-Datei erzeugen? Hinweis darauf, was hier passiert, aber es fehlen Details. Es scheint, dass der Ausdruck "hierarchisch deterministische" Brieftaschen ist, daher das "HD" in "Multibit HD".

Diese Frage artikuliert genau meine Bedenken: Ist es wichtig, ein unverschlüsseltes Backup des privaten Schlüssels zu haben?

Antworten (2)

Bei HD-Wallets kann ein einziger Schlüssel verwendet werden, um einen ganzen Baum von Schlüsselpaaren zu generieren. Dieser einzelne Schlüssel dient als "Wurzel" des Baums. Das Wort Seed ist einfach eine besser lesbare Art, den als Root verwendeten Schlüssel auszudrücken, da er algorithmisch in den privaten Root-Schlüssel umgewandelt werden kann. Diese Wörter erzeugen in dieser Reihenfolge immer genau denselben Schlüssel.

Dieser einzelne Schlüssel ersetzt nicht alle anderen privaten Schlüssel, sondern wird verwendet, um sie zu generieren . Alle Ihre Adressen haben immer noch unterschiedliche private Schlüssel ... aber sie können alle mit einem einzigen Schlüssel wiederhergestellt werden.

Vergleichen Sie dies mit nicht deterministischen Wallets. In einer nicht deterministischen Brieftasche wird jeder Schlüssel nach dem Zufallsprinzip nach eigenem Ermessen generiert, und sie werden nicht von einem gemeinsamen Schlüssel generiert. Daher müssen alle Backups der Brieftasche jeden einzelnen privaten Schlüssel speichern, der als Adresse verwendet wird ... sowie einen Puffer von etwa 100 zukünftigen Schlüsseln, die möglicherweise bereits als Adressen ausgegeben, aber noch keine Zahlungen erhalten haben.

Eine hierarchische deterministische Brieftasche muss nicht so viele Daten sichern. Die privaten Schlüssel zu jeder jemals ausgegebenen Adresse können anhand des Stammschlüssels neu berechnet werden. Dieser Wurzelschlüssel wiederum kann durch Eingabe des Wortes Seed neu berechnet werden.

Relevante BIPS:

https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki

Tolle Arbeit bisher. Vielen Dank. Besonders besorgniserregend ist, dass ich genau wissen möchte, wie das Wort Seed in einen privaten Schlüsselbaum umgewandelt wird. Nehmen wir an, wir beginnen mit dem Samen this is the word seed. Wie wird das verwendet und mit welchen Algorithmen wird der private Schlüsselbaum erstellt? Kann ich dann mit Zuversicht sagen, dass ich diesen Baum ohne die Wallet generieren kann, die ihn zuerst generiert hat?
Ich glaube, das ist in BIP 39 definiert: github.com/bitcoin/bips/blob/master/…
Ich möchte das auch wissen, wenn ich einen Seed habe, der mir von einer Wallet-Software gegeben wird, kann dieser Seed im Allgemeinen in ein anderes Wallet importiert werden und alle meine Coins wiederherstellen, falls der ursprüngliche Wallet-Anbieter verschwindet?
Wenn beide Wallets BIP 39 einhalten, sollten sie kompatibel sein. Wenn nicht, kann ich es nicht sagen.

Hauptantwort auf Ihre Hauptfrage im Titel: Die Wortfolge, die als „Wiederherstellungsphrase“ der Krypto-Brieftasche oder „mnemonische Wörter“ oder „Startwörter“ bekannt ist, ist einfach ein für Menschen lesbares Format der zugrunde liegenden maschinenlesbaren Entropie – welche ist eine große Zufallszahl, die zum Erstellen des Krypto-Tresors verwendet wird.

Antwort auf Ihre zweite und dritte Frage: Die genauen Schritte von Seed- zu Wallet-Adressen beinhalten die Verwendung einer Hash-Funktion (HMAC) und Key-Stretching mit PBKDF2 mit Standardwerten für das Passphrase-Feld.

[Excerpt from BIP39 specification "To create a binary seed from the mnemonic, we use the PBKDF2 function with a mnemonic sentence (in UTF-8 NFKD) used as the password and the string "mnemonic" + passphrase (again in UTF-8 NFKD) used as the salt. The iteration count is set to 2048 and HMAC-SHA512 is used as the pseudo-random function. The length of the derived key is 512 bits (= 64 bytes)." ]

Die BIP39-Spezifikation enthält ein Notationsschema, das eine Wortliste mit 2048 Werten (mit verschiedenen unterstützten Sprachen) als Nachschlagetabelle verwendet.

Dies funktioniert so, dass beim Erstellen eines Kryptotresors eine bestimmte Menge zugrunde liegender Binärdaten vom kryptografisch sicheren Zufallszahlengenerator (CSPRNG) der Wallet-Software generiert wird, die zufällige Bits lokal vom Gerät des Benutzers sammelt, z. B. 128 Bits für a 12-Wort-Mnemonik-Recovery-Phrase.

Diese 12 Wörter sind einfach eine Darstellung der 128 Bits + einer 4-Bit-Prüfsumme (insgesamt 132 Bits, basierend auf 12 Gruppen von 11 Bits, wobei jede Gruppe eine 11-Bit-Zahl in der Liste von 2048 11-Bit-Zahlen darstellt, wo jede Nummer entspricht einem eindeutigen Wort in der Liste). Die Wörter sind also nur eine einfache Möglichkeit, diese Zahl neu zu erstellen, da die Wörter einfacher gehandhabt werden können (dh schreiben, rezitieren, notieren, speichern und anderweitig behandeln im Vergleich zum Schreiben oder Rezitieren einer 132-Bit-Binärzahl).

  • Eine andere Sicherungsoption anstelle der Mnemonik (obwohl nicht empfohlen) als Alternative oder Ergänzung besteht darin, die anfängliche Entropie zu sichern, sei es im Binär- oder Hex-Format oder in einem beliebigen Basisformat, solange keine führenden Nullen vorhanden sind verirrt.

Die folgende Mnemonik unten basiert beispielsweise auf der folgenden Entropie:

132 bits of initial entropy:  011001011001101110001010000000111011111110111011100000001100110111001101110000111100001110000011110101001011000011010101000001011100
Length of total bits: 132 bits divided into 12 groups of 11 bits
['01100101100', '11011100010', '10000000111', '01111111011', '10111000000', '01100110111', '00110111000', '01111000011', '10000011110', '10100101100', '00110101010', '00001011100']
Corresponding index values for each group (in base 10):
[812, 1762, 1031, 1019, 1472, 823, 440, 963, 1054, 1324, 426, 92]
Corresponding mnemonic based on BIP39 english wordlist:
grain sword liberty legal retreat group damage journey long pitch crystal argue

Das folgende Tool kann für Bildungszwecke mit Wiederherstellungsphrasen verwendet werden: https://iancoleman.io/bip39/ (Anmerkung: Ich trage zu diesem Tool auf Github bei)

Ich denke, es ist am besten, die mnemonischen Wörter als die "Schlüssel" zum "Kryptotresor" zu bezeichnen (und nicht den privaten Schlüssel zu einer Brieftasche oder Brieftaschenadresse, was ein anderer Kontext ist, in dem der private Schlüssel mit einem Generatorpunkt multipliziert wird um die öffentliche Adresse zu berechnen, unter Verwendung der Kryptografie mit elliptischen Kurven). Auch hier kann ein BIP39-Kryptotresor, der BIP44 verwendet, mehrere Kryptowährungen (Konten mit unterschiedlichen Ableitungspfaden) enthalten, und jede Kryptowährung kann bis zu 2 Milliarden abgeleitete untergeordnete Adressen enthalten, von ihren erweiterten öffentlichen/privaten Schlüsseln basierend auf der HD-Wallet-Struktur gemäß BIP32 .

Zu Ihrer Frage zur Sicherheit/Verwendbarkeit: In Bezug darauf, ob eine 12-Wörter-Mnemonik sicher ist, können wir messen, dass ihre maximale theoretische Sicherheit in Bits höchstens 128 Bits beträgt (unter Verwendung von Claude Shannons Entropiegleichung, wobei (2048^12 = 2 ^132)-4 Bits = 2^128), angesichts der Größe der anfänglichen Entropie, und da die letzten 4 Bits deterministisch sind, subtrahieren wir diese von den Gesamtbits, die die Mnemonik darstellt (da sie hashbasiert ist, was a bedeutet, jemanden durch brachiales Ausprobieren zufälliger 12-Wörter zu verlangsamen).

  • Andernfalls reduziert das Entfernen von nur einem Bit die Sicherheit um die Hälfte, da (2**127)*2 == 2**128128 Sicherheitsbits nur die Quadratwurzel einer 24-Wort-Mnemonik sind, die seit 256 Sicherheitsbits hat (2**128)*(2**128) == 2**256.

Ob diese sicher genug sind, hängt von den Fähigkeiten eines Angreifers ab. Wenn der Algorithmus von Grover auf einem Quantencomputer ausgeführt wird, könnte eine Suche, die normalerweise n-mal dauern würde, auf die Quadratwurzel von n-mal beschleunigt werden, sodass eine 128-Bit-Sicherheit unter Verwendung klassischer Computersicherheitsannahmen auf 64 Bit reduziert werden könnte. wohingegen ein 256-Bit-Schlüssel unter einem solchen Quantenangriff auf einem klassischen Computer auf 128-Bit-Sicherheit reduziert werden könnte. Es gibt auch potenzielle Bedrohungen durch Shors Algorithmus, der auf einem ausreichend schnellen Quantencomputer läuft, sowie die Quantenversion der Elliptischen-Kurven-Faktorisierung (ECM), bekannt als GEECM, die sowohl auf Bitcoin-Kryptotresore als auch auf private Schlüssel anwendbar sein könnte.

Zu Ihrer Frage zu HD Wallets:

Es ist nicht möglich, jeden möglichen privaten Schlüssel in einem HD Wallet zu sichern, da es 2 Milliarden davon pro unterstützter Kryptowährung geben könnte, die jeweils von den erweiterten öffentlichen/privaten übergeordneten Schlüsseln (xPub und xPrv) abgeleitet werden. Daher dienen die mnemonischen Wörter als eine große Annehmlichkeit für die Aufbewahrung und Wiederherstellung dieser privaten/öffentlichen Schlüssel, da sie ausgehend von den mnemonischen Wörtern oder der zugrunde liegenden Entropie, die die Wörter darstellen, leicht abgeleitet werden können. Und dann können die erweiterten öffentlichen/privaten Schlüssel verwendet werden, um alle untergeordneten privaten/öffentlichen Schlüssel neu zu erstellen.