Wie kann ich die Hashrate-Verteilung verwenden, um Rückschlüsse darauf zu ziehen, wann ein bestimmter Pool einen Block findet?

Miner finden Blöcke zufällig, aber auch proportional zur Hashrate des Miners. Wie kann ich diese „Chance“ pro Mining-Pool am besten vorhersagen und ausdrücken?

Wenn F2Pool beispielsweise in der vergangenen Woche 10 % der gesamten Mining-Hashrate hatte, ist es dann sinnvoll zu sagen, dass sie wahrscheinlich 10 % der Blöcke finden werden, die sich in Zukunft bewegen?

Wie drückt man den Begriff am besten aus? Ich würde gerne etwas sagen können wie:

"F2Pool hat eine Chance von 10 %, den nächsten Block in den nächsten 10 Minuten zu finden, und diese nähert sich nach 10 Blöcken 100 %. D. h. F2Pool hat eine sehr gute Chance, mindestens einen Block innerhalb der nächsten 100 Minuten zu finden."

Offensichtlich gibt es nie eine 100%ige Chance, einen Block in den nächsten x Blöcken zu finden, was ist also die akzeptierte Art, eine Zahl anzugeben, aber auch mit diesem Unterton von "oder vielleicht nie?"

Gibt es eine API oder Bibliothek, mit der ich diese Zufallswerte im Laufe der Zeit pro Mining-Pool berechnen/kennen kann?

Antworten (2)

Wenn F2Pool beispielsweise in der vergangenen Woche 10 % der gesamten Mining-Hashrate hatte, ist es dann sinnvoll zu sagen, dass sie wahrscheinlich 10 % der Blöcke finden werden, die sich in Zukunft bewegen?

Angenommen, viele Miner wechseln nicht, ja.

"F2Pool hat eine Chance von 10 %, den nächsten Block in den nächsten 10 Minuten zu finden, und diese nähert sich nach 10 Blöcken 100 %. D. h. F2Pool hat eine sehr gute Chance, mindestens einen Block innerhalb der nächsten 100 Minuten zu finden."

Sie stellen hier zwei subtil unterschiedliche Fragen.

  1. Werde ich den nächsten Block finden?
  2. Werde ich in den nächsten zehn Minuten einen Block finden?

In elf Minuten könnten Sie den nächsten Block finden. Sie könnten einen Block in fünf Minuten finden und auf einem Block aufbauen, der vor vier Minuten entdeckt wurde.

Werde ich den nächsten Block finden?

Das ist ziemlich einfach. Wenn Sie 10 % der Hashrate haben, gibt es eine Wahrscheinlichkeit von 0,1, dass Sie es finden werden. Wenn Sie einen p-Anteil der Hashrate haben, besteht die Wahrscheinlichkeit (1-(1-p)^n), dass Sie einen Block in den nächsten n Blöcken finden. Bei 10 % Hashrate und 10 Blöcken ist das eine Chance von 65 %. Alles andere als sicher.

p = 0.1
Blocks  Probability of you getting a block
0       0.00000
1       0.10000
5       0.40951
10      0.65132
30      0.95761
50      0.99485
100     0.99997

Graph der Wahrscheinlichkeit, dass wir einen Block finden

Werde ich in den nächsten zehn Minuten einen Block finden?

Die Blockerkennung folgt einer Poisson-Verteilung . Eine Poisson-Verteilung stellt eine Reihe unabhängiger Ereignisse dar, bei denen ein Ereignis keine Auswirkung auf das zukünftige Eintreten hat.

Wir möchten wissen, wie wahrscheinlich es ist, dass k Blöcke in einem Zeitraum von zehn Minuten von irgendjemandem gefunden werden, wenn im Durchschnitt alle zehn Minuten 1 Block vorhanden ist. Wikipedia hat bereits eine Tabelle für uns :

k   P(k)
0   0.368
1   0.368
2   0.184
3   0.061
4   0.015
5   0.003
6   0.0005

Aber das ist nicht ganz das, was wir brauchen - wenn zehn Blöcke gefunden werden, besteht eine viel größere Chance, dass einer von ihnen uns gehört, als wenn nur ein Block gefunden wird. Multiplizieren Sie mit dem obigen Ausdruck und ersetzen Sie k durch n und 0,1 (unser Anteil an der Hashrate) durch p.

