Was ist der Zweck von Merkle Tree in Blöcken?

Die Blätter des Merkle-Baums enthalten den Hash der Transaktionen. Wie werden Transaktionen im Block gespeichert? Was ist der Zweck von Merkle Tree.

Antworten (1)

Btc-Wiki: Merkle-Bäume

Ein Merkle-Baum ist ein Hash-Funktionswert, der verwendet werden kann, um zu validieren, dass jede Information in einem Block authentifiziert werden kann. In diesem Fall validiert er, dass er für jeden Tx und seinen Hash-Wert in keiner Weise manipuliert wurde , Gestalt oder Form.

Lassen Sie uns eine Analogie verwenden: Angenommen, wir haben einen Aktenschrank mit Dateien, jede Datei in numerischer Reihenfolge. Nehmen wir nun an, jede Akte ist mit einem Wachsstempel versiegelt und auf jedem Wachsstempel ist das Datum in Worten geschrieben. Wenn wir das Datum überhaupt geändert haben, machen die Wörter es so, dass es keine Übereinstimmung mehr gibt (1==>7 ist leicht gemacht, aber nicht eins ==> sieben !). Wir sind uns also sicher, dass jede Datei (Tx) echt ist. Nehmen wir nun an, der Aktenschrank hat die Summe der Anzahl der Buchstaben, die in diesen Wörtern auf den Stempeln der Txs verwendet werden. Jede vorgenommene Änderung, sagen wir eins ==> sieben, hat die Summe des Buchstabens geändert, da sieben zwei Buchstaben länger als eins sind. Dies ist eine vereinfachte Analogie dazu, wie Hashes ein Datenelement leicht authentifizieren können.

Um die Analogie weiterzuführen, hat jeder Block (Aktenschrank) ein Kombinationsschloss, das auf den Block (Aktenschrank) davor verweist. So machen geringfügige Änderungen an nur einem einzigen Buchstaben eines einzelnen Tx in einem einzelnen Aktenschrank (Block) das gesamte System ungültig.

Ich empfehle, sich den kryptografischen Hash-Eintrag von Wikipedia anzusehen, um ein tieferes Verständnis zu erlangen, oder Bücher wie Mastering Bitcoin

Aber die Transaktion wird vor dem Mining des Blocks (Eigentum, Nichtabstreitbarkeit, Authentizität) unter Verwendung des öffentlichen Schlüssels und der digitalen Signatur des Absenders verifiziert. Der Transaktionsdatensatz hat seinen eigenen Hash. Warum wird Hash im Merkelbaum gespeichert? Wenn ein Block erfolgreich geschürft wird, kann der Block in Zukunft manipuliert werden?
Sie haben gerade Ihre eigene Frage beantwortet; Die ganze Idee des Merkel-Baumwerts besteht darin, einen nicht manipulierten Block zu validieren. Der Block könnte genauso gut jeden Tx-Hash auflisten, aber einen Hash des Baums zu nehmen, spart viel Platz. Digitale Signaturen und Scripting sind für Ausgaben gedacht, ein völlig anderer Bereich als Miner, die Blöcke validieren. Ja, Miner validieren, dass das Skript korrekt ist, aber denken Sie daran, dass ein Tx nie per se validiert wird, bis es sich in einem Block befindet, der akzeptiert wurde, also ist es genauer zu sagen, dass ein Tx verifiziert wird , während sie den Block abbauen.
Nachdem eine Transaktion empfangen wurde, sollte sie auf Eigentum, Authentizität, Integrität usw. überprüft werden. Dann wird die Transaktion dem Block hinzugefügt. Später wird der Block abgebaut, richtig? Sie sagen also, der Block speichert nicht die Transaktion, sondern nur den Hash der Transaktion im Merkle-Baum? Wo werden dann Transaktionen gespeichert?
@Curious Es gibt keinen Unterschied zwischen diesen beiden Dingen. Es ist nur eine Frage der Semantik, ob Sie die Transaktionen als Teil des Blocks betrachten oder nicht.