Egal wie hoch die Schwierigkeit ist (oder wie niedrig das Ziel ist), ich verstehe nicht, wie das Bitcoin-Netzwerk durchschnittlich 10 Minuten braucht, um jeden Block zu lösen.
Für jeden gegebenen Blockheader gibt es nur 2^32 mögliche Werte für die Nonce. Selbst wenn wir berücksichtigen, dass der Zeitstempel beispielsweise um bis zu 1 Stunde geändert werden kann, sind das 3600 x 2^32 mögliche Kombinationen, was ungefähr 1,5e13 entspricht
Auf blockchain.info heißt es, dass die aktuelle Hash-Rate des Netzwerks 7.991.378.504 GH/s beträgt, was bedeutet, dass jede Sekunde mehrere Größenordnungen mehr Hashes berechnet werden als die Anzahl möglicher Hashes, die sich aus dem aktuellen Block-Header ergeben können .
Howcome-Blöcke werden also nicht in nur wenigen Sekunden gelöst, sondern dauern stattdessen etwa 10 Minuten?
Ich verstehe, dass Bergleute so viele Transaktionen wie möglich in einen Block aufnehmen wollen, um die Gebühren zu erheben, also könnte man argumentieren, dass es am besten ist, zu warten, bis es viele Transaktionen in einem Block gibt, bevor man ihn löst. Aber selbst das macht keinen Sinn, denn es gibt sowieso absolut nichts zu verlieren, wenn man jeden Block so schnell wie möglich löst.
Mining funktioniert grundsätzlich so:
Miner sammeln Transaktionen und versuchen dann, durch Brute-Forcing-Nonces einen gültigen Block zu erstellen. Die Schwierigkeit, einen Block zu erstellen, hängt mit dem maximalen Hash-Wert zusammen, den ein gültiger Block haben kann.
Zum Beispiel hat der aktuelle Blockchain-Kopf (während er dies postet) einen Block-Hash von 00000000000000000077d9c18fdbd5cf45b2652fe6db9089558eb8fc9fc3b397. Wie Sie sehen können, hat es viele führende Nullen, da die meisten Hashes über diesem Wert zurückgewiesen werden. Mit den 2^32-Nonce-Werten und anderen Header-Feldern können Sie nicht genügend Blöcke ausprobieren, um wahrscheinlich einen Block-Hash zu treffen, der klein genug ist. Miner tauschen einige Bytes in Transaktionen (normalerweise in der Coinbase), um noch mehr neue Blockkandidaten zu erstellen.
Darüber hinaus werden verschiedene Miner verschiedene Blöcke ausprobieren, da sie unterschiedliche Empfänger der Coinbase-Transaktionen haben sollten.
Eduard Eisenberg
Greg Hewgill
Leonidaz0r
Leonidaz0r