Zur Blockvalidierung in der Blockchain

Im Mining-Prozess validieren die Miner den Block auf der Grundlage von Arbeitsnachweisen oder mithilfe eines anderen Konsensmechanismus. Miner validieren den Block auch. In diesem Validierungsprozess validieren Miner also nur den Hash-Wert des aktuellen Blocks (oder) sie validieren die gesamten Transaktionen und validieren dann den Hash-Wert des aktuellen Blocks. Bitte klären Sie dies ab.

Aber wie sie jede Transaktion aus dem Blockheader überprüfen.

Antworten (1)

Vollständige Knoten validieren alles. Ein Miner muss einen vollständigen Knoten ausführen. Nicht alle Full Nodes sind Miner, aber alle Miner sind Full Nodes.

Ein vollständiger Knoten validiert alles in einem Block; es validiert die Transaktionen, es prüft, ob der Blockheader korrekt ist, und es prüft, ob der Proof of Work korrekt ist. Im Validierungsprozess werden Full Nodes (und damit Miner) also überprüfen, ob das PoW gültig ist (Hash des Blockheaders ist kleiner als das Ziel), dass der Blockheader korrekt ist (enthält das richtige Ziel, Merkle Root usw. ). Dann prüfen sie, ob jede einzelne Transaktion vorhandene UTXOs ausgibt, prüfen, ob die Skripte als wahr validiert werden, und prüfen, ob die Ausgabebeträge gültig sind (kleiner oder gleich den Eingabebeträgen). Sie werden auch prüfen, ob die Coinbase-Transaktion die berechnete maximale Auszahlung für den Block auszahlt (Subvention + Transaktionsgebühren).

Aber wie sie jede Transaktion aus dem Blockheader überprüfen
Blöcke sind mehr als nur der Header, sie enthalten Transaktionen. Die Transaktionen werden zusammen mit dem Blockheader gesendet, um einen ganzen Block zu bilden.
Wenn ich also sage, dass Knoten A einen Block (B) hat und andere Knoten X, Y, Z den Block B validieren möchten, muss Knoten A den Block B an die Knoten X, Y, Z senden. Dieser Block B enthält den Hash des vorherigen Blocks, den Zeitstempel, die Nonce und die Merkele-Wurzel, wobei die Merkle-Wurzel aus der Liste der Transaktionen erstellt wird. Knoten A sendet also die gesamten Dinge, einschließlich der Liste der Transaktionen, an andere Knoten X, Y, Z, oder Knoten A sendet nur den Block ohne die Liste der Transaktionen für den Validierungsprozess
Im Allgemeinen sendet Knoten A den gesamten Block B mit all seinen Transaktionen an die Knoten X, Y und Z.
Wenn also Knoten A die Transaktionen mit Blockheader an andere Knoten X, Y, Z sendet, dann ist es immer möglich, dass jemand unterwegs die Transaktionen so temperiert, wie andere Knoten die Transaktion validieren.
Wenn eine Transaktion manipuliert wird, stellen die Knoten X, Y und Z fest, dass die Transaktion ungültig ist. Sie validieren es auf die gleiche Weise, schließen nur mit einem anderen Ergebnis ab.