Was ist der Algorithmus zum Erstellen eines Bitcoin-Mining-Rechners?

Ich möchte wissen, wie ich den Gewinn des Bitcoin-Minings in Bitcoins berechnen kann. Ich interessiere mich für die Formel, die von Taschenrechnern verwendet wird. Nehmen wir zum Beispiel an, ich habe eine Hashrate von 700 MHz, die aktuelle Schwierigkeit beträgt 908350862.437. Der Rechner sagt, dass ich 0,00038755 BTC pro Tag schürfen werde. Welcher Algorithmus wird verwendet, um diese Zahlen zu berechnen?

Sehen Sie sich diese Antwort an: bitcoin.stackexchange.com/a/135/5406
Wo kann ich die aktuelle Blockbelohnung abbuchen?
Die aktuelle Blockbelohnung beträgt 25 BTC, ab Block 420.000 werden es 12,5 BTC sein. Schauen Sie sich BitcoinClock an

Antworten (2)

Ich möchte eine ausführliche Antwort geben, da ich festgestellt habe, dass das bereits Bestehende hier oder anderswo etwas näher erläutert werden muss, insbesondere für Neuankömmlinge.

Formel

Um den ungefähren Gesamtwert der Bitcoin-Einnahmen pro Monat aus einem Mining-Betrieb (ohne Berücksichtigung der Mining-Kosten [Strom, Hardware-Wartung usw.]) zu berechnen, kann die folgende Formel verwendet werden:

H = Hashrate (hashes / second)
D = Difficulty (Reference for values below)
B = Reward per Block (Reference for value below)
N = Number of days per month (default = 30)
S = Number of seconds per day (S = 60 * 60 * 24 = 86400)

Gewinnformel aus dem Bergbau

Beispiel

H = 21,990,232,555,520 h/s (~= 20TH/s)
D = 47,427,554,950.648
B = 25
N = 30
S = 86400

Gewinnformel aus dem Bergbau

Die Gesamtzahl der pro Monat gemäß den oben definierten Variablen verdienten Bitcoins beträgt ~6.995 . Verlassen NSie den Zähler und Sie erhalten den Tageswert.

Python

Eine schnelle Python-Anweisung als Beispielimplementierung (Sie können dies direkt im Terminal eingeben)

$ python -c "print (30*21990232555520*25*86400)/(47427554950.648*2**32)"
$ 6.99542703277

Einige Referenzen:

Schwierigkeit ( Aktueller Wert | Wiki )

Belohnung pro Block ( Aktuelle und zukünftige Werte )

Gilt diese Logik für alle Coins?
Wo kommt die 2**32her? Ist das BTC-spezifisch?
@domdambrogia Ja, lesen Sie mehr darüber in der Wiki-Referenz zu Schwierigkeiten

Die durchschnittliche Zeit, um einen Block zu finden, kann durch Berechnung angenähert werden:

time = difficulty * 2**32 / hashrate

Wo Schwierigkeit die aktuelle Schwierigkeit ist, ist Hashrate die Anzahl der Hashes, die Ihr Miner pro Sekunde berechnet, und Zeit ist der Durchschnitt in Sekunden zwischen den Blöcken, die Sie finden.

Warum ist diese Formel nur eine Annäherung? Ich sehe keine anderen Parameter, die sich möglicherweise auf das Ergebnis auswirken könnten (zumindest natürlich, wenn sowohl die Schwierigkeit als auch die Hashrate konstant sind).
Es ist eine Annäherung, weil Mining ein Spiel der Varianz und des Glücks ist. Es gibt Zeiten, in denen Sie Glück haben und mehr Blöcke als vorhergesagt generieren können, und es wird sicherlich Durststrecken geben, in denen keine Blöcke auftreten. Dies kann man sehen, wenn man große Mining-Pools beim Lösen von Blöcken beobachtet, Blöcke werden keineswegs nach einem festgelegten Zeitplan erstellt, das Netzwerk passt sich so an, dass alle 10 Minuten ein Block generiert werden sollte, aber wir wissen, dass dies regelmäßig angepasst werden muss basierend auf neuen Bergleuten, die ständig online kommen. Die Netzwerk-Hashrate und damit die Schwierigkeit ändern sich regelmäßig.
Deshalb kann die Formel nur eine Durchschnittszeit angeben. Trotzdem lassen sich auch Formeln für Durchschnittswerte annähern, aber ich denke, hier haben wir eine exakte Formel für einen Durchschnittswert (das mag etwas pingelig klingen, aber meiner Meinung nach ist es immer noch eine nicht zu unwichtige Unterscheidung).