Was ist ein Hash?
Die Blockchain gilt als eine unglaublich sichere Technologie. So ist es praktisch unmöglich, dass jemand Daten aus der Vergangenheit ändern kann, wodurch doppelte Ausgaben verhindert werden. Dass dies möglich ist, liegt unter anderem daran, dass die Daten auf einer Blockchain gehasht sind.
Wir können also sagen, dass das Hashing der Schlüssel zur Zuverlässigkeit der Blockchain ist. Aber wie funktioniert das eigentlich?
Was ist Hashing?
Beim Hashing wird eine Eingabe mit zufälliger Länge mithilfe eines mathematischen Algorithmus in ein festes kryptografisches Ergebnis umgewandelt. Es gibt eine ganze Reihe verschiedener Algorithmen dieser Art, von denen einige sicherer sind als andere. Bitcoin verwendet zum Beispiel den SHA-256-Algorithmus.
Im Prinzip kann alles gehasht werden. Denken Sie zum Beispiel an eine Nachricht, ein Bild oder einen Block in der Blockchain. Schließlich enthält ein solcher Block auch einfach nur Informationen.
Was macht einen Hash so sicher?
Durch das Hashing wird die Sicherheit der Blockchain erheblich erhöht. Denn wenn man einen Hash sieht, kann man nicht wissen, welche Informationen sich dahinter verbergen und wie groß diese Informationen sind. Aber das ist nicht das Einzige, was einen Hash so sicher macht.
Ein Hash ist auch deshalb sicher, weil selbst die kleinste Änderung seines Inhalts zu einem völlig anderen Hash führt. Wenn nur eine kleine Änderung einen kleinen Unterschied machen würde, wäre es viel einfacher zu bestimmen, wie der Inhalt aussieht. Je effizienter und komplexer der Hash-Algorithmus ist, desto größer ist die Auswirkung einer Änderung des Inhalts auf den Hash-Wert.
Wie wird Hashing in der Blockchain eingesetzt?
Die Blockchain nutzt Hashing, um alle Daten vor äußeren Einflüssen schützen zu können. Sie können also nicht direkt sehen, was auf der Blockchain passiert. Der Inhalt aller Blöcke wird gehasht, also kann man auch nicht einfach die Transaktionen einsehen.
Wie bereits erwähnt, führt selbst die kleinste Veränderung des Inhalts zu einem völlig anderen Hash. Dadurch wird sichergestellt, dass die Blockchain ein sicherer Ort ist und dass Blöcke miteinander verknüpft werden können.
Die Miner sind damit beschäftigt, Transaktionen auf der Blockchain zu überprüfen. Wenn eine Transaktion nicht genehmigt werden kann, wird sie nicht in die Blockchain aufgenommen. Wenn eine Transaktion jedoch gültig ist, wird sie in den neuen Block aufgenommen, der der Blockchain hinzugefügt wird.
Vielleicht ist Ihnen bekannt, dass der erste Block der Blockchain als Genesis-Block bezeichnet wird. Dieser Block wird wie alle anderen Blöcke der Blockchain gehasht. Allerdings ist dies der Anfang für die restlichen Blöcke und ihre Hashes.
Das liegt daran, dass der Hash des ersten Blocks in dem darauf folgenden Block gespeichert wird. Der Block, der danach zur Blockchain hinzugefügt wird, enthält ebenfalls den Hash des vorherigen Blocks. Auf diese Weise entsteht eine Kette von Blöcken, die wir Blockchain nennen. Jede Node besitzt eine Kopie der Blockchain.
Wenn also jemand versucht, den Inhalt eines Blocks zu ändern, wird ein neuer Hash erstellt. Da der Block dann den Hash des ursprünglich vorhergehenden Blocks enthält, bemerken die Nodes, dass etwas nicht mehr stimmt. Alle Nodes im Netzwerk wissen dann, dass es jemanden gibt, der versucht hat, die Geschichte der Blockchain zu verändern.
Jeder Block verweist also durch seinen Hash auf den Hash des vorherigen Blocks zurück. Genau aus diesem Grund gelten Transaktionen als sicher, wenn sie in der Blockchain gespeichert sind.
Dies wäre möglich, wenn die Daten an einem zentralen Ort, z. B. auf einem Server, gespeichert würden. Denn dann gibt es kein Netzwerk, das einen Fehler sofort bemerken würde, weil ein Hash geändert wurde.
Verschiedene Hashing-Algorithmen und ihre Sicherheit
Es gibt viele verschiedene Arten von Hashing-Algorithmen, die in Blockchains zum Einsatz kommen können. Das liegt daran, dass die Technologie selbst nicht neu ist. Seitdem es die ersten Computer gibt, wurden auch Hash-Algorithmen entwickelt. Hashes werden z. B. auch zur Sicherung von Passwörtern für Websites verwendet.
In den letzten Jahren ist es auch schon mehrmals vorgekommen, dass ein solcher Algorithmus geknackt wurde. Dies geschieht, wenn jemand herausfindet, wie der Algorithmus funktioniert. Solange ein Algorithmus nicht geknackt worden ist, kann er als sicher gelten.
MD5
Der wohl bekannteste Hashing-Algorithmus ist MD5. Dieser Algorithmus wird häufig zum Speichern von Kennwörtern verwendet. Dennoch gilt er als unsicherer Algorithmus, da sich herausgestellt hat, dass der Entwurf dieses Algorithmus viele Fehler enthält.
SHA-1
Bitcoin verwendet den SHA-256-Algorithmus zur Verschlüsselung. SHA-1 ist ein Vorläufer dieses Algorithmus und gilt seit einigen Jahren als unsicher. In der Tat war es möglich, einen Shambles-Angriff auf diesen Algorithmus durchzuführen, der ihn genau wie MD5 unsicher macht.
Es ist nicht verwunderlich, dass diese Algorithmen als unsicher gelten, da sie bereits in den 90er Jahren erfunden wurden. Je mehr Zeit Hacker haben, desto wahrscheinlicher ist es, dass sie den Algorithmus knacken können. Deshalb werden ständig neue, komplexe Algorithmen erfunden, die praktisch nicht zu knacken sind. Tatsächlich dauert es Millionen von Jahren, um einige Algorithmen zu knacken.
Vor allem neue Blockchains nutzen diese neuen und komplexen Hashing-Algorithmen, weil sie viel sicherer sind. Sobald der Algorithmus geknackt ist, bedeutet dies auch das Ende der Blockchain. Daher ist es wichtig, dass ein solcher Algorithmus haltbar ist, damit die Blockchain lange Zeit bestehen kann.
Was ist eine TXID?
Eine TXID ist eine Transaktions-ID, die durch Hashing von Transaktionsdaten (wie dem gesendeten Betrag, der Empfängeradresse, dem Zeitstempel usw.) ermittelt wird. Sie besteht aus einer Reihe von Zahlen und Buchstaben, die zur Identifizierung und Bestätigung einer ausgeführten Transaktion verwendet werden können.
Was sind Merkle-Trees?
Ein Merkle-Tree (auch als Hash-Baum bekannt) ist eine Hash-Datenstruktur, die zur sicheren und effizienten Speicherung von Daten in einer Blockchain verwendet wird. Das Konzept wurde 1979 von Ralph Merkle patentiert.
Das System funktioniert, indem Blocktransaktionen mit einem Algorithmus durchgeführt werden, der einen Hash erzeugt, um die Gültigkeit dieser Daten anhand der ursprünglichen Transaktionen zu überprüfen.
Ein ganzer Block von Transaktionen wird nicht gleichzeitig einer Hash-Funktion unterzogen. Stattdessen wird jede einzelne Transaktion gehasht, wobei diese Transaktionen miteinander verknüpft und zusammen gehasht werden. Letztendlich ergibt dies einen einzigen Hash für den gesamten Block.
Die Struktur ähnelt der eines Baumes, da jeder Block in der Regel Hunderte, wenn nicht Tausende von Transaktionen enthält. Die Hashes in der unteren Reihe werden als "Blätter" bezeichnet, während die Hashes in der Mitte als "Äste" bezeichnet werden, wobei der Hash an der Spitze die "Wurzel" darstellt.
Merkle-Trees sind besonders nützlich, weil sie es jedem ermöglichen, die Gültigkeit einer einzelnen Transaktion zu bestätigen, ohne eine ganze Blockchain herunterladen zu müssen.
Merkle-Trees und Hashes sind ein Schlüsselelement für das Funktionieren der Blockchain-Technologie und gewährleisten gleichzeitig Sicherheit, Integrität und Nachweisbarkeit. Zusammen mit den Konsensalgorithmen sind sie die wichtigsten Aspekte, die die Sicherheit der Blockchain-Technologie gewährleisten.