Merkle Tree bei Bitcoin: So entsteht die Merkle Root

Lektoriert von
Jake Simmons
 - 

Ein Merkle Tree fasst große Datenmengen in einem einzigen kryptografischen Hash zusammen. In Blockchains ermöglicht diese Baumstruktur kompakte Nachweise, dass eine bestimmte Transaktion oder Information zu einem Datensatz gehört, ohne dafür sämtliche Daten übertragen zu müssen.

Das folgende Inhaltsverzeichnis arbeitet mit Sprungmarken. So gelangst du direkt zum gewünschten Themenabschnitt.

Was ist ein Merkle Tree?

Ein Merkle Tree, auf Deutsch häufig Merkle-Baum oder Hash-Baum genannt, ist eine Datenstruktur zur effizienten und überprüfbaren Zusammenfassung vieler einzelner Datenelemente. Benannt ist sie nach dem Kryptografen Ralph Merkle.

Die Ausgangsdaten werden zunächst mit einer kryptografischen Hashfunktion verarbeitet. Anschließend werden die erzeugten Hashwerte paarweise miteinander kombiniert und erneut gehasht. Dieser Vorgang wiederholt sich über mehrere Ebenen, bis nur noch ein Hash übrig bleibt. Er heißt Merkle Root.

Die Root funktioniert wie ein kompakter Fingerabdruck des gesamten Datensatzes. Bereits eine kleine Änderung an einem enthaltenen Element verändert dessen Hash, die darüberliegenden Zweige und schließlich die Merkle Root. Dadurch lassen sich Manipulationen erkennen, ohne jedes Element dauerhaft miteinander vergleichen zu müssen.

Blätter
Einzelne Daten

Die unterste Ebene enthält Hashes der Transaktionen oder anderer Datenelemente.

Zweige
Kombinierte Hashes

Jeweils zwei Hashes werden verbunden und als neuer Knoten erneut gehasht.

Wurzel
Merkle Root

Der oberste Hash bindet den vollständigen Datensatz kryptografisch zusammen.

Wie ist ein Merkle Tree aufgebaut?

Ein klassischer Merkle Tree ist meist ein binärer Baum. Jeder innere Knoten besitzt zwei untergeordnete Knoten. Die Blätter bilden die unterste Ebene, darüber liegen die Zweige und an der Spitze steht die Root.

Nehmen wir vier Transaktionen mit den Hashes A, B, C und D. A und B werden zusammengefügt und ergeben nach dem Hashing den Knoten AB. Dasselbe geschieht mit C und D zum Knoten CD. Werden AB und CD kombiniert und erneut gehasht, entsteht die Merkle Root ABCD.

Vom Datensatz zur Root

Ebene 1
A · B · C · D
Ebene 2
Hash AB · Hash CD
Merkle Root
Hash ABCD

Die folgende Infografik zeigt den vollständigen Aufbau auf einen Blick. Vier Transaktions-IDs bilden die Blätter, aus denen zunächst zwei Zwischenknoten und anschließend die gemeinsame Merkle Root entstehen.

Aufbau eines Merkle Trees
Infografik zum Aufbau eines Merkle Trees

Die genaue Konstruktion hängt vom jeweiligen Protokoll ab. Bitcoin verwendet für seine Transaktionsbäume doppelte SHA-256-Hashes. Andere Systeme können abweichende Hashfunktionen, Sortierungen oder Baumvarianten nutzen.

Wie entsteht eine Merkle Root?

Bei Bitcoin werden die Transaktions-IDs eines Blocks in ihrer festgelegten Reihenfolge angeordnet. Die Coinbase-Transaktion steht zuerst. Jeweils zwei TXIDs werden als Rohdaten miteinander verbunden und doppelt mit SHA-256 gehasht. Das Ergebnis bildet die nächste Ebene des Baums.

Gibt es auf einer Ebene eine ungerade Anzahl an Hashes, wird bei Bitcoin der letzte Hash dupliziert und mit seiner Kopie kombiniert. Der Prozess läuft weiter, bis nur noch die Merkle Root vorhanden ist. Enthält ein Block ausschließlich die Coinbase-Transaktion, dient deren TXID direkt als Root.

