Wie können wir sicher sein, dass ein neuer Block gefunden wird?

Woher wissen wir, dass die HASH-Funktion eine Ausgabe erzeugt, die die Schwierigkeit erfüllt, dh unter 0000 ... xxxx ... xxx liegt?

Ist es möglich, dass kein Beweis gefunden wird, sodass der HASH diese Ausgabe 000 ... xxx ... erzeugt?

SHA-256 hat 115792089237316195423570985008687907853269984665640564039457584007913129639936 mögliche Kombinationen. Mach dir keine Sorgen.

Antworten (2)

Das Wichtige dabei ist, dass jeder Mining-Pool/Solo-Miner an einem anderen Input arbeitet : Sie haben unterschiedliche Coinbase-Transaktionen und arbeiten an unterschiedlichen Transaktionssätzen. Weitere Entropie kann hinzugefügt werden, indem die Nonce und Extra-Nonce geändert, eine weitere Transaktion hinzugefügt oder die Reihenfolge der Transaktionen geändert wird.

Während es Blockeingaben geben kann, die mit keiner Nonce erfolgreich sind, durchläuft das gesamte Netzwerk so viele verschiedene Eingaben, dass irgendwann ein gültiger Block entdeckt wird.

Das Finden eines Blocks ist ein Poisson-Prozess

Da der Hash-Prozess als Poisson-Prozess implementiert ist, beträgt die erwartete Zeit, um den nächsten Block zu finden, zu jedem Zeitpunkt genau 10 Minuten , wenn die Hash-Leistung des Netzwerks der Schwierigkeit entspricht.

Die Wahrscheinlichkeit, dass eine Anzahl von XBlöcken in einem Zeitraum gefunden wird, in dem Sie erwarten würden, λBlöcke zu finden, kann mit der folgenden Formel berechnet werden :Wahrscheinlichkeit einer Anzahl von Ereignissen, die von den erwarteten Ereignissen abweicht

Um also die Wahrscheinlichkeit zu berechnen, dass ein Intervall zwischen Blöcken um einen Faktor länger als der Mittelwert (10 Minuten in einer idealen Welt) ist λ, erhalten wir p(0|λ) = exp(-λ)*(λ^0)/(0!) = exp(-λ)*1/1 = exp(-λ), z. B. die Wahrscheinlichkeit, dass ein Blockintervall ist

  • mehr als 10 Minuten sind 36,8 %
  • mehr als 20 Minuten sind 13,5 %
  • mehr als 30 Minuten beträgt 5,0 %
  • mehr als 1 Stunde ist 0,25 %
  • mehr als 2 Stunden ist 0,0006 %
  • mehr als ein Tag ist 2,89*exp(-63)

Dass längere Zeiten auftreten, ist zwar nicht ausgeschlossen, aber äußerst unwahrscheinlich.

Zusätzliche zufällige Bits, auf die ich bei der Recherche zu dieser Frage gestoßen bin

In den letzten zwei Jahren war die durchschnittliche Blockbestätigungszeit von sieben Tagen nie länger als 15 Minuten. Siehe Durchschnittliche Bitcoin-Transaktionsbestätigungszeit

In den sehr frühen Tagen von Bitcoin waren größere Schwankungen aufgrund schwankender Mining-Leistung häufiger, siehe zum Beispiel Was ist die längste Zeitspanne zwischen Blöcken in 2010 - 2011? .

Eine Liste aller Blockintervalle bis Jan. 2014 sortiert nach Länge finden Sie hier: Blockintervalle sortiert .
Die erste Spalte bezeichnet die das Intervall bildenden Blöcke, die zweite Spalte gibt das Blockintervall in Sekunden an. Quelle: Runeks auf Reddit: Was war die längste Zeit zwischen Blöcken in der Geschichte von Bitcoin?

Was bedeuten für und sonst in diesem Zusammenhang?
@NickODell: für = for, sonst = else. Dh bei natürlichen Zahlen ist es die obere Formel, bei negativen Werten immer Null.

Wir können nicht mit absoluter Sicherheit wissen, ob ein Block gefunden wird. Wir können jedoch Wahrscheinlichkeiten grob berechnen.

Die aktuelle Blockschwierigkeit erfordert ungefähr 63 Nullbits am Anfang des Hashs. Die Wahrscheinlichkeit, einen Block mit einem Hash zu finden, beträgt ungefähr 2**(-63). Die Wahrscheinlichkeit , einen Block nicht(1 - 2**(-63)) zu finden, ist . NDas liegt wahrscheinlich daran, dass nach Hash-Versuchen kein Block gefunden wird (1 - 2**(-63))**N.

Die aktuelle Netzwerk-Hash-Rate beträgt etwa 30.000.000 GH/s oder 3e16 H/s. In 10 Minuten kann das Netzwerk etwa 1.8e19 Hashes erstellen. Wenn Sie diesen Wert wie Noben verwenden und das Ergebnis berechnen, erhalten Sie 0,14205174, was wiederum die Wahrscheinlichkeit ist , nach 10 Minuten keinen Block zu finden.

In Anbetracht dessen können Sie die Zeit verlängern und einige weitere Wahrscheinlichkeiten berechnen:

Kein Ergebnis in einer Stunde => 0,00000821 = 8,21e-6
Kein Ergebnis in einem Tag => 8,96e-123

Es ist äußerst unwahrscheinlich, dass nach einem Tag kein Ergebnis für einen Block gefunden wird.

@Zaph: Es ist einfach, die Wahrscheinlichkeit auszurechnen, einen erfolgreichen Hash für das Bitcoin-Mining für einen einzigen Hash-Versuch zu erhalten . Das ist, als würde man einen Würfel werfen und 1 bekommen (Wahrscheinlichkeit 1/6). Der interessante Teil ist jedoch, wie oft Sie würfeln müssen, damit irgendwann eine 1 erscheint. Sie können nicht mit Sicherheit sagen, dass Sie einen Würfel 6 Mal werfen können und eine 1 erhalten. Sie können das nicht einmal für 10 Würfe oder 100 Würfe oder eine Million sagen. Für einen Würfel ist die Wahrscheinlichkeit, dass er Nmal würfelt und nie eine 1 bekommt, (5/6)**N.
@GregHewgill: Während mein erster Versuch, die Wahrscheinlichkeiten zu berechnen, sehr ähnlich wie bei Ihnen war, habe ich inzwischen gelernt, dass das Blockfinden ein Poisson-Prozess ist, und mein erster Versuch war falsch. Ich habe jetzt die meiner Meinung nach korrekten Wahrscheinlichkeiten und auch die Formel bereitgestellt, mit der sie berechnet werden können.
@Murch: Der Bernoulli-Prozess (den ich beschrieben habe) und der Poisson-Prozess (den Sie beschrieben haben) sind eng miteinander verbunden. Der Poisson-Prozess modelliert kontinuierliche Zeit; Der Bernoulli-Prozess modelliert diskrete Zeit. Beide Ansätze können den Bitcoin-Mining-Prozess erfolgreich modellieren.