Sichere Generierung privater Schlüssel

Angenommen, Sie haben durch Würfeln einen zufälligen privaten Schlüssel erstellt.
Sie haben die Blockchain eingecheckt und niemand sonst hat jemals die entsprechende Adresse eines solchen privaten Schlüssels verwendet.

Problem
Ist dieser Prozess einigermaßen sicher, um private Schlüssel zu generieren?
Oder gibt es eine Teilmenge privater Schlüssel, die Sie aufgrund bekannter Schwachstellen in Bitcoin ECDSA vermeiden sollten (dh etwas schneller als Brute Force)?

Antworten (1)

Jede 256-Bit-Zahl zwischen 0x1 und 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 ist ein gültiger privater Schlüssel. Angenommen, Ihre Zufallszahl liegt in diesem Bereich (und es ist sehr wahrscheinlich, dass dies der Fall ist), sollte sie als privater Schlüssel genauso gut sein wie jede andere Zahl. Tatsächlich sollten Sie sich nicht einmal die Mühe machen, zu überprüfen, ob die Adresse bereits bekannt ist, denn:

  1. Die Wahrscheinlichkeit sagt uns, dass es nicht verwendet wird
  2. Seine Existenz auf einem Chain Explorer ist kein Beweis dafür, dass niemand sonst diesen Schlüssel generiert hat
  3. Durch die Überprüfung können Sie telegraphieren, dass Sie diesen Schlüssel besitzen

Machen Sie sich mehr Gedanken darüber, wie Ihr Schlüssel generiert wird, als dass eine bestimmte Nummer für einen unbekannten Angriff anfällig ist. Stellen Sie sicher, dass Ihre Würfelwürfe so durchgeführt werden, dass jedes Byte genauso wahrscheinlich ist wie jedes andere Byte. Ich habe einen D8 in Verbindung mit einem Münzwurf verwendet, um 4 Bits gleichzeitig zu erzeugen. Wenn die Münze Kopf ist, verwende ich den D8 zum Nennwert. Bei Zahl füge ich 8 hinzu. Ich zähle 16 (Zahl + 8) als 0. Wenn Sie es ausrechnen, werden Sie sehen, dass dies eine perfekte Zufallszahl zwischen 0 und 15 oder ein Hexit erzeugt. Wenn Sie dies 64 Mal tun, haben Sie einen 256-Bit-Schlüssel.

> "[...] Sie sollten gar nicht erst nachsehen, ob die Adresse schon bekannt ist" Da bin ich lieber vorsichtig. Wenn möglich, würde ich auch gegen mögliche Brainwallets prüfen ...
Passen Sie sich an, aber die Mathematik sagt, dass es Zeitverschwendung ist, und die Logik sagt, dass es Ihnen sowieso keine Antwort gibt. Jeder kann einen Schlüssel generieren, dessen entsprechende Adresse nicht übertragen wurde. Außerdem wurde Ihre Privatsphäre jetzt kompromittiert. Wenn jemand eine Adresse überprüft, die im Netzwerk nicht gesehen wurde, ist es jetzt ziemlich einfach, dieser Adresse eine IP-Adresse zuzuordnen.
"Mathe sagt, es ist Zeitverschwendung" Ok, ich stimme zu, die Chancen sind fast null. Da es jedoch so einfach ist, eine solche Überprüfung vorzunehmen, denke ich, dass es sich lohnt. Wenn es zu einer Kollision kommt, ist dies ein Indikator dafür, dass Ihr Zufallsgenerator voreingenommen ist und überprüft werden muss.
"Ihre Privatsphäre wurde jetzt kompromittiert." Ihre Privatsphäre wird ohnehin gefährdet, sobald Sie Geld von einer Börse erhalten.
Niemand hat etwas von einem Austausch gesagt. Fiat hat damit nichts zu tun. Sie haben nach dem Generieren von Zahlen gefragt. Ich möchte nur sicherstellen, dass die Leute verstehen, dass die Überprüfung Auswirkungen auf die Privatsphäre hat. Außerdem ist es buchstäblich wahrscheinlicher, dass ein Asteroid uns alle tötet, wenn Sie diesen Satz zu Ende gelesen haben, als eine Schlüsselkollision zu haben, wenn Sie einen guten RNG (wie Würfel) verwenden. Wenn Sie denken, dass es sich lohnt, es zu überprüfen, dann bin ich verwirrt, warum Sie sich mehr um Geld kümmern als um den bevorstehenden Tod unserer Spezies. Scheint seltsam.
"Ich bin verwirrt, warum Sie sich mehr um Geld sorgen als um den bevorstehenden Tod unserer Spezies." Wie Sie erwähnen: "Wenn Sie einen guten RNG verwenden" ... eine Möglichkeit, Ihren RNG zu überprüfen, besteht darin, auf Kollisionen zu prüfen ....
Das Überprüfen eines Block-Explorers auf Kollisionen ist eine schreckliche Methode, um einen RNG zu überprüfen. Ich möchte bei niemandem den Eindruck erwecken, dass es eine gute Idee ist. Denken Sie daran, wenn ich auf diese Kommentare antworte, rede ich nicht wirklich mit Ihnen. Ich korrigiere die Aufzeichnung für jeden, der zufällig hierher stolpert. Ich bin sicher, Sie werden Block-Explorer weiterhin auf Ihre eigene Meinung überprüfen, aber ich möchte, dass andere wissen, dass dies nicht erforderlich ist, nichts beweist und möglicherweise problematisch ist.
"Einen Block-Explorer auf eine Kollision zu überprüfen, ist eine schreckliche Art, einen RNG zu überprüfen." Ok, ich stimme zu. Die anderen Methoden zur Überprüfung von RNG sind jedoch (wahrscheinlich) viel komplizierter als die Überprüfung der Blockchain. Daher könnte der Kompromiss gegenüber dem Blockchain-Check sinnvoll sein. Ein kleiner Schritt für eine große Erleichterung ...