Jump to content

Verständnisfragen zur Berechnung: Diffculty, Hashrate, Nonce


Recommended Posts

Liebes Forum, 

ich hoffe hier kann mir jemand etwas weiterhelfen. Ich bin absoluter Anfänger und bitte um Gnade.  
Ich versuche grade zu verstehen, wo genau die Schwierigkeit im Mining liegt. 

Kann mir vielleicht jemand an einem Beispiel weiter helfen: 
Block 570047
Aktuelle Hashrate liegt bei 44 EH/s
Difficulty des Blocks war: 6 379 265 451 411

Nach dem was ich gefunden habe sind also für die Berechnung: D * 2^32 Hashs, also 2,73*10^22 Hashs nötig, soweit richtig? 

Nun etwas tiefer: 
1. Wenn ich es richtig verstanden habe (Bitte um Korrektur!) ist das Ziel einen Hashwert zu finden, der der aktuellen Difficulty entspricht, bzw. diese unterbietet. 
Wie leite ich jetzt aus der Difficulty einen Hashwert hab, der mindestens erreicht werden muss? 

2. Das eigentliche Hashen geschieht mittels Veränderung der Nonce. Diese ist ein 32 Bit Feld und liegt damit im Bereich zwischen 0 und 2^32 = 4294967296 = 4,29 * 10^9 
Wenn die anderen Parameter des Blocks nicht geändert werden, können mit der Veränderung der Nonce allein also garnicht alle nötigen Berechnungen durchgeführt werden? 

Vielen Dank für Eure Hilfe!

Edited by foin95
Formatierung
Link to comment
Share on other sites

vor 2 Stunden schrieb foin95:

Nach dem was ich gefunden habe sind also für die Berechnung: D * 2^32 Hashs, also 2,73*10^22 Hashs nötig, soweit richtig? 

Nein, eine Anzahl der benötigen Hash´s kann nicht vorausbestimmt werden.

vor 2 Stunden schrieb foin95:

Nun etwas tiefer: 
1. Wenn ich es richtig verstanden habe (Bitte um Korrektur!) ist das Ziel einen Hashwert zu finden, der der aktuellen Difficulty entspricht, bzw. diese unterbietet. 

Das Ziel ist einen Block zu finden deren Hash SHA-256² den aktuellen Schwierigkeitsgrad min. erreicht. (führende Nullen)

vor 2 Stunden schrieb foin95:

Wie leite ich jetzt aus der Difficulty einen Hashwert hab, der mindestens erreicht werden muss? 

Der Hash (SHA-256²) wird von dem Block gebildet, den man an die Blockchain anhängen will, nicht von der "Difficulty".

vor 2 Stunden schrieb foin95:

2. Das eigentliche Hashen geschieht mittels Veränderung der Nonce. Diese ist ein 32 Bit Feld und liegt damit im Bereich zwischen 0 und 2^32 = 4294967296 = 4,29 * 10^9 
Wenn die anderen Parameter des Blocks nicht geändert werden, können mit der Veränderung der Nonce allein also garnicht alle nötigen Berechnungen durchgeführt werden? 

Nein, ein Hash geschieht mit einem Hash-Algorithmus z.B. SHA-256. Mit der Veränderung der Nonce können nun mehrere verschiedene SHA-256² Hash´s erzeugt werden.
Falls dieses 4Byte Feld für die Nonce im Block-Header nicht reicht, gibt es noch einen zweiten Parameter dafür. Weis ich aber jetzt auch nicht so aus dem Kopf wo der ist.

Edit: Hab jetzt doch nachgeschaut.
Es gibt ein "extraNonce" Feld innerhalb der ersten Transaktion des Blockes, welches dafür genutzt wird.

Näheres hier:  https://en.bitcoin.it/wiki/Block_hashing_algorithm

Edited by MixMax
Link to comment
Share on other sites

vor 2 Stunden schrieb foin95:

Wie leite ich jetzt aus der Difficulty einen Hashwert hab, der mindestens erreicht werden muss? 

Vorweg: Auf diesem Gebiet bin ich auch kein Profi ...

Hier ist Dein Block: https://www.blockchain.com/de/btc/block-height/570047

Und das ist der erfolgreich gefundene Hashwert: 0000000000000000000ffb0b75e32c361772de3c3fdf9c6c8ef7c935a2259a8c

Die Difficulty besagt nun lediglich wieviel 0-Bits zu Beginn eines Blockhashes stehen müssen damit dieser gültig ist.

Der Blockhash ist auch nur der gesamte Block + die Nonce durchgehasht. 

Je größer die Difficulty, desto mehr 0-Bits müssen zu Beginn des Hashes stehen.
Je mehr 0-Bytes vorne stehen müssen, desto mehr Nonce-Werte müssen "zur Verfügung stehen" um auf einen gültigen Hashwert zu kommen.
Je mehr Nonce-Werte "durchprobiert" werden müssen, desto länger dauert die Berechnung
Je länger die Berechnung des Durchprobierens dauert, desto mehr Hash-Leistung ist erforderlich um binnen zehn Minuten einen gültigen Block zu erzeugen.
 

(hoffentlich liege ich nicht allzu falsch ?!?)

Edited by Jokin
Link to comment
Share on other sites

Passt nach meiner Einschätzung  @Jokin

Einfach ausgedrückt läuft es doch so:
Nehmen wir mal an die "difficulty" sind 19 Nullen vorne wie im Beispiel.
Man hash´t nun den ganzen Block, den man gerne hätte 2 mal mit SHA-256. (2 mal, weil die paranoiden Entwickler gerne alles doppelt machen:lol: ).
Dann schaut man sich die ersten Zahlen an. Sind es 19 Nullen? Fertig, Feierabend. :cool:
Wenn nicht, Nonce++ dann noch mal hashen usw.

Edit: Weil ich ahne, dass jetzt wieder die Besserwisser aus den Ecken gekrabbelt kommen und wild anfangen mit Worten wie "hashMerkleRoot" und "Blockheader" um sich zu werfen, hier der Hinweis: Dies ist nur eine für Anfänger geeignete schemenhafte Darstellung des Minings, deren Einzelheiten aber etwas anders und komplexer sind.

Genauere Infos dazu gibt es auf der Wikipedia-Seite: https://en.bitcoin.it/wiki/Block_hashing_algorithm

Edited by MixMax
Link to comment
Share on other sites

Man kann zwar nicht ausrechnen wieviele Hashes man tatsächlich für einen Block berechnen muss, aber man kann es statistisch vorhersagen. Ich glaube das meint foin95.

Deine Rechnung macht auf den ersten Blick für mich Sinn. Kurzum: Mit 32 Bit kann man statistisch nur zu 50% einen Hash finden der mindestens 32 Nullen (in Bit) hat.Die aktuelle Difficulty verlangt aber 80 Nullen in Bits (20 in Hex).

Es gibt aber noch andere Möglichkeiten als die Nonce den Hash zu verändern: z..B. die Coinbase also die erste Transaktion des Blocks. Dort kann der Miner auch noch Zufallszahlen unterbringen (z.B. durch einen OP_RETURN Output) und damit neue Hashwert-Bereiche erschließen.

Edited by Tschaul
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.