Wichtig: Nicht jede Blockchain baut ihren Merkle Tree nach denselben Regeln auf. Hashfunktion, Reihenfolge, Kodierung und der Umgang mit ungeraden Knoten müssen immer protokollspezifisch geprüft werden.

Welche Rolle spielen Merkle Trees bei Bitcoin?

Bei Bitcoin fasst die Merkle Root sämtliche Transaktionen eines Blocks zusammen. Sie wird im 80 Byte großen Block-Header gespeichert. Dieser Header enthält unter anderem auch den Hash des vorherigen Blocks, einen Zeitstempel und die Nonce für den Proof-of-Work.

Ändert jemand nachträglich eine Transaktion, ändert sich ihre TXID. Dadurch ändern sich alle übergeordneten Hashes und schließlich die Merkle Root im Block-Header. Weil der Header in den Proof-of-Work und die Verkettung nachfolgender Blöcke eingebunden ist, wäre die Manipulation unmittelbar erkennbar.

Merkle Trees machen außerdem das Mining effizienter. Wird die Coinbase-Transaktion über eine Extra Nonce verändert, müssen nicht alle Transaktionen neu verarbeitet werden. Es reicht, den betroffenen Pfad des Baums bis zur Root neu zu berechnen.

Bestandteil Funktion
TXID Identifiziert eine Bitcoin-Transaktion und bildet ein Blatt des Baums.
Zwischenhash Verbindet zwei untergeordnete Knoten mit der nächsten Ebene.
Merkle Root Bindet alle Blocktransaktionen an einen einzigen Hash im Block-Header.
Merkle Branch Liefert die erforderlichen Nachbarhashes für einen kompakten Einschlussnachweis.

Merkle Proofs und vereinfachte Zahlungsprüfung

Ein Merkle Proof belegt, dass ein bestimmtes Element Teil eines Merkle Trees ist. Dafür werden nicht sämtliche Blätter benötigt. Der Prüfer braucht lediglich den Hash des gesuchten Elements und die Nachbarhashes entlang des Pfads bis zur Root.

Der Aufwand wächst logarithmisch. Bei 1.024 Blättern sind für einen einfachen Einschlussnachweis nur zehn Baumebenen erforderlich. Der Prüfer berechnet mit den gelieferten Nachbarhashes schrittweise die Root und vergleicht sie mit dem bekannten Wert.

Im Bitcoin-Whitepaper bildet dieses Prinzip die Grundlage für Simplified Payment Verification, kurz SPV. Ein schlanker Client kann Block-Header speichern und sich über eine Merkle Branch nachweisen lassen, dass eine Transaktion in einem bestimmten Block enthalten ist.

Die nachfolgende Infografik verdeutlicht den Effizienzgewinn. Für den Nachweis einer Transaktion werden nur die Nachbarhashes entlang ihres Pfads zur Root benötigt, während alle übrigen Zweige unberücksichtigt bleiben können.

So funktioniert ein Merkle Proof
So funktioniert ein Merkle Proof: Prüfen, ohne alle Daten zu übertragen

Ein Einschlussnachweis ist keine vollständige Validierung

Ein Merkle Proof bestätigt die Zugehörigkeit eines Elements zur Datenstruktur. Er beweist allein weder die inhaltliche Richtigkeit der Transaktion noch die vollständige Einhaltung aller Konsensregeln. Dafür ist weiterhin eine umfassendere Prüfung durch Full Nodes erforderlich.

Wo werden Merkle Trees noch eingesetzt?

Merkle Trees sind nicht auf Bitcoin beschränkt. Ethereum nutzt in seiner Ausführungsschicht Merkle-Patricia-Tries, um Schlüssel-Wert-Paare wie Kontostände und Contract-Speicher kryptografisch nachprüfbar zusammenzufassen. Gleiche Zustände führen dabei zu derselben Root, Änderungen zu einer neuen Root.

Bei Taproot dienen Merkle-Zweige dazu, alternative Bitcoin-Skripte zu organisieren. Beim Ausgeben über einen Skriptpfad muss nur die tatsächlich genutzte Bedingung samt Nachweis offengelegt werden. Unbenutzte Skriptzweige können verborgen bleiben.

