Statistisch möglich: der nie gefundene Block

Hallo,

Blöcke werden bei Blcokchains im Schnitt in x Zeiteinheiten gefunden. Bei Bitcoin dauert das zwischen einigen Sekunden bis hin zu Stunden. Es ist eben nur ein Durchschnitt. Je länger die Blockchain aber bei Blöcke auswürfelt (ist ja nun mal würfeln), desto wahrscheinlicher wird der Fall, dass ein Block auch Tage oder Monate oder Jahre braucht, um gefunden zu werden. Bei dem heutigen Nutzungsverhalten wäre das eine Vollbremmsung.

Wie könnte dann eine Lösung / ein Fallback aussehen? Denn an der Wahrscheinlichkeitskurve würde selbst ein Neustart nichts ändern.

Grüße

Mal abgesehen davon, dass es zwar statistisch möglich, aber eben sehr sehr sehr sehr unwahrscheinlich ist, könnte man - wenn sich alle einig sind- forken und die Difficulty dann in der neuen Chain anpassen, so dass es wieder schneller geht.

das ändert am problem nix :slight_smile: ich bin gespannt wie real das ganze wird. stundenabstände gab es bereits. mal sehen wie oft 24+ stunden pro jahrzehnt / jahrhundert ^^ man müsste die wahrscheinlichkeit auch ausrechnen können. genauso wie man einen asteroideneinschlag berechnen kann.
wer ist statistiker / mathematiker und kann die frage beantworten?

Der Ansatz ist, meiner Meinung nach, fehlerhaft: denn wenn du dir das Problem jetzt auf das Würfeln runterbrichst (d.h. auf einen Wurf mit einem 6er Würfel) und das als zusammenhängendes Ereignis anschaust wird die Wahrscheinlichkeit keine 6 zu würfeln mit jedem Wurf etwas kleiner. D.h. je länger du würfelst, desto unwahrscheinlicher wird es (insgesamt betrachtet), dass es noch länger dauert.

Beim Würfeln würde folgendes gelten:

Zu Beginn des Experiments betrachtet nimmt die Wahrscheichkeit zu einer größeren Stundenanzahl hin ab. Das ist richtig!
Verglichen mit z. B. mit der Wahrscheinlichkeit, dass es länger als 8 Stunden dauert, ist die Wahrscheinlichkeit für mehr als 9 Stunden geringer, und für mehr als 10 Stunden nochmal geringer.

Während des Würfelns bleibt die Wahrscheinlichkeit, dass es nochmal eine Stunde länger dauert, aber immer gleich! D. h. nach 8 Stunden ist es genauso wahrscheinlich in der folgenden Stunde einen Treffer zu landen, wie nach 9 Stunden.

Wenn man das Hashen mit Erfolg oder Misserfolg von Würfeln einer bestimmten Zahl vergleichen kann („Bernoulli Experiment“), wäre also die Wahrscheinlichkeit nach einem Tag den Block zu finden die gleiche wie ganz am Anfang.

Ob Hashen mit Würfeln vergleichbar ist hängt von den Parametern ab.

1 „Gefällt mir“

Wenn beim Roulette 40 Mal hintereinander eine rote Zahl kommt, liegt die Wahrscheinlichkeit, dass beim nächsten Wurf Schwarz kommt noch immer bei 48,6%.

Hab ich meiner Mathe-Lehrerin auch immer erklärt, hat sie aber nicht eingesehen. :wink:

Hat mMn jedoch nur bedingt etwas mit dem angesprochenen Problem zu tun.

Wochen oder sogar Monate ohne Block sind zwar möglich aber sehr sehr unwahrscheinlich.

Mit der Difficulty und der Hashrate kann man das mit Sicherheit irgendwie ausrechnen, die Wahrscheinlichkeit bei z. B. 30 Tagen wird aber so eine unfassbar lächerliche Zahl sein, dass wir uns darunter sowieso wieder nichts vorstellen können.

Das Szenario wird nur eintreten wenn plötzlich 99, 9% der Miner verschwinden und kein einziger mehr nachkommt.

1 „Gefällt mir“

Hier mal eine Abschätzung der Wahrscheinlichkeit. Mein Problem ist, dass ich mich im Mining Prozess nicht wirklich auskenne. Deshalb basiert die folgende Rechnung auf der Annahme, dass die Wahrscheinlichkeit einen Block zu finden bei jedem neuen Hash konstant bleibt.

p: Wahrscheinlichkeit mit einem Hash den Block zu finden
n: Anzahl der Hash-Versuche

Damit ist die Wahrscheinlichkeit (1 - p), dass mit einem Hash kein Block gefunden wird. Es gilt somit für die Wahrscheinlichkeit P, dass bis zum n-ten Hash kein Block gefunden wird:

P = (1 - p) ^ n

Der Mittelwert der Anzahl von gefundenen Blöcken bei n Hashes entspricht dem Erwartungswert n * p. Für die gewünschte Anzahl von Hashes N, die man entsprechend Difficulty im Mittel für genau einen Block benötigen soll, gilt dann entsprechend:

N * p = 1 => p = 1 / N

Also kann man schreiben:

P = (1 - 1/N) ^ n = (1 - 1/N) ^ (N * n/N) = [ (1 - 1/N) ^ N ] ^ n/N

Diese Erweiterung braucht man für folgenden Grenzwert. Nimmt man nämlich an, dass N, also die mittlere Anzahl von Versuchen bis zum nächsten Block N, sehr groß ist, dann geht die eckige Klammer gegen exp(-1). Also ergibt sich:

Grenzwert von P für N -> unendlich: P = exp(-1) ^ n/N = exp(-n/N)

Das Verhältnis n/N entspricht dem Verhältnis aus Zeit t und gewünschter mittlerer Blockzeit T (hier: 10 min. Also ergibt sich die Wahrscheinlichkeit, dass bis zur Zeit t kein Block gefunden wird:

P = exp(-t/T) = exp(- t / 10min)

Dieses Ergebnis ist nicht überraschend und Standard für solche Prozesse. Ich wollte nur eine kleine Herleitung hinzufügen. Ein paar Beispielwerte:

    t    |     P
 10 min  |     37 %
   1 h   |   0,25 %
   2 h   |  6E-04 %
   1 d   |  3E-61 %

An diesen Werten sieht man, dass eine Blockzeit von 1 Tag nahezu unmöglich wäre. Wenn es aber doch hin und wieder vorkommt, dass man mehrere Stunde erreicht, dann nehme ich an, dass sich die Hashrate in diesen Blöcken stark verringert hat. Die Difficulty passt dann einfach kurzfristig nicht mehr.

Man findet diese Rechnungen auch anderweitig im Netz, z.B. hier:

Allerdings stimme ich dem Autor nicht komplett zu, da er annimmt, dass 1-P die Wahrscheinlichkeit ist einen Block bis zur Zeit t zu finden. 1-P entspricht allerdings der Wahrscheinlichkeit einen oder mehrere Blöcke zu finden.

1 „Gefällt mir“

Es wäre interessant wenn jemand mal eine graphische Auswertung der Blockzeiten machen würde, um das zu vergleichen. Oder kennt jemand eine entsprechende Seite?
Wobei die Time Stamps der Blöcke soweit ich weiß nicht eindeutig definiert sind, da sie der Miner selbst mehr oder weniger exakt einträgt.