Werden ASIC-Miner nicht irgendwann die SHA-256-Verschlüsselung knacken?

Ich bin vielleicht verwirrt darüber, wie Bitcoin funktioniert, aber soweit ich das beurteilen kann, werden ASIC-Miner jedes Jahr besser und schneller darin, die SHA-256-Verschlüsselung zu knacken. Wird dies nicht dazu führen, dass die SHA-256-Verschlüsselung letztendlich vollständig veraltet, viel schneller als bisher angenommen?

Warum sollten sie? Sie sind nur eine Milliarde Mal schneller als dies über die CPU zu tun.
Kurze Antwort: Nr. 2^256 ist eine viel größere Zahl als Sie denken.
Als lustige Rechenübung: Schlagen Sie die aktuelle Hash-Rate des gesamten Bitcoin-Netzwerks nach. Multiplizieren Sie es mit einer Billion Billionen Billionen. Berechnen Sie bei dieser Geschwindigkeit, wie lange es dauern würde, 2 ^ 255-Hashes auszuführen, was Sie benötigen würden, um einen einzelnen SHA256-Hash brutal zu erzwingen. Schlagen Sie die Lebenserwartung des Universums nach und vergleichen Sie.
(Beachten Sie, dass SHA-256 kein Verschlüsselungsalgorithmus ist, sondern eine kryptografische Hash-Funktion . Es ist wichtig, die beiden nicht zu verwechseln.)
Die Frage ist fehlerhaft, die Prämisse, die Verschlüsselung zu brechen, ist nicht das, worum es bei dieser Frage geht. Es sollte darum gehen, eine Hash-Kollision zu erzeugen.

Antworten (4)

Eine andere Möglichkeit, es zu betrachten, besteht darin, einen Blick auf einen kürzlich abgebauten Block zu werfen, z. B. Block 388368. Wenn Sie sich diesen Block auf blockchain.info ansehen , können Sie sehen, dass der Hash für diesen Block lautet:

0000000000000000021ff110a589e44f56979254a204557311204f803910fdfa

Es dauerte ungefähr 10 Minuten, bis alle Bergleute (die zusammen 700.000.000 Giga-Hashes pro Sekunde erstellten) den obigen Hash fanden, der genügend führende Nullen (17) hatte, um die Schwierigkeitsanforderungen des Netzwerks zu diesem Zeitpunkt zu erfüllen. Da die verbleibenden Ziffern nach den ersten 17 führenden Nullen alles mögliche gewesen sein könnten, gibt es 16^47 (dh 16^(64-17)) mögliche Hashes, die gefunden werden könnten, die die Schwierigkeitsanforderung (die 3,92 * 10^ ist) erfüllt hätten 56), doch alldie Mining-Power des gesamten Bitcoin-Netzwerks dauerte ~10 Minuten, um nur einen Hash zu finden, der die Anforderung erfüllte.

Um einen Hash zu knacken, müssen nicht nur die ersten 17 Ziffern mit dem angegebenen Hash übereinstimmen, sondern alle 64 Ziffern. Aus dem Obigen extrapoliert, würde es also 10 * 3,92 * 10 ^ 56 Minuten dauern, um einen SHA256-Hash zu knacken, wobei die gesamte Mining-Leistung des gesamten Bitcoin-Netzwerks verwendet wird. Das ist eine lange Zeit.

Betrachten Sie es anders. Die Wahrscheinlichkeit, die 6-49-Lotterie zu gewinnen, beträgt 1 in (49 x 48 x 47 x 46 x 45 x 44), was etwa 1 zu 10 000 000 000 entspricht. Wenn 20 Millionen Spieler zweimal pro Woche spielen und jeder Spieler durchschnittlich 10 spielt Zahlen bei jeder Ziehung, dann sollte es jedes Jahr nur 2 Gewinner geben.
@ mti2935, wenn ich mich nicht irre, sagen Sie Folgendes: Bei einem bestimmten Hash und der aktuellen Netzwerk-Hashrate würde es unangemessen lange dauern - 10 * 3,92 * 10 ^ 56 Minuten -, um einen zu finden Block, der diesen Hash befriedigen würde. Also "nein". ?
Denken Sie daran, dass das Alter des Universums nur etwa 7,2 * 10 ^ 15 Minuten beträgt