k   P(k)    P(k)*(1-(1-0.1)^k)
0   0.368   0.0000
1   0.368   0.0368
2   0.184   0.0350
3   0.061   0.0165
4   0.015   0.0052
5   0.003   0.0012
6   0.0005  0.0002
    Sum:    0.0949

Fassen Sie die letzte Spalte zusammen. Wir erhalten eine Chance von 9,49 %, was der Chance entspricht, dass Sie in den nächsten zehn Minuten mindestens einen Block erhalten, wenn Sie 10 % der Hashrate haben. Aber das bedeutet nicht, dass es eine 95-prozentige Chance gibt, in zehn Minuten mit 100 % der Hashrate einen Block zu haben. Es ist nicht linear. Wenn Sie 100 % der Hashrate haben:

k   P(k)    P(k)*(1-(1-1.0)^k)
0   0.368   0.0000
1   0.368   0.3680
2   0.184   0.1840
3   0.061   0.0610
4   0.015   0.0150
5   0.003   0.0030
6   0.0005  0.0005
    Sum:    0.6315

...dann haben Sie eine Chance von 63,2%, in den nächsten zehn Minuten einen Block zu haben, wenn Sie die gesamte Hashpower haben.

(Unsere Berechnungen sind um etwa ein Zwanzigstel Prozent zu niedrig, weil wir Fälle wie k = 7 nicht berücksichtigt haben. Aber ich denke, das ist eine gute Annäherung.)

Ich habe Probleme, Ihrem Gedankengang in den drei letzten Absätzen zu folgen. Sie sprechen davon, eine viel bessere Chance zu haben, einen von zehn Blöcken zu finden, aber die Tabellen oder folgenden Absätze scheinen darauf nicht einzugehen.
@Murch Ich habe einige Änderungen vorgenommen. Mal reinschauen?
Ah ja, jetzt ist es mir klarer. Ich habe auch einen Fehler in meinem eigenen Denkprozess gefunden. ;)

"F2Pool hat eine Chance von 10 %, den nächsten Block in den nächsten 10 Minuten zu finden, und diese nähert sich nach 10 Blöcken 100 %. D. h. F2Pool hat eine sehr gute Chance, mindestens einen Block innerhalb der nächsten 100 Minuten zu finden."

Nick hat das bereits angesprochen, aber ich möchte darauf hinweisen, dass Sie meines Erachtens etwas sehr Grundlegendes in Bezug auf Statistiken missverstehen: Wenn Sie eine Münze werfen, beträgt die erwartete Chance, Zahl zu bekommen, 50 %. Ihre obige Aussage liest sich so, als ob Sie sagen würden, dass zwei Münzwürfe eine 100-prozentige Chance hätten, ein Ergebnis von „Zahl“ zu erzeugen. –– Das stimmt aber nicht.

Offensichtlich könnten Sie eines der vier Ergebnisse für zwei Münzwürfe erhalten: TT, TH, HT, oder HH. Das heißt, es gibt eine 25-prozentige Chance, zwei Schwänze zu bekommen, eine 50-prozentige Chance, einen Schwanz zu bekommen, und eine 25-prozentige Chance, keinen Schwanz zu bekommen. Wenn Sie "mindestens einen Block" meinten, wäre das für unser Beispiel eine 75% ige Chance, nicht 100%.

Übersetzt in Blockerkennung bedeutet dies Folgendes:

  • Die Blockweitergabe und -validierung nimmt sehr wenig Zeit in Anspruch, daher gehen wir davon aus, dass Sie immer an einem gültigen Block arbeiten.
  • Das Finden von Blöcken ist völlig unabhängig von anderen gefundenen Blöcken.

Somit hat Ihre Chance, genau einen Block in 100 Minuten mit 10 % der Hash-Rate zu finden, die gleiche Poisson-Verteilung wie das Finden genau eines Blocks in 10 Minuten mit 100 % der Hash-Rate. Dass Sie nur versuchen, einen von zehn Blöcken zu entdecken, hat keinen Einfluss!

Ihre Chance, genau 1 Block in dem Zeitrahmen zu finden, in dem Sie erwarten würden, einen Block zu finden, beträgt 36,8 % (siehe auch Nicks Tabellen), und es sind 63,2 %, mindestens einen Block zu finden.


Nur weil ich das übersehen hatte, als ich Nicks Antwort zum ersten Mal las: Beachten Sie, dass Ihre Chance, einen Block aus dem nächsten zu finden, nsich von Ihrer Chance unterscheidet, einen Block in dem Zeitrahmen zu finden, in dem nBlöcke erwartet werden.