Bitcoin Mining Difficulty - What is it And How Does it Work?

Updated on: May 2nd, 2020
This content has been Fact-Checked.
Bitcoin Mining Difficulty - What is it And How Does it Work?

Bevor wir überhaupt anfangen zu verstehen, was Bitcoin-Mining-Schwierigkeit bedeutet, müssen wir wissen, wie Bergbau funktioniert. Wir haben dieses Thema bereits im Detail behandelt, so dass wir Ihnen nur einen kleinen Überblick geben, bevor Sie in die verschiedenen Nuancen der Schwierigkeit geraten. Danach werden wir uns ansehen, wie der Bergbauschwierigkeiten berechnet wird und wie er sich an die Bedürfnisse des Netzwerks ändert.

Wie funktioniert der Bergbau? Wie lange dauert es, 1 Bitcoin zu minieren?

Bitcoins Netzwerk hat mehrere spezialisierte Knoten namens „Bergleute“, die spezialisierte Ausrüstung verwenden, um kryptografisch harte Rätsel zu lösen. Wenn sie erfolgreich sind, erhalten sie die Möglichkeit, der BTC-Blockchain erfolgreich Blöcke hinzuzufügen. So funktioniert es:

Der Miner nimmt Transaktionen auf, die im Mempool warten und hashes sie.

Sie fügen einen zufälligen hexadezimalen Wert an die Vorderseite des Hashs hinzu und hashes den gesamten Wert.

Dieser Hash muss kleiner als ein bestimmter Wert sein, der als „Schwierigkeit“ bezeichnet wird.

Was bestimmt Bitcoin Mining Schwierigkeit? Warum erhöht sich der BTC-Schwierigkeitsgrad?

#1 Zur Aufrechterhaltung der Netzwerkintegrität

Das Niveau der Bitcoin-Mining-Schwierigkeit erhöht oder verringert sich je nach der Leichtigkeit des Bergbaus innerhalb des Protokolls. Denken Sie daran, Bitcoin muss eine konsistente Blockzeit von 10 Minuten haben. Mit anderen Worten, neue BTC kann alle 10 Minuten in die zirkulierende Versorgung injiziert werden. Um sicherzustellen, dass dieses Timing das Bitcoin-Protokoll nicht ändert:

Erhöht Netzwerkschwierigkeiten, wenn es für Bergleute leichter wird.

Verringern Sie Netzwerkschwierigkeiten, wenn es für Bergleute schwieriger wird.

Das Bitcoin-Netzwerk hat eine universelle Blockschwierigkeit. Alle gültigen Blöcke müssen einen Hash unterhalb des Ziels haben. Mining-Pools haben auch eine pool-spezifische Freigabeschwierigkeit, indem eine untere Grenze für Aktien festgelegt wird.

#2 Beziehung zur Hash-Rate

Eine der kritischen Metriken bei der Beurteilung des Zustands eines Proof-of-Work-Netzwerks ist die Hash-Rate. Einfach gesagt, hashrate zeigt Ihnen, wie mächtig die Bergleute im Netzwerk sind. Höher das Bitcoin-Netzwerk hashrate, höher ist es die allgemeine Sicherheit und Geschwindigkeit. Allerdings müssen diese Netzwerke ihre Hashrate unter Kontrolle halten, um eine konsistente Blockproduktion zu gewährleisten. Deshalb, wenn Hashrate hoch wird, wird die Bitcoin-Schwierigkeit schließlich auch höher, was es für Bergleute schwieriger macht, leicht innerhalb des Netzwerks zu minen.

Die Umkehrung ist auch wahr.

Wenn Bitcoins Hashrat abnimmt, verringert sich auch der Netzwerkschwierigkeit. Hashrate kann aus folgenden Gründen abnehmen:

Bitcoin hat derzeit eine hohe Schwierigkeit, weshalb die Bergleute eine harte Zeit im System Mining haben.

Der Preis für BTC ging zurück, weshalb viele Bergleute den Bergbau aufgeben.

Um die Korrelation zwischen den beiden zu verstehen, schauen wir uns ihre Diagramme an. Zuerst haben wir die Hash-Rate.

Danach haben wir das Bitcoin-Schwierigkeitsdiagramm:

