Kann ich angesichts der Wahrscheinlichkeit, einen Block zu finden, und der benötigten Zeit auf die Hashrate schließen?

Ich versuche, die Hashrate eines bestimmten Miners extern zu berechnen, basierend nur auf einem willkürlich definierten Ziel, das ich zuweise, und dann die Wahrscheinlichkeit zu berechnen, dass es gefunden wird. Sobald diese Wahrscheinlichkeit berechnet ist, möchte ich abschätzen, wie lange es (im Durchschnitt) dauern sollte, einen Block zu finden.

Ist das machbar?

Welche Mathematik ist erforderlich, um die Hashrate zu bestimmen?

Beispiel: Angenommen, das Ziel ist 1 und der Miner hat den Block in 10 Minuten eingereicht.

Antworten (2)

So wie ich Ihre Frage verstehe, besteht sie aus zwei Teilen. Eine besteht darin, eine Annäherung an die Hash-Rate einer Person extern zu berechnen, z. B. von einem Server oder Proxy, der ihre Mining-Ergebnisse sehen kann, aber nicht ihren tatsächlichen Hash-Prozess oder ihre Hash-Rate. Der andere Teil besteht darin, die Wahrscheinlichkeit zu berechnen, dass ein Block nach einem bestimmten Arbeitsaufwand oder einer bestimmten Zeit und Hash-Rate gefunden wird.

Ich werde die Formeln als Javascript-Code schreiben, wobei X hoch Y als Math.pow(X, Y) geschrieben wird. Sie können sie in Ihrem Browser ausführen, indem Sie sie wie zum Beispiel in die Adressleiste eingeben javascript:alert((Math.pow(2, 32) * 27939) / 600).

Annäherung an die Hash-Rate:

Zählen Sie bei einem beliebigen Ziel eine Aktie bei Schwierigkeit X genauso wie X Aktien bei Schwierigkeit 1. So gehen Pools mit variabler Schwierigkeit um.

Hashrate = (Math.pow(2, 32) * Shares ) / verstrichene Sekunden

Für jeden Math.pow(2,32)-Hash wird durchschnittlich eine Aktie (bei Schwierigkeit 1) gefunden. Dies ist nur ein Durchschnittswert, weshalb die auf Pool-Websites angezeigten Hash-Raten nur ungefähre Angaben sind.

Lösungswahrscheinlichkeit blockieren:

Die Wahrscheinlichkeit, dass aus einer gegebenen Anzahl von Shares (Proofs of Work) ein oder mehrere Blöcke generiert werden:

prob = 1 - Math.pow(1 - 1.0 / Schwierigkeit , Anteile )

Das ist von 0 bis 1. Multiplizieren Sie mit 100, wenn Sie einen Prozentsatz wünschen.

Nehmen wir an, die Schwierigkeit ist 4367876 und jemand hat 10 Minuten lang mit einer Hashrate von 200 Ghps geschürft. Das sind 200 * Math.pow(10, 9)-Hashes pro Sekunde für 600 Sekunden, wobei durchschnittlich eine Aktie (bei Schwierigkeit 1) für jeden Math.pow(2,32)-Hash gefunden wird. Dies gibt uns Folgendes:

Aktien = (200 * Math.pow(10, 9) * 600) / Math.pow(2,32) = 27939 Aktien

prob = 1 - Math.pow(1 - 1,0 / Schwierigkeit, Anteile) = 1 - Math.pow(1 - 1,0 / 4367876, 27939) = 0,00637 ...

Mit anderen Worten, die Wahrscheinlichkeit, dass jemand innerhalb von 10 Minuten einen oder mehrere Blöcke mit der angegebenen Hash-Rate und Schwierigkeit erstellt, liegt bei etwa 0,64 %.

Hinweis: Wenn Sie sehen, wie viele Shares (Proofs of Work) sie einsenden, berechnen Sie natürlich nicht zuerst ihre Hash-Rate, um sie dann in eine Anzahl von Shares zurückzurechnen. Setzen Sie es einfach in die Formel ein.

Ich habe das mehrmals gelesen, aber ich verstehe nicht, wo jedes Vorkommen von 9, oder 32vorkommt. Würden Sie die Auswahl dieser Nummern näher erläutern?
Math.pow(10,9) ist 1000000000. Das sind 9 Nullen für Giga in Ghps. Ich dachte, es wäre besser lesbar, 200 Ghps auf diese Weise zu schreiben, anstatt 200000000000.
Math.pow(2,32)-Hashes ergeben im Durchschnitt 1 Proof-of-Work bei Schwierigkeit 1. Es ist tatsächlich eine Schwierigkeit von 0,999-etwas, aber es ist nah genug. Bei diesem Unterschied sollen die ersten 32 Bits im Hash Null sein. Dies ist ein Ergebnis von 2^32 möglichen Werten aus diesen 32 Bits. Ein Hash hat also eine Chance von 1 zu 2^32.
Woher kommt die 32? Ich dachte, Bitcoin verwendet sha256? sollte es nicht pow(2, 256) sein?
2 hoch 32 ist die durchschnittliche Anzahl von Hashes, um einen Arbeitsnachweis der Schwierigkeit 1 zu finden. Es gibt 2 hoch 32 mögliche Permutationen von 1 und 0 in den 32 ersten Bits des sha-256-Hashs. Alle müssen Null sein.

Sie müssen die Schwierigkeit nicht angeben, um die Hashrate zu bestimmen: Sie ist unabhängig von der Schwierigkeit:

Vielleicht meinst du die Wahrscheinlichkeit, einen Block zu finden?

Es gibt eine Reihe von Rentabilitätsrechnern, probieren Sie zum Beispiel diesen hier aus: http://www.bitcoinx.com/profit/

Danke, ja, zum Beispiel würde ich gerne die Wahrscheinlichkeit finden, einen Block innerhalb von 10 Minuten bei 100 GH/s und einem relativ einfachen Ziel zu finden.