Ist es möglich, dass das Netzwerk keine gültigen Blöcke mehr findet?

Das Hashing-Problem ist von Natur aus rechenintensiv, da SHA-256-Hashes in jeder Hinsicht zufällige Zeichenfolgen ohne direkte Verbindung zu ihren Eingaben sind und es keine (bekannte) Möglichkeit gibt, einen Block zu generieren, damit sein Hash zu einer bestimmten Ausgabe berechnet wird (oder genauer gesagt, erfüllt die derzeit schwierigen Kriterien). Bei jedem gegebenen Schwierigkeitsgrad besteht für Miner nur eine gewisse Wahrscheinlichkeit , einen gültigen Block zu finden.

OK. Aber gibt es einen Beweis dafür, dass es bei einem bestimmten Schwierigkeitsgrad tatsächlich einen gültigen Block gibt? Ist es möglich, dass gültige Blöcke einfach nicht mehr gefunden werden, wenn der Schwierigkeitsgrad zu stark ansteigt? Wie könnte das Netzwerk mit einer solchen Situation umgehen, wenn sich der Schwierigkeitsgrad nur alle X Blöcke ändern kann?

Antworten (2)

Die einfache Antwort: nein .

Die nicht ganz einfache Antwort: äußerst unwahrscheinlich.

Miner hashen einen Eingabeblock in der Hoffnung, ein Ergebnis zu erhalten, das die Schwierigkeitsanforderungen erfüllt, dh eine bestimmte Anzahl von Nullen davor hat. Nun sind die Möglichkeiten für den Miner, den Input zu variieren, recht groß. Es gibt die 4-Byte-Nonce, es gibt die Auftragstransaktionen, die in die Transaktion eingefügt werden (der Einfachheit halber nehmen wir einfach an, es erlaubt alle Permutationen der Merkle-Wurzel, 2^256), es gibt die Coinbase in der Belohnungstransaktion (die auch die Merkle root), es gibt den Zeitstempel (nicht diese Variable, aber sagen wir, wir können um zwei Stunden variieren => 14 Bit) und es gibt die Transaktionsanzahl (bis zu 4 Byte, die nicht unabhängig von der Merkle-Root sind, aber nehmen wir an, sie sind unabhängig ). Insgesamt haben wir also etwas in der Größenordnung von 2^256*2^32*2^32*2^14~=3,49E100mögliche Eingaben zum Finden eines Blocks und 2^256~=1.15E77 mögliche Block-Hashes. (Dies sind alles Berechnungen auf der Rückseite des Umschlags und wahrscheinlich falsch, aber nur um eine Vorstellung von der Größenordnung zu geben.)

Daher würden wir ~3.02E23 Hash-Kollisionen für jeden Hash finden und müssten keinen einzigen Hash finden, der mit dem Ziel übereinstimmt. Beachten Sie, dass Hash-Funktionen mit dem erklärten Ziel erstellt wurden, Hash-Kollisionen wirklich schwer zu machen (Forscher verwenden seit Jahrzehnten Supercomputer, um eine einzelne Hash-Kollision zu finden), und Sie werden sehen, dass es unwahrscheinlich ist, dass dies jemals zu Lebzeiten von jemandem auftritt.

Jetzt gibt es auch noch die extraNonce, also ist die Anzahl der Eingänge noch größer :)

Stellen Sie sich Mining wie eine Lotterie vor, bei der der Schwierigkeitsgrad die Anzahl der Zahlen im Pool und Ihre Mining-Rate die Anzahl der Tickets ist, die Sie kaufen können. Der Schwierigkeitsgrad ist mit der Idee festgelegt, dass alle 10 Minuten jemand im Lotto gewinnen soll. Wir fügen mehr Zahlen hinzu, wenn sie zu schnell gewinnen, und entfernen Zahlen, wenn sie zu langsam gewinnen, angepasst alle 2016-Blöcke (ungefähr zwei Wochen).

Um Ihre Frage zu beantworten, nein, uns werden die Blöcke nicht ausgehen. Im Jahr 2140 werden wir alle Bitcoins aufgebraucht haben, aber Miner werden immer noch Bitcoins durch Verifizierung von Transaktionen verdienen. Wenn der Bitcoin so lange überlebt, wird der Großteil des Mining von großen Institutionen durchgeführt, die in irgendeiner Weise an den Bitcoin gebunden sind und einen Anreiz haben, dass alle Transaktionen ordnungsgemäß verifiziert werden.