Auch Rollups, Airdrops, Whitelists, Proof-of-Reserves-Systeme, verteilte Dateisysteme und Transparenzprotokolle verwenden Merkle-basierte Nachweise. Die konkrete Sicherheit hängt jedoch stets von der Datenquelle, der Baumkonstruktion und dem Verfahren ab, mit dem die Root veröffentlicht oder abgesichert wird.

Vorteile von Merkle Trees

Kompakte Nachweise

Zur Prüfung eines einzelnen Elements genügt ein kleiner Teil des Baums. Das reduziert Speicherbedarf und Datenübertragung.

Schnelle Integritätsprüfung

Änderungen an Blättern wirken sich bis zur Root aus und lassen sich dadurch zuverlässig erkennen.

Gute Skalierbarkeit

Mit wachsender Datenmenge steigt die Länge eines Einschlussnachweises nur logarithmisch.

Grenzen und häufige Missverständnisse

Ein Merkle Tree verschlüsselt keine Daten. Hashes können Inhalte kompakt binden, verbergen die zugrunde liegenden Informationen aber nicht automatisch. Datenschutz entsteht erst durch zusätzliche Verfahren oder dadurch, dass bestimmte Daten gar nicht veröffentlicht werden.

Die Root sagt außerdem nichts darüber aus, ob die eingespeisten Daten wahr oder vollständig sind. Wer einen fehlerhaften Datensatz korrekt hasht, erhält eine technisch gültige Root für falsche Daten. Merkle-basierte Proof-of-Reserves-Nachweise belegen daher ohne zusätzliche Prüfung nicht automatisch die Solvenz eines Unternehmens.

Schließlich müssen Prüfer der verwendeten Hashfunktion und der Implementierung vertrauen können. Fehler bei Sortierung, Kodierung, Duplizierung oder Baumkonstruktion können dazu führen, dass zwei Systeme trotz gleicher Ausgangsdaten unterschiedliche Roots berechnen.

Merkle Trees verbinden Effizienz mit überprüfbarer Datenintegrität

Merkle Trees reduzieren große Datensätze auf eine einzige Root und ermöglichen kompakte Nachweise für einzelne Elemente. Bei Bitcoin verbinden sie sämtliche Blocktransaktionen mit dem Block-Header und bilden die technische Grundlage für Merkle Proofs und SPV.

Die Struktur beweist jedoch nur die Zugehörigkeit und Unverändertheit von Daten innerhalb eines definierten Baums. Ob die Ausgangsdaten korrekt sind und sämtliche Regeln erfüllen, muss durch weitere Prüfungen geklärt werden.

Häufige Fragen zu Merkle Trees

Kompakte Antworten zu Merkle Roots, Proofs und ihrer Bedeutung für Blockchains.

Was ist ein Merkle Tree einfach erklärt?

Ein Merkle Tree ist eine Baumstruktur aus Hashwerten. Sie fasst viele Datenelemente in einer einzigen Merkle Root zusammen und erlaubt kompakte Nachweise für einzelne Elemente.

Was ist die Merkle Root?

Die Merkle Root ist der oberste Hash eines Merkle Trees. Sie hängt von allen enthaltenen Blättern ab und verändert sich, sobald sich ein gebundenes Datenelement ändert.

Was beweist ein Merkle Proof?

Er beweist, dass ein bestimmtes Element zu einem Baum mit einer bekannten Root gehört. Er bestätigt nicht automatisch, dass der Inhalt wahr oder nach allen Protokollregeln gültig ist.

Warum nutzt Bitcoin Merkle Trees?

Bitcoin kann damit sämtliche Transaktionen eines Blocks an einen Hash im Block-Header binden. Gleichzeitig werden kompakte Einschlussnachweise für einzelne Transaktionen möglich.

Sind Merkle Trees nur für Blockchains geeignet?

Nein. Sie werden auch in verteilten Speichersystemen, Softwareverteilung, Transparenzprotokollen und weiteren Anwendungen eingesetzt, in denen Datenintegrität effizient nachweisbar sein soll.

KI-Hinweis: Dieser Beitrag wurde mithilfe künstlicher Intelligenz strukturiert und anschließend redaktionell geprüft, fachlich eingeordnet sowie überarbeitet.