Bezugnehmend auf das Bitcoin-Wiki , was ist die maßgebliche Quelle für die Bereitstellung eines Hashs des vorherigen Blocks? Oder hören Miner weiterhin auf die neuesten Blöcke?
Wie wird Hash der Merkle-Wurzel generiert?
Kann ein Miner einen Block ohne Transaktionen generieren? Das bedeutet, dass ein Block generiert wird, indem die Hash-Merkle-Root als Nullen beibehalten wird.
Noch eine Frage: Die Nonce-Größe beträgt nur vier Bytes (32 Bit). Bei gegebener Version, previousBlockHash, hashMerkleRoot, Bits sind konstant, wäre es nicht sehr einfach, alle möglichen Nonces zu durchlaufen?
2^32 = 4 G = 4 G Hash-Maschine kann diese Aufgabe in einer Sekunde erledigen.
Was ist die maßgebliche Quelle für die Bereitstellung des Hashs des vorherigen Blocks? oder hören Miner weiterhin auf die neuesten Blöcke?
Es gibt keine maßgebliche Quelle, das ist der springende Punkt bei Bitcoin. Miner hören weiter auf die neuesten Blöcke, ja. Sie entscheiden selbst, welchen Block sie akzeptieren. Und da alle Bergleute (und Kunden) so programmiert sind, dass sie nur gültige Blöcke akzeptieren (wobei ihr Header-Hash gleich oder kleiner als das aktuelle Ziel ist), erreichen sie bald einen Konsens darüber, welche Blöcke gültig sind.
Noch eine Frage: Die Nonce-Größe beträgt nur 4 Bytes (32 Bit). Bei gegebener Version, previousBlockHash, HashMerkleRoot, Bits sind konstant, wäre es nicht sehr einfach, alle möglichen Nonces zu durchlaufen? 2^32 = 4 GB = 4 GB Hash-Maschine kann diese Aufgabe in einer Sekunde erledigen.
Meistens reicht diese 4-Byte-Nonce nicht aus, um einen Block zu finden. Miner fügen ständig neue Transaktionen hinzu - daher hashMerkleRoot
ist das nicht wirklich konstant.
Ich denke auch, dass es ein extranonce
Feld gibt, das mehr Platz hinzufügt.
Murch