Das ist die Frage, warum ein Block einen Merkle-Root-Hash haben muss, denn wenn ein Block abgebaut ist, wird der Hash-Wert dieses Blocks im Header des nächsten gespeichert, sodass die Kette generiert wird.
Werden einige Daten geändert, ist der Hash nicht derselbe, sodass möglicherweise festgestellt wird, dass einige Daten geändert wurden.
Ich sehe also, dass das Speichern des Merkle-Root-Hashes im Header eines Blocks unnütz ist, da es dasselbe tut wie der Hash-Zeiger des nächsten Blocks der Kette
Jeder Transaktion ist ein Hash zugeordnet. In einem Block werden alle Transaktions-Hashes im Block selbst gehasht (manchmal mehrmals – der genaue Prozess ist komplex), und das Ergebnis ist die Merkle-Wurzel.
Mit anderen Worten, die Merkle-Root ist der Hash aller Hashes aller Transaktionen im Block. Die Merkle-Wurzel ist ein Teil des Block-Headers . Mit diesem Schema ist es möglich, sicher zu verifizieren, dass eine Transaktion vom Netzwerk akzeptiert wurde (und die Anzahl der Bestätigungen zu erhalten), indem nur die kleinen Blockheader und der Merkle-Baum heruntergeladen werden – das Herunterladen der gesamten Blockkette ist nicht erforderlich. Diese Funktion wird derzeit in Bitcoin nicht verwendet, wird aber in Zukunft verwendet.
UPDATE: Diese Funktion wird derzeit von leichten Bitcoin-Clients verwendet
"Werden einige Daten geändert, ist der Hash nicht derselbe, sodass es möglich ist, zu bemerken, dass einige Daten geändert wurden."
Ja, wenn einige Daten geändert werden, wird der Merkle-Root-Hash anders sein.
Chytrik
david.t_92