Wie hängen Nonce und Schwierigkeit zusammen?

Guten Morgen,

Ich lese über die Blockchain-Technologie, aber ich habe ein paar Fragen zu Nonce, auf die ich keine Antworten finden kann. Ich hoffe, jemand hier kann sie beantworten.

i) Wie wird die Schwierigkeit der Nonce geändert, um sie an die verfügbare Rechenleistung anzupassen? Was ist der Mechanismus, der überprüft, ob dies geschehen sollte und wie?

ii) Was hindert einen Code-versierten Miner daran, die Schwierigkeit seiner generierten Nonce in etwas Einfaches zu ändern, damit er derjenige ist, der den Block in der Blockchain platziert und die geschürften Coins gewinnt?

Ich finde dieses Thema ziemlich faszinierend und daher ist jede Hilfe, die ihr leisten könnt, immer sehr willkommen.

Antworten (2)

Die Schwierigkeit bei Bitcoin drückt sich darin aus, dass der Hash eines Bitcoin-Block-Headers numerisch niedriger als ein bestimmtes Ziel sein muss. Dieses Schwierigkeitsziel wird alle 2016 Blöcke um bis zu einen Faktor vier nach oben oder unten zurückgesetzt. Hiermit wird die Schwierigkeit angepasst, dass die durchschnittlich verfügbare Hashrate in den letzten 2016-Blöcken etwa 14 Tage dauern würde, um 2016-Blöcke zu schürfen. Wenn die Blöcke 2016 beispielsweise 10 statt 14 Tage dauern würden, würde sich die Schwierigkeit um den Faktor 1,4 erhöhen.

Die Nonce ist ein Mittel, um schnell viele Blockkandidaten derselben Blockvorlage zu durchlaufen, während die Extra-Nonce ein Mittel ist, um schnell eine geringfügige Änderung an der Blockvorlage vorzunehmen. Jedes Mal, wenn ein neuer Blockkandidat gehasht wird, ist das Ergebnis völlig unvorhersehbar, sodass schließlich ein Blockkandidat die Schwierigkeitsanforderung erfüllen wird. Wenn dies geschieht, sendet der erfolgreiche Miner den neuen Block an das Netzwerk.

Jeder andere Knoten im Netzwerk wird jedoch auch sicherstellen, dass der Block tatsächlich gültig ist. Dazu gehört das Testen der Gültigkeit des Blockhashs aus dem Header sowie das Überprüfen jeder einzelnen Transaktion. Daher könnte ein Miner, der mit einem niedrigeren Schwierigkeitsgrad schürft, einfach einen Block senden, der die Schwierigkeitsanforderungen nicht erfüllt und daher von allen anderen Netzwerkteilnehmern abgelehnt wird.

Die Nonce ist nicht schwierigkeitsbasiert, der Hash des Blocks ist schwierigkeitsbasiert. Zuerst hasht der Miner den Block und prüft, ob der Block gelöst ist. Wenn dies nicht der Fall ist, wird Nonce inkrementiert. Wenn die Nonce überläuft (was häufig der Fall ist), wird der extraNonce-Teil der Transaktion erhöht, wodurch die Merkle-Root und der Block-Hash erneut geändert werden, sodass der Miner fortfährt und den Nonce-Wert erneut durchläuft.

Hier gibt es einige Informationen .

Nichts hindert einen Miner daran, die Schwierigkeit des Blocks, den er abbaut, lokal zu ändern, aber ein solcher Block wird von den anderen Bitcoin-Knoten einfach nicht akzeptiert.