Zum Inhalt springen
uencoder

Merkle Tree

Ein Merkle-Baum legt Daten-Hashes in den Blättern und Hashes der Kinder in inneren Knoten ab und ermöglicht effiziente Integritätsprüfung großer Daten; er wird in Git und Blockchains verwendet.

Zweck

Integritätsprüfung großer Datenmengen effizient und auf konkrete Datenblöcke lokalisierbar machen.

Mechanismus

Die Blätter halten die Hashes der Datenblöcke H(d_i). Innere Knoten hashen die Verkettung ihrer Kinder, H(left||right). Der Root-Hash steht für das Ganze. Die Prüfung eines Blocks erfordert nur die O(log n) Geschwister-Hashes entlang des Pfads von der Wurzel zum Blatt (ein Merkle-Proof). Jede Änderung an einem Datenblock verändert den Root-Hash.

Anwendungsfälle

  • Verifikation des Git-Objektbaums
  • Verifikation von Blockchain-Transaktionen
  • IPFS-Content-Adressierung
  • Konsistenz verteilten Speichers

Beispiele

  • Eingabe
    4 data blocks → a 2-level Merkle tree
    Output
    The root hash represents all of them

    O(log n) verification

Häufige Fehler

Weak hashes enable collision forgery
Use a secure hash such as SHA-256

Verwandte Begriffe

Verwandte Tools

References