Wie Sie sehen können, besteht eine sehr enge Korrelation zwischen den beiden. März fiel die Netzwerkschwierigkeit um 16% von 16,55 Billionen auf 13,9 Billionen. Dies war der größte Absturz der Netzwerkschwierigkeiten seit Anfang 2013. Um zu verstehen, warum dies dieses Mal passiert ist, schauen Sie sich an, wie das Hashrat auch kurz bevor der Bitcoin-Schwierigkeitsgrad fällt. Dieser Rückgang ereignete sich aufgrund des Preisabsturzes von Bitcoin, der viele Bergleute dazu zwang, Operationen zu beenden.

Wie berechnet Bitcoin den Schwierigkeitsgrad?

Bitcoins Netzwerkschwierigkeit ändert sich alle 2016 Blöcke. Die Formel, die vom Netzwerk verwendet wird, um Schwierigkeiten zu berechnen, geht wie folgt:

Schwierigkeit = schwierigkeit_1_target/current_target

In der obigen Formel:

Ziel ist eine 256-Bit-Zahl. Gemäß dem Bitcoin-Protokoll sind die Ziele ein benutzerdefinierter Gleitkomma-Typ mit eingeschränkter Genauigkeit. Bitcoin-Clients nähern den Schwierigkeitsgrad basierend auf dieser Tatsache. Dieser Wert wird auch als bdiff bezeichnet.

difficulty ty_1_target kann unterschiedlich sein, je nachdem, wie Sie den Schwierigkeitsgrad messen. Traditionell stellt es einen Hash dar, bei dem die führenden 32 Bits Null sind und der Rest eins sind. Tatsächlich wird dieser Wert auch als Pool-Schwierigkeit oder pdiff bezeichnet.

Jeder einzelne Block speichert eine gepackte Darstellung der Bitcoin-Schwierigkeit in ihren Blöcken namens „Bits“. Dieses Ziel erscheint normalerweise als 0x1b0404cb (gespeichert in Little-Endian Reihenfolge: cb 04 04 1b).

Ein Block berechnet den Zielwert über eine vordefinierte Formel. Z.B. Mit dem gepackten Ziel oben angegeben, dh 0x1b0404cb. Das hexadezimale Ziel ist:

0x0404cb * 2** (8* (0x1b - 3)) = 0x00000000000404CB00000000000000000000000000000000000000000000

Jetzt berechnen wir bdiff und pdiff.

Das höchstmögliche Ziel (difficulty_1_target) ist definiert als 0x1d00ffff oder in hexadezimaler Form:

0x00ffff * 2** (8* (0x1d - 3)) = 0x00000000FFFF0000000000000000000000000000000000000000000000000000

Nun, da wir diesen Wert kennen, können wir diesen verwenden, um unseren bdiff mit der Schwierigkeitsgrad = difficulty_1_target/current_target Formel zu berechnen

Nun, wie wir im vorherigen Abschnitt definiert haben, ist die current_target 0x1b0404cb oder 0x00000000000404CB00000000000000000000000000000000000000000000000000000000.

Also, um aktuelle Schwierigkeit zu berechnen:

0x00000000FFFF0000000000000000000000000000000000000000000000000000000000000000/

0x00000000000404CB00000000000000000000000000000000000000000000000000000000

= 16307.420938523983

Daher ist bdiff 16307.420938523983.

Nun, lasst uns den pdiff berechnen. Mining-Pools verwenden neigen dazu, nicht abgeschnittene Ziele zu verwenden, was „difficulty ty_1_target“ auf 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF setzt.

Wenn das der Fall ist, dann ist unser pdiff für dasselbe current_target:

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

0x00000000000404CB00000000000000000000000000000000000000000000000000000000

= 16307.669773817162

Hier ist ein Programmcode aus dem Bitcoin-Wiki, der auf Protokolle beruht, um die Berechnung der Schwierigkeiten zu erleichtern:

#include iostream

#include cmath

Inline float fast_log (float val)

{{}}

int * const exp_ptr = reinterpret_cast int * (und val);

int x = *exp_ptr;

const int log_2 = (x 23) und 255) - 128;

x und = ~ (255 23);

x += 127 23;

*exp_ptr = x;

