Ein Root-Hash oder Merkle-Root ist ein spezieller Hash-Typ, der erstellt wurde, um die Überprüfung von Daten innerhalb eines Merkle-Baums zu erleichtern. Ohne Zweifel eine interessante Computerstruktur mit Einsatzmöglichkeiten in vielen Bereichen und einer davon ist die Blockchain-Technologie.
El Root-Hash o Root-Hash, ist der Name, der dem gegeben wurde Hash- resultierend aus a Merkle-Baum. Sein Hauptzweck besteht darin, als Marker zu dienen, um die Zuverlässigkeit der Informationen aus dem betreffenden Merkle-Baum anzuzeigen. Etwas, das in einem P2P-Netzwerk sehr nützlich ist.
Um diese Situation besser zu erklären, stellen wir uns das folgende Beispiel vor:
Juan möchte einen Knoten installieren Bitcoin vollständig. Während der Initialisierung wird die Knoten Bitcoin muss sich mit dem Netzwerk synchronisieren. Dies dient dazu, alle darin gesammelten Informationen zu erhalten Blockchain Bitcoin. Um dies zu erreichen, lädt der neue Bitcoin-Knoten alle diese Informationen herunter. Bitcoin ist jedoch ein vertrauenswürdiges Netzwerk, dessen Betrieb auf einer Reihe kryptografischer Funktionen basiert. Dies dient dazu, die Richtigkeit der Informationen zu gewährleisten, ohne dass man Dritten vertrauen muss.
Dazu nutzt es kryptografische Hash-Funktionen wie SHA-256. Während der Knoten die Informationen herunterlädt, überprüft er, ob die „vertrauenswürdigen Top“-Hashes korrekt sind. Wenn ja, setzt der Bitcoin-Knoten seine Download-Arbeit fort. Andernfalls werden die Informationen verworfen und mit dem Herunterladen der Informationen von einer anderen neuen Quelle begonnen, bei der alle vertrauenswürdigen Hashes übereinstimmen. Sobald der Download abgeschlossen ist, kann der neue Knoten mit seiner Arbeit beginnen und dabei sicherstellen, dass alle Informationen überprüft wurden und korrekt sind.
Das gegebene Beispiel macht uns den Nutzen des Root-Hashs bei der Überprüfung der Authentizität der empfangenen Daten deutlich. Es ist aber auch perfekt auf alle Blockchains und deren komplette Synchronisationsprozesse anwendbar.
Wie erstellt man einen Root-Hash?
Ein Root-Hash wird durch inkrementelles Hashing der Informationen aus jedem Datenblock generiert. Dieser Prozess garantiert, dass jeder Informationsblock mit einem eindeutigen und nicht wiederholbaren Hash behandelt und gekennzeichnet wird. Nehmen Sie zum Beispiel die Erstellung eines Merkle-Baums mit dem SHA-256-Hash-Algorithmus. In diesem Fall sind unsere Datenblöcke:
Sobald wir die Datenblöcke zur Hand haben, beginnen wir, jeden einzelnen davon zu hashen. Dazu verwenden wir die SHA-256-Funktion, die das folgende Ergebnis liefern würde.
Somit wird jedem Block ein einzigartiger und nicht wiederholbarer SHA-256-Hash zugewiesen. Dies wird unsere Markierung zur Anerkennung der Authentizität und die Art und Weise sein, wie wir unseren Merkle-Baum organisieren. Um mit dem Verfahren fortzufahren, müssen wir die Datenblöcke wie folgt zusammenfügen:
Wie Sie sehen, verketten wir die Hashes benachbarter Blöcke paarweise miteinander. Damit bleiben uns die Paare AB, CD, EF, GH. Am Ende der ersten Runde bauen wir die Hash-Union weiter auf, dieses Mal jedoch mit den Paaren ABCD und EFGH. Und schließlich verketten wir alles zu einem einzigen Hash, der die ABCD- und EFGH-Hashes enthält, um die Merkle-Wurzel (ABCDEFGH) zu erzeugen.
Dieser letzte Block oben ist unser Root-Hash oder Merkle-Root. Es ist der resultierende Hash des Merkle Tree.