Laien raten, um zu bestimmen, wie viele Hashes berechnet werden müssen, um einen bestimmten Wert zu finden

Ich habe eine Frage zu Bitcoin, sagen wir, dass die Ausgabe gleichmäßig zufällig ist und 256 Bit lang ist. Die Ausgabe der Hash-Funktion y=H(t) beginnt mit 25 Nullen – wie oft müsste man die Hash-Funktion aufrufen, um etwas zu bekommen, das mit 25 Nullen beginnt?

Zweitens, wie verifiziert man die Lösung und wie viele Hashes würden versucht, sie zu lösen?

Bedeutet "Nullen" null Bits oder null Hexadezimalziffern (was 100 Bits wären)?
null binäre Bits wie angegeben.

Antworten (1)

Es ist ziemlich einfach. Da die Hashes gleichmäßig verteilt sind, sind 25 Nullen so wahrscheinlich wie jeder andere mögliche Wert für die ersten 25 Hexadezimalziffern. Es gibt 16 mögliche Werte für jede Hexadezimalziffer, also beträgt die Anzahl möglicher Kombinationen 16^25 oder etwa 1,2676506×10 30 . Das bedeutet auch, dass im Durchschnitt einer von 1.2676506×10 30 Hashes mit 25 hexadezimalen Nullstellen beginnt.

Um die Lösung zu verifizieren, berechnen Sie einfach den Hash einmal und prüfen, ob er mit der erforderlichen Anzahl von Nullen beginnt. Es ist also 10 30 Mal einfacher, den Hash zu überprüfen, als ihn zu finden.

Ich sollte meine Frage wiederholen, da sie anscheinend nicht vollständig ist. Wenn die Ausgabe 256 Bit ist, wäre das binär {0,1} und nicht hexadezimal, richtig? Wenn ich letzteres annehme, dann gäbe es 2^25 mögliche Hashes, die mit fünfundzwanzig Nullen beginnen. Wie viele Hashes müsste ich dann ungefähr berechnen, um einen zu finden, der dies erfüllt? (2^25)/(2^256)???
Zusätzlich zu der Verwirrung zwischen Bits und Hex-Ziffern sieht es so aus, als wäre 25 irgendwo auf der Linie in 15 verwandelt worden?
Wenn Sie nach 25 Nullbits suchen, wäre dies (2^25). Die Tatsache, dass es insgesamt 256 Bits gibt, ist irrelevant.