val = ((-1,0f/3) * val + 2) * val - 2,0f/3;

return ((val + log_2) * 0,69314718f);

}

Float-Schwierigkeit (unsigned int bits)

{{}}

statische doppelte max_body = fast_log (0x00ffff), scaland = fast_log (256);

return exp (max_body - fast_log (Bits und 0x00ffffff) + scaland * (0x1d - ((Bits und 0xff000000) 24)));

}

int main ()

{{}}

std: :cout Schwierigkeit (0x1b0404cb) std: :endl;

0 zurückgeben;

}

Wie legen Sie einen Bergbau-Schwierigkeitsgrad fest?

Miner verwenden spezialisierte ASIC-Hardware, um Bitcoins zu minieren. Diese Maschinen sind extrem schnell und produzieren jede Sekunde Tetrahashes. Es wird für ein System äußerst unpraktisch sein, jedes einzelne von ihnen sorgfältig zu überprüfen, um zu sehen, ob es alle notwendigen Bedingungen erfüllt oder nicht. Dies gilt exponentiell für Mining-Pools. Sie können nicht alle Hashes überprüfen, die von einem Bitcoin-Miner produziert werden. Aus diesem Grund verwenden Mining-Pools ein Konzept namens „Share Time“.

Stellen wir uns vor, dass Ihr Bitcoin-Mining-Pool eine Freigabezeit von 5 Sekunden festgelegt hat. Das bedeutet, dass Ihr Mining-Pool im Durchschnitt alle 5 Sekunden eine Freigabe an ihn einreichen muss.

Wie genau wird das gemacht?

Ihr Bitcoin-Mining-Pool legt für jeden Miner einen Wert namens „Share-Schwierigkeit“ fest. Die Anteilsschwierigkeit eines Bergarbeiters ist direkt proportional zu ihrem individuellen Hashrat. Als solche höher das Hashrat des Bergarbeiters, höher sein Anteil Schwierigkeitsgrad. Die Idee ist, dass der Bergmann ihre Ausrüstung verwenden wird, um Tonnen von Hashes zu erzeugen. Sobald sie einen Hash finden, der den Ziel-Teile-Schwierigkeitsgrad erfüllt, werden sie den Hash an den Pool senden.

Wie werden die Bergleute belohnt?

Bergleute im Pool werden auf „Pay per share“ (KKS) -Basis belohnt. In diesem System werden die Bergleute für die Aktien belohnt, die sie einreichen. Die Werte der Aktien hängen völlig davon ab, wie schwierig es war, die Aktie zu entdecken.

Nehmen wir ein Beispiel, um zu sehen, wie das funktioniert:

Angenommen, Sie sind ein Bergmann mit einem individuellen Hashrat von 50 TH/s.

Der Mining-Pool, dem Sie beigetreten sind, hat Ihren Share-Schwierigkeitsgrad auf 1.000.000 festgelegt.

Sobald Sie Aktien über 1.000.000 erhalten, werden Sie vom Pool belohnt.

Der Pool kann Ihre Schwierigkeit ändern, um sicherzustellen, dass Sie Ihre Freigaben nicht zu schnell übermitteln.

Wenn Sie jetzt neue Geräte kaufen und Ihr Hashrat auf 150 TH/s erhöhen, wird der Pool Ihren Schwierigkeitsgrad auf 3.000.000 erhöhen. Sie werden Aktien mit der gleichen Rate einreichen, die Sie zuvor eingereicht haben. Sie erhalten jedoch das 3-fache der Belohnung, die Sie zuvor für die Aktien erhalten haben, die Sie einreichen.

Der Grund, warum Pools höhere Schwierigkeiten für schnellere Hardware empfehlen, besteht darin, die Netzwerklast sowohl auf dem Miner-System als auch auf dem Pool zu reduzieren. Außerdem verringert sich die Verzögerung für den Neustart Ihrer Mining-Hardware bei der Vorbereitung auf die nächste Arbeitseinheit. Gleichzeitig muss der Pool darauf achten, die Schwierigkeit nicht zu hoch zu setzen, was zu einer Menge veraltete Aktien führen wird.

HINWEIS: Share Target = 1/Share Schwierigkeit

