Was ist ein Merkle-Tree? Ratgeber für Anfänger zu dieser Blockchain-Komponente

Merkle-Bäume sind ein wesentlicher Bestandteil des blockchains, die die Grundlage Ihrer Funktion. Sie ermöglichen eine effiziente und sichere Prüfung von großen Daten-Strukturen, und im Falle der blockchains, potenziell grenzenlosen Daten-sets.

Die Umsetzung der Merkle Bäume in blockchains hat mehrere Effekte. Es ermöglicht Ihnen, zu skalieren, während auch die Bereitstellung der hash-basierte Architektur für Sie pflegen die Integrität der Daten und einen einfachen Weg, der zum überprüfen der Integrität von Daten. Kryptographische hash-Funktionen sind, die zugrunde liegende Technologie, die es ermöglichen, für Merkle-Bäumen zu arbeiten, also zunächst, es ist wichtig zu verstehen, was kryptografische Hashfunktionen sind.

What is a Merkle Tree

Kryptografische Hash-Funktionen

Inhalt

  • 1 Kryptographische Hash-Funktionen
  • 2 Merkle Bäume und Merkle Beweise
  • 3 Merkle-Bäume in Bitcoin
  • 4 Implementierung des Merkle-Bäume in Andere Blockchains und Systeme
  • 5 Fazit

Einfach ausgedrückt, ist eine hash-Funktion ist eine beliebige Funktion, die verwendet wird, um anzeigen, Daten von einer beliebigen Größe (input) zu einer festen Größe Ausgabe. Ein hashing-Algorithmus angewendet wird, um die Daten-Eingabe und die sich ergebende Feste Länge Ausgabe wird bezeichnet als der hash. Viele hashing-algorithmen sind weitgehend öffentlich verfügbar und können ausgewählt werden, basierend auf Ihre Bedürfnisse.

Der resultierende hash aus der beliebigen Eingabe ist nicht nur fest in der Länge, ist es auch ganz eindeutig an den Eingang und die Funktion selbst ist deterministisch. Das ist, egal wie viele Male Sie die Funktion ausführen, die auf den gleichen input, der output wird immer der gleiche sein. Zum Beispiel, wenn Sie die folgenden Datensätze unten auf der Seite als Eingang, die resultierenden Ausgaben sind einzigartig für jeden Eingang. Beachten Sie, wie in der zweiten und Dritten Beispiele, auch wenn der Unterschied der Eingänge ist nur ein Wort, die daraus resultierenden Ausgänge sind völlig anders. Dies ist sehr wichtig, da es ermöglicht für den „Fingerabdruck“ der Daten.

Eine kryptographische hash-Funktion, Bild aus Wikipedia

Da der output (hash-Summe im Beispiel) die Länge ist immer die gleiche, wie entschlossen, durch den Hash-Algorithmus verwendet, die große Mengen von Daten identifiziert werden können, die ausschließlich durch Ihre resultierende hash. Mit Systemen, die massive Mengen von Daten, die Vorteile des seins in der Lage zu speichern und identifizieren von Daten mit einer festen Länge Ausgabe erstellen können, die riesigen Speicherplatz zu sparen und erhöhen die Effizienz.

Innerhalb blockchains, Hash-algorithmen, um zu bestimmen, den Status der blockchain. Blockchains sind verknüpfte Listen, die Daten enthalten, und eine hash-Zeiger, die Punkte auf dem vorherigen block, die Schaffung einer Kette verbundener Blöcke, daher der name „blockchain“. Jeder block wird miteinander verbunden durch eine hash-Zeiger, das ist der hash-Wert der Daten in dem vorherigen block zusammen mit der Adresse des vorherigen Blockes. Durch die Verknüpfung der Blöcke von Daten in diesem format, jede daraus resultierende hash-Wert des vorherigen Blocks repräsentiert den gesamten Zustand der blockchain, da alle Hash-Daten von der vorherigen blocks Hash in einer hash. Dieser ist vertreten (im Fall der SHA-256 Algorithmus) von einem Ausgang (hash) wie diese.

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Die hash-oben ist der „Fingerabdruck“ des gesamten Staates von der blockchain, bevor es. Der Zustand der blockchain vor dem neuen block (als gehashte Daten) ist der Eingang, und der resultierende hash ist der Ausgang. Obwohl es möglich ist, um kryptografische hashes, ohne Merkle Bäume, es ist äußerst ineffizient und nicht skalierbar. Mit hashes zum speichern von Daten in einem block in einer Reihe formatieren ist zeitaufwendig und umständlich.

