foin95 Posted April 3, 2019 Share Posted April 3, 2019 (edited) 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 April 3, 2019 by foin95 Formatierung Link to comment Share on other sites More sharing options...
MixMax Posted April 3, 2019 Share Posted April 3, 2019 (edited) 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 April 3, 2019 by MixMax Link to comment Share on other sites More sharing options...
Jokin Posted April 3, 2019 Share Posted April 3, 2019 (edited) 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 April 3, 2019 by Jokin Link to comment Share on other sites More sharing options...
MixMax Posted April 3, 2019 Share Posted April 3, 2019 (edited) 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 ). Dann schaut man sich die ersten Zahlen an. Sind es 19 Nullen? Fertig, Feierabend. 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 April 3, 2019 by MixMax Link to comment Share on other sites More sharing options...
battlecore Posted April 4, 2019 Share Posted April 4, 2019 Extranonce-Subscription machen manche Pools, wird dann angezeigt im Miner oder in der Statistik auf der Seite vom Pool. Wie das so detailliert ist weiß ich aber auch nicht, hauptsache ich bekomme meine Coins Link to comment Share on other sites More sharing options...
Tschaul Posted April 4, 2019 Share Posted April 4, 2019 (edited) 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 April 4, 2019 by Tschaul Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now