Marktkapitalisierung: 24h Vol: BTC: BTC Dom:
Gold: S&P 500: EUR/USD: Öl (BRENT):

Merkle Root

Jeder Block einer Blockchain speichert seine Merkle Root im Block Header, zusammen mit dem Hash des vorherigen Blocks, einem Zeitstempel und einer Nonce. Sie fungiert als Fingerabdruck für sämtliche Transaktionen im Block: Ändert sich auch nur eine einzige Transaktion, entsteht eine völlig andere Root, und der Block wird sofort ungültig.

Die Root entsteht, indem die Hashes der Transaktionen paarweise zusammengefasst und gemeinsam gehasht werden. Dieser Vorgang wird Ebene für Ebene mit den entstehenden Hashes wiederholt, bis nur noch ein einziger Wert an der Spitze des Baums übrig bleibt. Bei Bitcoin geschieht dies mit SHA-256, das pro Paarung zweimal angewendet wird. Empfängt ein Node einen neuen Block, berechnet er die Root anhand der enthaltenen Transaktionen neu und verwirft den Block sofort, falls das Ergebnis nicht mit dem Wert im Header übereinstimmt.

Diese Struktur macht eine leichtgewichtige Verifizierung möglich. Eine Wallet, die nicht die gesamte Blockchain speichert, oft SPV- oder Light-Client genannt, kann ausschließlich Block Header herunterladen und trotzdem bestätigen, dass eine Transaktion enthalten ist, indem sie einen kurzen "Merkle-Beweis" anfordert: die kleine Menge benachbarter Hashes, die nötig ist, um den Pfad von dieser Transaktion bis zur Root neu zu berechnen. Da die Größe dieses Beweises logarithmisch mit der Anzahl der Transaktionen wächst, genügen für die Prüfung eines Blocks mit tausenden Transaktionen nur wenige Hashes statt des gesamten Datensatzes.

  • Garantiert Datenintegrität: Jede Manipulation des Blockinhalts verändert die Merkle Root und bricht die Kette der Block-Hashes.
  • Ermöglicht effiziente Audits und Verifizierung durch Light Clients ohne Full Nodes.
  • Bildet die Grundlage der Simplified Payment Verification, die von mobilen und Hardware-Wallets genutzt wird.

Dasselbe Prinzip reicht über Transaktionen hinaus: Manche Netzwerke bauen separate Merkle-Bäume für State oder Receipts auf, wodurch Anwendungen bestimmte Fakten über einen Block belegen können, ohne alles darin zu verarbeiten.