Wie Sie sehen werden, Merkle-Bäume erlauben für triviale Auflösung der Integrität der Daten wie auch die Kartierung der Daten durch den gesamten Baum mit Merkle Beweise.

Merkle Bäume und Merkle Beweise

Benannt nach Ralph Merkle, der patentierte das Konzept im Jahr 1979, Merkle-Bäumen grundsätzlich sind Daten, die Struktur der Bäume, wo jedes nicht-Blatt-Knoten ist ein hash des jeweiligen untergeordneten Knoten. Die Blattknoten der untersten Ebene der Knoten im Baum. Auf den ersten, es klingt vielleicht schwer zu begreifen, aber wenn man sich die Häufig verwendet, Abbildung unten, wird es viel einfacher geworden, zu verstehen.

Hash Tree

Ein Beispiel für ein binärer hash-Baum, Bild aus Wikipedia

Wichtig ist, zu bemerken, wie die nicht-Blatt-Knoten oder „Zweige“ (vertreten durch den Hash 0-0 und Hash 0-1) auf der linken Seite, sind die hashes der jeweiligen Kinder L1 und L2. Bemerken Sie weiter, wie Zweig Hash 0 hash seiner verkettet Kinder, Branchen-Hash 0-0 und Hash 0-1.

Das Beispiel oben ist die häufigste und einfache form eines Merkle-tree bekannt als einem Binären Merkle-Baum. Wie Sie sehen können, gibt es ein top-hash, der hash, der die gesamte Struktur, bekannt als der root-hash. Im wesentlichen, Merkle-Bäume sind eine Datenstruktur, die mit „n“ die Anzahl der hashes und stellen es mit einer einzigen hash.

Die Struktur des Baumes ermöglicht die effiziente Abbildung von beliebig großen Datenmengen und ermöglicht eine einfache Identifizierung, wo änderungen in den Daten auftreten. Dieses Konzept ermöglicht es, Merkle Beweise, mit denen, kann jemand verifizieren, dass das hashing der Daten wird konsequent den ganzen Weg auf den Baum und in die richtige position, ohne dass Sie tatsächlich Blick auf den gesamten Satz von hashes. Stattdessen können Sie überprüfen, ob ein Daten-chunk wird im Einklang mit den root-hash nur die Prüfung auf eine Teilmenge der Hashwerte statt der gesamten Daten-set.

Solange das root-hash ist öffentlich bekannt und vertrauenswürdig sind, ist es möglich, für jeden, der will, zu tun, ein Schlüssel-Wert-lookup auf eine Datenbank zu verwenden Merkle Beweis, um zu überprüfen, die position und Integrität der ein Stück von Daten innerhalb einer Datenbank, mit einem bestimmten Stamm. Wenn der root-hash verfügbar ist, wird der hash-Baum kann erhalten von jedem nicht vertrauenswürdigen Quelle und einem Zweig von dem Baum heruntergeladen werden kann zu einem Zeitpunkt mit sofortiger überprüfung der Datenintegrität, selbst wenn der ganze Baum ist noch nicht verfügbar.

Einer der wichtigsten Vorteile der Merkle-tree Struktur ist die Fähigkeit, sich zu authentifizieren beliebig große Mengen von Daten über einen ähnlichen Hash-Mechanismus, der verwendet wird, um zu überprüfen, viel kleinere Mengen von Daten. Der Baum ist vorteilhaft für das verteilen von großen Datenmengen in überschaubare kleinere Teile, wo die Barriere für die überprüfung der Integrität wird erheblich reduziert, trotz der insgesamt größeren Datenmengen.

Der root-hash verwendet werden kann, wie der Fingerabdruck für einen ganzen Datensatz, einschließlich einer vollständigen Datenbank oder repräsentiert den gesamten Zustand einer blockchain. In den folgenden Abschnitten werden wir diskutieren, wie die Bitcoin und andere Systeme implementieren Merkle Bäume.

Merkle Bäume in Bitcoin

