ETFFIN Finance >> Finanzbildung >  >> Kryptowährung >> Blockchain

Merkle-Baum

Was ist ein Merkle-Baum?

Ein Merkle-Baum ist eine Datenstruktur, die in Informatikanwendungen verwendet wird. Bei Bitcoin und anderen Kryptowährungen Merkle-Bäume dienen dazu, Blockchain-Daten effizienter und sicherer zu verschlüsseln.

Sie werden auch als "binäre Hashbäume" bezeichnet.

Den Merkle-Baum abbauen

In der Blockchain von Bitcoin ein Block von Transaktionen durchläuft einen Algorithmus, um einen Hash zu generieren, Dies ist eine Folge von Zahlen und Buchstaben, die verwendet werden kann, um zu überprüfen, ob ein bestimmter Datensatz mit dem ursprünglichen Satz von Transaktionen übereinstimmt. aber nicht um den ursprünglichen Satz von Transaktionen zu erhalten. Die Software von Bitcoin führt nicht den gesamten Transaktionsdatenblock – der im Durchschnitt 10 Minuten an Transaktionen darstellt – gleichzeitig über die Hash-Funktion aus. jedoch. Eher, jede Transaktion wird gehasht, dann wird jedes Transaktionspaar verkettet und gehasht, und so weiter, bis es einen Hash für den gesamten Block gibt. (Bei einer ungeraden Anzahl von Transaktionen, eine Transaktion wird verdoppelt und ihr Hash wird mit sich selbst verkettet.)

Visualisiert, diese Struktur ähnelt einem Baum. Im Diagramm unten, "T" bezeichnet eine Transaktion, "H" ein Hash. Beachten Sie, dass das Bild stark vereinfacht ist; ein durchschnittlicher Block enthält über 500 Transaktionen, nicht acht.

Bild von Julie Bang © Investopedia 2020

Die Hashes in der unteren Reihe werden als "Blätter, " die Zwischen-Hashes als "Zweige, " und den Hash oben als "root". Der Merkle-Root eines bestimmten Blocks wird im Header gespeichert:die Merkle-Wurzel von Block #482819 ist e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Die Wurzel wird mit anderen Informationen (der Softwareversion, der Hash des vorherigen Blocks, der Zeitstempel, das Schwierigkeitsziel, und die Nonce) und dann eine Hash-Funktion durchlaufen, um den eindeutigen Hash des Blocks zu erzeugen:000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 im Fall von Block #482819. Dieser Hash ist nicht wirklich im entsprechenden Block enthalten, aber der nächste; es unterscheidet sich von der Merkle-Wurzel.

Der Merkle-Baum ist nützlich, da er es Benutzern ermöglicht, eine bestimmte Transaktion zu überprüfen, ohne die gesamte Blockchain herunterzuladen (über 350 Gigabyte Ende Juni 2021). Zum Beispiel, sagen, dass Sie diese Transaktion bestätigen wollten T D ist im Block im obigen Diagramm enthalten. Wenn Sie den Root-Hash (H A B C D E F G H ), der Prozess ist wie ein Sudoku-Spiel:Sie fragen das Netzwerk nach H D , und es gibt H . zurück C , h AB, und H E F G H . Mit dem Merkle-Baum können Sie überprüfen, ob alles mit drei Hashes berücksichtigt wird:gegebenes H AB , h C , h E F G H, und die Wurzel H A B C D E F G H , h D (der einzige fehlende Hash) muss in den Daten vorhanden sein.

Bild von Julie Bang © Investopedia 2020

Merkle-Bäume sind nach Ralph Merkle benannt, der sie 1987 in einem Papier mit dem Titel "A Digital Signature Based on a Conventional Encryption Function" vorgeschlagen hat. Merkle hat auch das kryptografische Hashing erfunden.