Hashing bezieht sich auf das Konzept, eine willkürliche Menge an Eingabedaten zu nehmen, einen Algorithmus darauf anzuwenden und Ausgabedaten fester Größe zu erzeugen, die Hashes genannt werden. Die Eingabe kann eine beliebige Anzahl von Bits sein, die ein einzelnes Zeichen, eine MP3-Datei, einen ganzen Roman, eine Tabellenkalkulation Ihrer Bankgeschichte oder sogar das gesamte Internet repräsentieren können. Der Punkt ist, dass der Input unendlich groß sein kann. Der Hash-Algorithmus kann je nach Ihren Bedürfnissen gewählt werden, und es gibt viele öffentlich verfügbare Hash-Algorithmen. Der Punkt ist, dass der Algorithmus die unendliche Eingabe von Bits nimmt, einige Berechnungen auf sie anwendet und eine endliche Anzahl von Bits erzeugt. Zum Beispiel 256 Bit.
Wozu kann dieses Haschisch verwendet werden?
Hashes werden heute häufig in Fingerabdruckdateien verwendet, die auch als Prüfzonen bezeichnet werden. Dies bedeutet, dass ein Hash verwendet wird, um zu überprüfen, dass eine Datei nicht in einer vom Autor nicht beabsichtigten Weise manipuliert oder verändert wurde. Wenn WikiLeaks zum Beispiel eine Reihe von Dateien zusammen mit ihren MD5-Hashes veröffentlicht, kann derjenige, der diese Dateien herunterlädt, überprüfen, ob sie wirklich von WikiLeaks stammen, indem er den MD5-Hash der heruntergeladenen Dateien berechnet, und wenn der Hash nicht mit dem übereinstimmt, was von WikiLeaks veröffentlicht wurde, dann wissen Sie, dass die Datei in irgendeiner Weise verändert wurde.
Wie verwendet das Kettenschloss den Hash?
Achsen werden in Blockketten verwendet, um den aktuellen Zustand der Welt darzustellen. Die Eingabe ist der komplette Zustand der Blockkette, d.h. alle Transaktionen, die bisher stattgefunden haben, und der resultierende Ausgabe-Hash stellt den aktuellen Zustand der Blockkette dar. Die Hashes werden verwendet, um zwischen allen Parteien zu vereinbaren, dass der Weltstaat ein und derselbe ist, aber wie werden diese Hashes eigentlich berechnet?
Der erste Hash wird für den ersten Block oder den Genesis-Block unter Verwendung der Transaktionen innerhalb dieses Blocks berechnet. Die Sequenz der Initialtransaktionen wird verwendet, um einen Blockhash für den Genesis-Block zu berechnen. Für jeden neuen Block, der später generiert wird, wird auch der Hash des vorherigen Blocks sowie Ihre eigenen Transaktionen als Input zur Bestimmung Ihres Blockhashes verwendet. Auf diese Weise wird eine Blockkette gebildet, wobei jeder neue Blockhash auf den vorhergehenden Blockhash zeigt. Dieses Hash-System stellt sicher, dass keine Transaktion in der Historie manipuliert werden kann, denn wenn sich ein Teil der Transaktion ändert, ändert sich auch der Hash-Wert des Blocks, zu dem er gehört, und damit auch die Hash-Werte der nachfolgenden Blöcke. Es wäre ziemlich einfach, eine Manipulation als Ergebnis zu erkennen, da nur die Hashes verglichen werden können. Das ist großartig, denn jeder in der Blockkette muss sich nur auf 256 Bit einigen, um den potenziell unendlichen Zustand der Blockkette darzustellen. Die Ethereum-Blockkette umfasst derzeit Dutzende von Gigabyte, aber der aktuelle Stand der Blockkette zum Zeitpunkt dieser Aufzeichnung ist dieser hexadezimale Hash, der 256 Bit repräsentiert.
Was ist mit digitalen Signaturen?
Digitale Signaturen sind, wie echte Unterschriften, eine Möglichkeit, zu beweisen, dass jemand derjenige ist, für den er sich ausgibt, außer dass wir Kryptographie oder Mathematik verwenden, die sicherer sind als handschriftliche Unterschriften, die leicht gefälscht werden können. Eine digitale Signatur ist ein Weg, um zu beweisen, dass eine Nachricht von einer bestimmten Person stammt und von niemand anderem, z.B. einem Hacker.
Digitale Signaturen werden heute im gesamten Internet verwendet. Jedes Mal, wenn Sie eine Website über ACTPS besuchen, verwenden Sie SSL, das digitale Signaturen verwendet, um Vertrauen zwischen Ihnen und dem Server herzustellen. Das bedeutet, dass Ihr Browser beim Besuch von Facebook.com die mit der Website gelieferte digitale Signatur überprüfen kann, um sicherzustellen, dass sie tatsächlich von Facebook und nicht von einem Hacker stammt.
Bei asymmetrischen Verschlüsselungssystemen erzeugen die Benutzer etwas, das als Schlüsselpaar bezeichnet wird, d.h. einen öffentlichen und einen privaten Schlüssel unter Verwendung eines bekannten Algorithmus. Der öffentliche Schlüssel und der private Schlüssel sind durch eine mathematische Beziehung miteinander verbunden. Der öffentliche Schlüssel soll öffentlich verteilt werden, um als Adresse für den Empfang von Nachrichten von anderen Benutzern zu dienen, wie z.B. eine IP-Adresse oder eine Privatadresse. Der private Schlüssel muss geheim gehalten werden und wird verwendet, um Nachrichten, die an andere Benutzer gesendet werden, digital zu signieren. Die Signatur ist in der Nachricht enthalten, so dass der Empfänger sie mit dem öffentlichen Schlüssel des Absenders verifizieren kann. Auf diese Weise kann der Empfänger sicher sein, dass nur der Absender diese Nachricht gesendet haben kann. Das Generieren eines Schlüsselpaares ist analog zum Anlegen eines Kontos in der Blockkette, jedoch ohne sich irgendwo registrieren zu müssen. Ziemlich cool. Zudem wird jede Transaktion, die in der Blockkette ausgeführt wird, vom Absender digital signiert.
Um alles zusammenzufassen: Ohne den Hash und die digitalen Signaturen könnte es keine Blockkette geben. Hashing bietet eine Möglichkeit für jeden in der Blockkette, sich über den aktuellen Zustand der Welt zu einigen, während die digitalen Signaturen eine Möglichkeit bieten, sicherzustellen, dass alle Transaktionen nur von den rechtmäßigen Eigentümern durchgeführt werden. Wir verlassen uns auf diese beiden Eigenschaften, um sicherzustellen, dass die Sperrkette nicht korrumpiert oder kompromittiert wurde.