Was ist der Mechanismus, mit dem das „System“ die Schwierigkeit beim Finden von Blöcken so anpasst, dass im Durchschnitt alle 10 Minuten einer gefunden wird? [Duplikat]

Hier lesen wir :

Im Bitcoin-Netzwerk werden nur Blöcke mit bestimmten Hashes akzeptiert und in die offizielle Liste aufgenommen. Das Kriterium, für das Blöcke "zählen", ist, dass ihr Hash unter einer bestimmten Zahl liegen muss, die als Ziel bezeichnet wird. Das Netzwerk passt diese Zahl nach oben und unten an, je nachdem, wie oft Blöcke den Test bestehen – so ist es in der Lage, die Blockproduktionsrate bei durchschnittlich 10 Minuten pro Block zu halten.

Diese Berechnung wird hier erweitert :

Die Bitcoin-Schwierigkeit begann bei 1 (und kann nie darunter fallen). Dann werden für alle gefundenen 2016-Blöcke die Zeitstempel der Blöcke verglichen, um herauszufinden, wie viel Zeit es gedauert hat, 2016-Blöcke zu finden, nennen wir es T. Wir wollen, dass 2016-Blöcke 2 Wochen dauern, also multiplizieren wir, wenn T unterschiedlich ist die Schwierigkeit um (2 Wochen / T) - auf diese Weise dauert es, wenn die Hashrate so bleibt, wie sie war, jetzt 2 Wochen, um 2016-Blöcke zu finden.

Wenn es beispielsweise nur 10 Tage gedauert hat, bedeutet dies, dass der Schwierigkeitsgrad zu niedrig ist und daher um 40 % erhöht wird.

Aber wer macht das? Ist es ein kollektives Eigentum des Clusters? Ist es der Server? Was gibt dem Server die Befugnis, dies zu bestimmen?

Meine Frage ist: Was ist der Mechanismus, durch den das „System“ die Schwierigkeit beim Finden von Blöcken so anpasst, dass im Durchschnitt alle 10 Minuten einer gefunden wird?

EDIT: Ich glaube nicht, dass die Frage ("Wie wird die Schwierigkeit des Bitcoin-Mining propagiert?") ein Duplikat ist - weil sie das Implementierungsproblem nicht erklärt - was der Kern meiner Frage ist.

Antworten (2)

Dies wird durch die Tatsache erzwungen, dass jeder Miner und jeder Bitcoin-Benutzer eine Software ausführt, die den von Ihnen beschriebenen Anpassungsalgorithmus implementiert. So kann jeder berechnen und zustimmen, was die aktuelle Schwierigkeit sein soll. Dies ist der Begriff des „Konsenses“, auf den sich Bitcoin stützt.

Wenn ein Miner einen Block mit einer Schwierigkeit erstellt hat, die niedriger als der „richtige“ aktuelle Wert ist, würde der Rest des Netzwerks ihn ablehnen. Die von diesem Block erstellten Münzen würden von niemand anderem als Zahlung akzeptiert, wodurch sie effektiv wertlos würden, und die in diesem Block enthaltenen Transaktionen würden von niemand anderem als bestätigt angesehen (obwohl sie später noch zu einem anderen gültigen Block hinzugefügt werden könnten). . Andere Miner würden diesen Block nicht als „vorherigen“ für ihre eigenen Blöcke verwenden und würden daher nicht in die Blockchain aufgenommen.

Jeder einzelne Knoten führt die Berechnung der Schwierigkeitsanpassung durch. Da die Berechnung auf Daten basiert, die sich bereits in der Blockchain befinden, ist die Schwierigkeitsberechnung für alle gleich; es gibt kein Element der Zufälligkeit. Es ist deterministisch, sodass jeder einzelne Knoten zu derselben Schlussfolgerung hinsichtlich der Schwierigkeit für den nächsten Block kommt.