Die kryptographische hash-Funktion eingesetzt, die von Bitcoin ist der SHA-256-Algorithmus. Dies steht für „Secure Hash Algorithmus“, dessen Ausgabe einem festen 256 bit Länge. Die grundlegende Funktion der Merkle Bäume in Bitcoin zu speichern, und schließlich prune Transaktionen in jedem block.

Wie bereits erwähnt, die Blöcke in eine blockchain sind verbunden durch hashes von dem vorherigen block. In Bitcoin, jeder block enthält alle Transaktionen in diesem block, sowie die block-header, die besteht aus:

  • Block Versionsnummer
  • Vorherigen Block-Hash
  • Timestamp
  • Mining-Schwierigkeit Target
  • Nonce
  • Merkle Root-Hash

Das Bild unten ist von der Bitcoin-whitepaper und zeigt, wie der Merkle-Baum passt in jeden block.

Merkle Tree

Die Transaktionen werden in Blöcken von Bergleuten und gehasht werden als Teil eines Merkle-Baum, die zu den führenden Merkle root gespeichert ist, in die block-header. Dieser Entwurf hat eine Reihe von deutlichen Vorteilen.

Vor allem, wie in dem whitepaper, das ermöglicht die Existenz der Einfachen Zahlung Verifikation (SPV) Knoten, auch bekannt als „leichte Kunden“. Diese Knoten müssen nicht zum download der gesamten Bitcoin-blockchain, nur die block-Header der längsten Kette. SPV-Knoten können dies erreichen, indem Sie eine Abfrage für Ihre peer-Knoten ein, bis Sie davon überzeugt sind, dass die gespeicherten block-Header, die Sie betreiben, sind Teil der längsten Kette. Eine SPV-Knoten ist in der Lage, bestimmen Sie den status einer Transaktion mit der Merkle-proof Karte die Transaktion zu einem bestimmten Merkle-tree mit zugehörigen Merkle-tree ‚ s root-hash in ein block-header ist Teil der längsten Kette.

Darüber hinaus Bitcoin-Implementierung von Merkle-Bäumen ermöglicht das schneiden der blockchain, um Platz zu sparen. Dies ist ein Ergebnis der nur der root-hash gespeichert, die im block-header, also die alten Blöcke gelöscht werden können durch die Beseitigung unnötiger äste des Merkle-Baum, während nur ebendieser benötigt für die Merkle Beweis.

Umsetzung der Merkle Bäume in Andere Blockchains und Systeme

Obwohl Bitcoin war die erste blockchain zu implementieren Merkle Bäume, viele andere blockchains implementieren, ähnlich Merkle-Baum-Strukturen oder auch komplexere Versionen. Weitere, Merkle-Baum-Implementierung ist nicht nur beschränkt auf die blockchains und wird angewendet, um eine Vielzahl von anderen Systemen.

Des Astraleums, als die meisten anderen erkennbar kryptogeld, ist auch ein gutes Beispiel von einem anderen Merkle-Baum-Implementierung. Da Astraleums ist turing-vollständig als Plattform für den Aufbau viel mehr komplexe Anwendungen, die es verwendet eine komplexere version des Merkle-Baum genannt, ein Merkle Patricia Baum, der eigentlich 3 separate Merkle Bäume verwendet werden, für drei Arten von Objekten. Sie können lernen, mehr über diese Bäume hier.

Schließlich Merkle Bäume sind wichtiger Bestandteil von distributed version control systems wie Git und IPFS. Ihre Fähigkeit, leicht sicherstellen und überprüfen der Integrität von Daten zwischen Computern freigegeben und in einem P2P-format macht Sie von unschätzbarem Wert für diese Systeme.

Fazit

Merkle-Bäume sind ein integraler Bestandteil des blockchains und es Ihnen ermöglichen, effektiv zu funktionieren mit nachweisbaren Unveränderlichkeit und Transaktionsintegrität. Das Verständnis der Rolle, die Sie spielen, in verteilten Netzwerken und deren zugrunde liegende Technologie von kryptographischen hash-Funktionen ist entscheidend für das erfassen der grundlegenden Konzepte in cryptocurrencies wie Sie weiter zu entwickeln, in größere und komplexere Systeme.

Schreibe einen Kommentar