Was macht HD Wallets resistent gegen Brute-Force-Angriffe?

Um genauer zu sein, betrachten wir Brieftaschen, die 12 Wörter als Seed verwenden.

Die Gesamtbitbreite beträgt 132, wobei 4 Bit als Prüfsumme verwendet werden, sodass die tatsächliche Seed-Größe 128 Bit beträgt. Ich weiß, dass 2^128 VIELE Kombinationen zulässt.

Ich habe keinen formellen Hintergrund im Bereich Sicherheit, aber hier ist, was mich als Amateur denken lässt, dass meine Bitcoins nicht sicher sind.

  • Der Angreifer erzwingt kein bestimmtes Passwort/Seed durch Brute-Force – dem Seed ist kein Benutzername zugeordnet – alles, was der Angreifer benötigt, ist ein Seed, der von jemandem verwendet wird, der nicht alle seine Bitcoins ausgegeben hat

  • Da das Bitcoin-Netzwerk und HD-Geldbörsen immer beliebter werden, gäbe es mehr Samen, die zu nicht leeren Adressen führen. Bedenken Sie, dass, wenn der BTC/Fiat-Wechselkurs mit weit verbreiteter Akzeptanz durch die Decke geht, selbst wenn Bruting viel Rechenleistung erfordert, die Belohnungen für erfolgreiches Bruting steigen

Wo bin ich mit meiner Überlegung falsch gelaufen?

Im Grunde konzentrieren Sie sich auf die relative Größe der beteiligten Zahlen und achten immer noch nicht genug auf ihre absolute Größe. 2^128 ist wirklich sehr groß. Es ist wahr, dass mehr Adressen eine größere Wahrscheinlichkeit bedeuten, dass eine zufällige Suche eine Adresse mit Guthaben findet. Aber ich empfehle die Übung, abzuschätzen, wie hoch diese Chance tatsächlich ist und wie lange es dauern würde, sie zu erreichen, wenn man eine großzügige, aber realistische Annahme darüber annimmt, wie viel Rechenleistung aufgewendet werden würde.

Antworten (1)

Sie haben nicht sofort Zugriff auf alle privaten Schlüssel einer HD-Wallet und ihre entsprechenden Adressen und können sie nicht sofort auf Guthaben überprüfen.

Wenn Sie die 128-Bit-Seeds generieren und dann die ersten paar Adressen dieser HD-Wallets generieren, werden Sie auf Duplikate stoßen. Selbst wenn wir dies ignorieren und davon ausgehen, dass jeder private Schlüssel und jede entsprechende Adresse einzigartig sind (was die Mathematik vereinfacht, damit mehr Menschen sie verstehen können), ist dies ein undurchführbares Unterfangen.

Derzeit gibt es etwa 4,67 * 10 ^ 7 UTXOs. Das beste Szenario, um zumindest etwas Geld zu stehlen, ist, dass jeder UTXO von einem anderen privaten Schlüssel an einer anderen Adresse gehalten wird. Anstatt darüber nachzudenken, dass unsere Erfolgschancen schlechter sind, nehmen wir einfach an, dass es wahr ist.

HD-Wallets verwenden ihre Seeds erst nach 10^5 Runden von sha256. Wir vernachlässigen den zusätzlichen Aufwand, einen privaten privaten Schlüssel zu erstellen, daraus einen öffentlichen Schlüssel zu erstellen, daraus eine Adresse zu erstellen, zum fliegenden Spaghettimonster zu beten, dass der Benutzer tatsächlich die allererste Adresse in seiner HD-Wallet und das Geld darin zuerst verwendet hat Adresse sind noch nicht ausgegeben, und die eigentliche Suche durchzuführen. Weil es schwieriger ist, die Kosten dafür zu bestimmen, und wie sich bald herausstellen wird, ist es nicht machbar, selbst wenn wir dafür buchstäblich null Kosten haben.

Angesichts der obigen Zahlen und unserer sehr großzügigen Annahmen müssen wir 2^128÷(4.67*10^7)*10^5 = 7.28656032*10^35sha256-Hashes berechnen, um Zugriff auf 1 UTXO zu erhalten.

Die aktuelle Hash-Rate des gesamten Bitcoin-Netzwerks liegt bei etwa 3*10^18Hashes pro Sekunde. Natürlich können wir in Wirklichkeit nicht einfach Miner verwenden, da diese 10^5 Hashes, die wir pro Seed berechnen müssen, nicht unabhängig voneinander sind. Tatsächlich hängen sie alle (bis auf die allererste) von der vor ihnen ab. Das ist das schlimmstmögliche Szenario für die Berechnung vieler Hashes.

Aber selbst wenn wir davon ausgehen, dass wir Zugang zu allen Bitcoin-Minern der Welt haben, haben wir magische neue Möglichkeiten, rein sequentielle Berechnungen parallel auszuführen (was natürlich unmöglich ist), und erhalten den gesamten Strom dieser Miner kostenlos, weil unser Onkel nur nutzt sein Atomkraftwerk in letzter Zeit kaum, wir müssen jedenfalls noch 7.28656032*10^35 / (3*10^18) = 2.42885344*10^17Sekunden per UTXO warten, um es stehlen zu können.

Zu unserem Glück sind das nur 7'701'843'734 Jahre , was kaum mehr als der Hälfte des Alters des Universums entspricht. Ich glaube, wir haben das 1 UTXO . Andererseits waren unsere Annahmen ziemlich großzügig. Es könnte etwas länger dauern, bis wir diesen 1 UTXO bekommen. Die meisten der großen UTXOs werden wahrscheinlich nicht einmal in HD-Wallets, sondern in Kühlhäusern aufbewahrt, sodass wir noch weniger Hoffnung haben, sie zu ergattern, aber was auch immer.