Nachhaltigkeit des aktuellen Hashings

Ich bin ein Bitcoin/Blockchain-Laie. Ich mache mir gerade Gedanken über das Hashing von Blöcken und die Zunahme der Schwierigkeit (Anzahl der Nullen), die erforderlich ist, wenn sich mehr Miner beteiligen. Ich verstehe, dass dies dazu dient, die 10-Minuten-Hash-Rate beizubehalten.

Ich verstehe, dass die Generierung schwierigerer Hashes attraktiv ist, da sie das Umschreiben der Kette erschwert und daher sicherer macht.

Während ich weiterlese, ist die eskalierte Nutzung der erforderlichen Rechenleistung meiner Meinung nach ein Konfliktpunkt. Wir können die Schwierigkeit nicht weiter erhöhen, weil die Hashes eine feste Länge haben und einzigartig sein müssen? Kann nicht ständig Nullen hinzufügen. Übersehe ich etwas?

Was ist der Plan, längere Hash-Digests mit einem anderen Algorithmus?

Gibt es Forschungsergebnisse, die ich über die Entwicklung von Hashalgorithmen lesen kann?

Antworten (2)

Einzigartige Hashes sind nichts, was uns in naher bis mittelfristiger Zukunft wahrscheinlich ausgehen wird, es sei denn, es werden große Fortschritte bei der Berechnung gemacht (in diesem Fall hätten wir andere Probleme, über die wir uns Sorgen machen müssten).

Wenn Bitcoin vor dem Ziel eine Null hinzufügt, ist es keine hexadezimale Null (wie Hashes normalerweise visualisiert werden), sondern es fügt sie binär hinzu. Der Unterschied ist riesig:

0FFF -> 00FF

bedeutet dies in binär:

0000111111111111 -> 0000000011111111

Was wirklich passiert, ist Folgendes:

0000111111111111 -> 0000011111111111

Oder in Hex:

0FFF -> 07FF

Das bedeutet, dass es viermal so lange dauert, bis Sie Ihren Anliegen erreichen, wie Sie dachten. Schauen wir uns auch den von Ihnen geposteten Block-Hash an:

000000000000000000bbfa2afceac352a16db934867103aa85e6a83dc0fb6dfb

Derzeit gibt es 18 führende Hex-Nullen, was zu 72 führenden binären Nullen führt. Dadurch bleiben 184 Bits (256 - 72) für einen eindeutigen Hash-Wert oder 2^184 eindeutige Hashes übrig. Wenn sich die Schwierigkeit also nie erhöht hat und eine Blockzeit von 10 Minuten angenommen wird, bleiben uns immer noch Hashes im Wert von 4,66 * 10 ^ 50 Jahren (was ungefähr dem 5-fachen Alter des Universums entspricht). Wenn sich die Schwierigkeit verdoppelt, haben wir jetzt nur noch 183 Bits Hash-Speicherplatz. Dies bedeutet, dass es ungefähr 4,66 * 10 ^ 25 Jahre oder ungefähr das 2,5-fache des Alters des verbleibenden Hash-Speicherplatzes im Universum sind. Wie Sie sehen können, wird es einige Zeit dauern, bis die Schwierigkeit einen Punkt erreicht, an dem der Hash-Speicherplatz ein vernünftiges Problem darstellt.

Das eigentliche Problem liegt jedoch nicht im gesamten Hash-Speicher, sondern in wahrscheinlichen Kollisionen. Nehmen wir an, wir sind an dem Punkt angelangt, an dem nur noch 56 Bit für Hash-Speicher verfügbar sind. Erstens würde dies einen wirklich massiven Hashing-Anstieg im Bitcoin-Netzwerk erfordern, um jemals zustande zu kommen (die Schwierigkeit müsste sich 128-mal verdoppeln), aber wir werden das für dieses Beispiel ignorieren. Während 2^56 in der modernen Kryptographie wie ein kleiner Hash erscheinen mag, ist dies für diesen Anwendungsfall nicht der Fall. Wir haben immer noch genug Hashes übrig, um das gesamte Zeitalter des Universums abzudecken, aber auch hier geht es uns darum, dass jemand einen Block mit einem Hash findet, der mit einem bestehenden Block (oder konkurrierenden Block) übereinstimmt.

Was würden wir also tun? Ich bin mir sicher, dass es einige Diskussionen geben würde, wenn dies jemals auftauchen würde, aber ich denke, die einfache Lösung wäre, diesen Hash abzulehnen, als ob er über der Zielschwierigkeit liegen würde. Miner wären gezwungen, mit dem Hashing fortzufahren, bis ein weiterer Block gefunden würde. Immerhin ist noch viel Platz im Hash-Bereich, selbst wenn er auf 56 Bit reduziert wird (was derzeit absurd ist). Eine solche Änderung des Protokolls wäre nur ein Soft Fork.

Zusammenfassend lässt sich sagen, dass selbst mit unseren besten Schätzungen der zukünftigen Computertechnologie die verbleibende Zeit für Bitcoin-Hashes am besten in Vielfachen des Alters des Universums gemessen wird. Selbst wenn dies zu einem Problem werden sollte, könnte eine einfache Soft Fork es beheben. Hier gibt es wirklich nicht viel zu befürchten.

Ihre Arithmetik ist ausgeschaltet. 2^184 Blöcke sind etwa 4,7e50 Jahre, aber 2^183 reduziert die Signifikand auf 2,4e50 Jahre, nicht den Exponenten auf 4,7e25. Und das sind ungefähr das 3,4e41- und 1,7e41-fache des Alters des Universums (1,4e10 Jahre) und nicht 5 und 2,5.
Hoppla. Mathe bis spät in die Nacht.

Dies ist ein weiteres Skalierungsproblem. Bitcoin wurde für eine lange Lebensdauer entwickelt, aber viele Probleme, wie das jüngste bezüglich der Blockgröße, werden noch eine Weile dauern, bis sie ins Spiel kommen. Wie Sie hier sehen können: https://blockchain.info/block/000000000000000000bbfa2afceac352a16db934867103aa85e6a83dc0fb6dfb hat der neueste Block etwa 1/3 des gesamten potenziellen Ziels als Nullen. Das bedeutet, dass sich die Schwierigkeit verdoppeln könnte und wir immer noch in Ordnung wären.

Eine Verdoppelung der Schwierigkeit würde nur zu einer zusätzlichen führenden Null führen. Exponentielles Wachstum FTW! Eine Verdoppelung der Anzahl führender Nullen würde eine Quadratur der Schwierigkeit erfordern.
("Führende Null" bezieht sich hier natürlich auf Bits.)