Bitcoin-Block-Hashing-Algorithmus. einmal [geschlossen]

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.

-1 Bitte stellen Sie nur zu einem Thema pro Fragebeitrag.

Antworten (1)

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 hashMerkleRootist das nicht wirklich konstant.

Ich denke auch, dass es ein extranonceFeld gibt, das mehr Platz hinzufügt.

Sie können überhaupt keinen Block ohne Transaktionen erstellen. Jeder Block benötigt eine Coinbase-Transaktion, die Gebühren und Subventionen für den Miner fordert. Aus diesem Grund kann die Merkle-Wurzel niemals emotional sein. Außerdem befindet sich die extraNonce innerhalb dieser Transaktion, sodass sie den Block-Header über die Merkle-Wurzel beeinflusst.
@PieterWuille danke, ich habe diesen Teil meiner Antwort entfernt. Vielleicht können Sie auf die Frage der Transaktionen genauer antworten, da ich mir dessen auch nicht bewusst war.
@PeterWuille Könnten Sie mich bitte auf eine Dokumentation über extraNonce und das Generieren von MerkleRoot verweisen.
@Htaras die Extranonce ist hier dokumentiert: en.bitcoin.it/wiki/Transactions#Generation Miner neigen auch dazu, mit der Blockzeit zu spielen, um zusätzliche Zufälligkeit hinzuzufügen, insbesondere beim Pool-Mining. Dies ist einer der Gründe, warum die Blockzeiten ein wenig allgegenwärtig sind.