TL;DR: Nein, aber wenn die Hashes gesammelt würden, könnte man vielleicht besser sagen, ob der SHA256^2-Algorithmus kaputt ist oder nicht.

Wenn man einen Weg finden kann, gewünschte Ausgaben aus bestimmten Eingaben zu erzeugen, dann gilt ein Hash-Algorithmus als "kaputt". Sowohl MD5 als auch SHA1 sind dafür bekannt, auf diese Weise gebrochen zu werden. Theoretisch könnte das wiederholte Ausführen eines Algorithmus über eine Reihe zufälliger Eingaben (genau das, was Mining ist) einen Einblick in die vom Algorithmus erzeugten Muster geben, wodurch man nachweisen kann, ob er kaputt ist oder nicht. Diese Einsicht würde jedoch nur durch eine statistische Analyse der gesammelten Daten erzielt, und da die meisten Daten verworfen werden – von den Billionen Hashes pro Sekunde werden nur diejenigen aufgezeichnet, die den gedanklichen Blöcken entsprechen – ist dies nicht machbar.

Eine weitere Feinheit: Da der fragliche Algorithmus speziell SHA256 zweimal angewendet wird und nicht einfach SHA256, selbst wenn die Daten gesammelt und analysiert wurden, sagt er uns möglicherweise nichts direkt über SHA256 aus.

Das ist ein großartiger Punkt ... es würde viel Speicherplatz erfordern, um alle Ergebnisse, die Miner produzieren, für eine spätere Analyse aufzubewahren.

Ich verstehe. 2^255 ist in der Tat eine unglaublich große Zahl. SHA-256 ist nicht nur kein Verschlüsselungsalgorithmus, sondern auch eine kryptografische Hash-Funktion, daher war meine Frage zunächst etwas fehlerhaft, aber die Zeit, die es dauern würde, einen einzelnen SHA256-Hash brutal zu erzwingen, ist (derzeit) viel selbst mit den fortschrittlichsten ASIC-Minern, die heute erhältlich sind, zu lange. Um einen einzelnen SHA256-Hash brutal zu erzwingen, bräuchten wir ASIC-Miner, die eine Billion Billionen Billionen Mal schneller sind als die Hash-Rate des gesamten Bitcoin-Netzwerks.

Wenn Sie die oben vorgeschlagene Übung durcharbeiten, selbst wenn Sie Miner hätten, die eine Billion Billionen Billionen Mal schneller sind als das aktuelle Netzwerk, würde das Brute-Forcing von SHA256 immer noch 71430540814238958387154 Jahre dauern. Die Sonne wird voraussichtlich in etwa 5000000000 Jahren erlöschen.
Nate – Ich verstehe absolut, was Sie sagen, obwohl die Bitcoin-Mining-Technologie ständig besser wird, werden wir wahrscheinlich für eine lange, lange Zeit nichts haben, das stark genug ist, um SHA256 brutal zu erzwingen.

Die Wahrscheinlichkeit, die Sie berechnen, sollte die des Diebstahls des privaten Schlüssels sein, nicht die Berechnung. Letzteres ist die Methode der Narren, während ersteres jeden Tag mit Keyloggern passiert.

Wie das OP sagte, ist sha256 eine kryptografische Hash-Funktion. Es steht also nichts darin, einen privaten Schlüssel zu benötigen, um einen sha256 zu generieren. Versuchen Sie, selbst einen sha256 zu generieren, und beachten Sie, dass nichts als die Eingabezeichenfolge benötigt wird: passwordsgenerator.net/sha256-hash-generator .