Die Bedeutung der Schwierigkeit in Nakamoto Konsens

Um zu verstehen, wie kritische Schwierigkeit für Bitcoins Ökosystem ist, müssen Sie wissen, wie Nakamoto Konsens funktioniert. Für ein Wide Area Network ohne zentrale Einheit sind Konsensprotokolle die einzige Möglichkeit, jede Form von Governance aufrechtzuerhalten. Traditionelle Konsensalgorithmen wie Raft sind nicht ideal für die Aufrechterhaltung eines Wide-Area kryptoökonomischen Protokolls. Deshalb hat Satoshi Nakamoto, der Schöpfer von Bitcoin, einen Konsens von Nakamoto gefunden. Der zentrale Grundsatz des Nakamoto Konsens ist, dass man, um am System teilzunehmen, einen Preis zahlen muss. Im Falle von Proof-of-Work (POW), dh Bitcoins Konsens, zahlen Bergleute einen Preis mit „Arbeit“. Arbeit ist in diesem Fall die schwere Menge an Rechenenergie, die ein Bergmann ausgeben muss, um einen Bitcoin zu minieren. Hier kommt es zu Schwierigkeiten. Schwierigkeit ist die Metrik, die Bitcoin Mining hart macht, und das ist, was Nakamoto Konsens nutzt, um das Doppelausgabenproblem zu lösen.

Was ist Doppelausgaben?

Doppelte Ausgaben sind der Grund, warum alle Versuche, eine dezentrale Kryptowährung zu schaffen, vor Bitcoin unglücklich gescheitert waren. In einfachen Worten ist es ein Fehler, der es ermöglicht, dass ein Bitcoin mehr als einmal gleichzeitig ausgegeben werden kann. Wir haben dieses Problem nie im Umgang mit physischem Geld gestoßen. Immerhin, wenn Sie etwas mit einer 10-Dollar-Note kaufen, können Sie nicht gleichzeitig etwas anderes mit derselben Note kaufen, oder?

Ein digitales Token verfügt jedoch über digitale Dateien, die leicht dupliziert werden können, was zu unvermeidlichen Doppelausgaben führt. Wie Sie sich vorstellen können, können doppelte Ausgaben mehrere verheerende Auswirkungen auf die Wirtschaft des Ökosystems haben:

Erstens bläst sie das Gesamtangebot der Münzen innerhalb des Ökosystems auf, wodurch die Angebot-Nachfrage-Gleichung außer Kontrolle geraten wird.

Zweitens, wenn jemand überall dieselbe Münze ohne Einschränkung ausgeben kann, wird es den Glauben der Menschen an die Heiligkeit dieser Währung verringern.

Bitcoin erfordert, dass alle Transaktionen unbedingt in die Blockchain einbezogen werden. Dies stellt sicher, dass jeder im Netzwerk jeden einzelnen Bitcoin direkt an seine Quelle verfolgen kann. Ein so hohes Maß an Transparenz gewährleistet, dass niemand die Ausgaben verdoppeln kann, ohne dass das gesamte Netzwerk bemerkt. Denken wir jedoch an etwas teuflischeres. Angenommen, jemand beschließt, die Blockchain zu entführen, indem er herausgabt und versucht, alle Bitcoins zu verdoppeln.

Was passiert dann?

Nun, es stellt sich heraus, dass aufgrund von Netzwerkschwierigkeiten die Menge an Ressourcen und Geld, die der Angreifer die Kette übernehmen muss, exponentiell ist. Daher wird es wirtschaftlich nicht wert sein, gegen die Interessen des Systems zu handeln. Dies ist, wie Netzwerkschwierigkeiten Nakamoto Consensus die Feuerkraft gibt, die es benötigt, um Netzwerksicherheit und -integrität aufrechtzuerhalten.

Fazit - Bitcoin Mining Schwierigkeit

Wir hoffen, dass Sie in diesem Artikel viel Wert gefunden haben. Wenn Sie Zweifel haben, dann kontaktieren Sie uns jederzeit.

Ameer Rosic
#SerialEntrepreneur, Investor, #Digitalmarketing Adviser and Cofounder of @Blockgks a #blockchain innovation hub

Like what you read? Give us one like or share it to your friends and get +16

0
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In