Schritt 13: Autorisieren von Transaktionen

Verwenden des digitalen Gegenstücks eigenhändiger Unterschriften

Schritt 12 hat Ihnen eine kurze Einführung in die asymmetrische Kryptographie geboten. Er hat auch gezeigt, dass die Blockchain öffentliche kryptographische Schlüssel als Kontonummern verwendet und die asymmetrische Kryptographievariante »von öffentlich an privat« nutzt, um Eigentumsübertragungen zwischen Konten vorzunehmen. Das ist aber nur die eine Seite der Geschichte. Die Blockchain muss darüber hinaus auch sicherstellen, dass ausschließlich der rechtmäßige Eigentümer sein Eigentum an andere Konten übertragen kann. An diesem Punkt kommt die Autorisierung ins Spiel, und deshalb wird im Folgenden erklärt, wie asymmetrische Kryptographie innerhalb der Blockchain zur Autorisierung von Transaktionen verwendet wird. Insbesondere beschäftigt sich dieser Schritt mit digitalen Signaturen, die die asymmetrische Kryptographievariante »von privat an öffentlich« nutzen.

Die Metapher

Eigenhändige Unterschriften dienen einem wichtigen Zweck: Sie bezeugen das Einverständnis mit dem Inhalt eines Dokuments und stimmen dessen Vollzug zu. Der Grund, aus dem wir eigenhändige Unterschriften als Beweis für das Einverständnis akzeptieren, ist die Einzigartigkeit der Handschrift jeder Person. Jeder Mensch hat seine besonderen Eigenarten beim Schreiben seines Namens. Wenn wir also sehen, dass ein Name auf bestimmte Art geschrieben wurde, schließen wir daraus, dass die Person, die ihren Namen auf diese bestimmte Art schreibt, tatsächlich auch der Urheber dieser eigenhändigen Unterschrift ist. Und das führt uns dann wiederum zu dem Schluss, dass die betreffende Person dem Inhalt des Dokuments und dessen Vollzug zugestimmt hat. In diesem Schritt lernen Sie das Konzept der Einverständniserklärung mit Transaktionen in einem elektronischen Hauptbuch kennen, das in gewisser Weise den eigenhändigen Unterschriften ähnelt. Dieses Konzept ist ein wesentlicher Faktor für die Sicherheit der einzelnen Transaktionen in der Blockchain.

Das Ziel

Es ist wichtig sicherzustellen, dass nur der Eigentümer eines Kontos das damit verbundene Eigentum an andere Konten übertragen kann. Jeder Versuch einer Person – mit Ausnahme des rechtmäßigen Eigentümers –, auf ein Konto und das zugehörige Eigentum zuzugreifen, muss als unberechtigt erkannt und abgelehnt werden.

Die Herausforderung

Das hier betrachtete Peer-to-Peer-System ist für alle zugänglich, daher kann jedermann Transaktionen erstellen und beim System einreichen. Transaktionsdaten bilden die Grundlage zum Beschreiben und Abklären des Eigentums. Nur der rechtmäßige Eigentümer eines Kontos darf in der Lage sein, Eigentum oder Eigentumsrechte von seinem Konto auf ein anderes Konto zu übertragen. Die Herausforderung für die Blockchain besteht darin, die Offenheit zu erhalten und gleichzeitig Eigentumsübertragungen auf den rechtmäßigen Eigentümer zu beschränken.

Die Idee

Um sicherzustellen, dass nur der rechtmäßige Eigentümer Eigentumsübertragungen vornehmen kann, wird eine digitale Sicherheitsmaßnahme genutzt, die eigenhändigen Unterschriften ähnelt und demselben Zweck dient: ein Konto zu identifizieren, das Einverständnis des Eigentümers mit dem Inhalt eines bestimmten Transaktionsdatensatzes zu erklären und dessen Vollzug zu genehmigen, indem zugelassen wird, dass die Daten zur Historie der Transaktionsdaten hinzugefügt werden.

Ein kleiner Abstecher in digitale Signaturen

Digitale Signaturen sind das Gegenstück zu eigenhändigen Unterschriften. Sie nutzen kryptographische Hashfunktionen und den Informationsfluss der asymmetrischen Kryptographievariante »von privat an öffentlich«. Das folgende kurze Beispiel veranschaulicht die drei Hauptbestandteile digitaler Signaturen:

Erstellen einer Signatur

Einmal angenommen, ich möchte die Begrüßung Hello World! auf autorisierte Weise an die gesamte Menschheit schicken. Dazu erstelle ich eine Nachricht, die diese Begrüßung enthält, sowie die dazugehörige digitale Signatur. Abbildung 13.1 verdeutlicht das digitale Signieren von Daten. Der Prozess beginnt mit dem weißen Kasten oben links in der Grafik, der diese Begrüßung enthält. Ich erzeuge den Hashwert 7F83B165 der Begrüßung und verschlüssele ihn mit meinem privaten Schlüssel. Der Geheimtext für den Hashwert der Begrüßung (der schwarze Kasten mit weißen Buchstaben) ist meine digitale Signatur der Begrüßung. Er ist in zweierlei Hinsicht einzigartig: Erstens kann er eindeutig zu mir zurückverfolgt werden, da ich meinen eindeutigen privaten Schlüssel zum Erzeugen verwendet habe. Und zweitens ist er in Bezug auf den Text der Begrüßung eindeutig, da er auf dem digitalen Fingerabdruck der Begrüßung beruht. Die Begrüßung und die digitale Signatur werden in einer Datei (grauer Kasten) kombiniert: Das ist meine digital signierte Botschaft an die Welt.

Abb. 13.1: Schematische Darstellung für das Erstellen einer digitalen Signatur

Überprüfen von Daten anhand der Signatur

Die Nachricht, also meine Begrüßung mitsamt der digitalen Signatur, geht nun an alle Welt. Jeder kann anhand meines öffentlichen Schlüssels feststellen, dass ich die Nachricht autorisiert habe. Abbildung 13.2 zeigt beispielhaft, wie die Nachricht mithilfe der digitalen Signatur überprüft wird. Hier beginnt der Prozess mit der Begrüßung. Zunächst berechnet der Empfänger der Nachricht selbst den Hashwert der Begrüßung und erhält dabei den Wert 7F83B165. Anschließend entschlüsselt der Empfänger meiner Nachricht den beigefügten Geheimtext (die digitale Signatur) mit Hilfe meines öffentlichen Schlüssels. Dabei ergibt sich der Wert 7F83B165, was dem Hashwert genau der Version der Begrüßung entspricht, die ich versenden wollte. Durch den Vergleich der beiden Hashwerte ist die Überprüfung abgeschlossen. Da beide Hashwerte identisch sind, kann der Empfänger korrekt folgende Schlüsse ziehen: Erstens, dass die Nachricht von mir unterschrieben wurde, denn er konnte die Signatur mit meinem öffentlichen Schlüssel entschlüsseln. Zweitens, dass die Begrüßung in der Nachricht tatsächlich dem entspricht, was ich geschrieben habe, denn der entschlüsselte Geheimtext ist identisch mit dem Hashwert der Begrüßung in der Nachricht.

Abb. 13.2: Verwenden einer digitalen Signatur zum Überprüfen einer Nachricht

Erkennen von Betrug anhand der Signatur

Abbildung 13.3 zeigt, wie anhand der digitalen Signatur eine gefälschte Begrüßung aufgedeckt wird.

Abb. 13.3: Verwenden einer digitalen Signatur zum Erkennen von Betrug

Diese Grafik zeigt die Nachricht, die mein Freund empfangen hat. Beachten Sie die Änderung in der Begrüßung: Ein Hacker hat das Ausrufezeichen durch ein Fragezeichen ersetzt und somit die Gesamtaussage der Begrüßung verfälscht. So wollte ich die Welt nicht grüßen. Zum Glück zeigt die digitale Signatur jedem, dass die Nachricht gegen meinen Willen verändert wurde.

Zunächst berechnet der Empfänger der Nachricht selbst den Hashwert der Begrüßung und erhält dabei den Wert 8A0B7C66. Anschließend entschlüsselt der Empfänger meiner Nachricht die digitale Signatur mit Hilfe meines öffentlichen Schlüssels. Dabei ergibt sich der Wert 7F83B165, was dem Hashwert genau der Version der Begrüßung entspricht, die ich versenden wollte. Beim Vergleich der beiden Hashwerte zeigt sich, dass sie nicht identisch sind. Damit ist eindeutig klar, dass der Nachrichtentext von meiner ursprünglich gesendeten Botschaft an die Welt abweicht. Jeder kann daraus schlussfolgern, dass ich diese Nachricht nicht autorisiert habe – und damit kann mich auch niemand für ihren Inhalt verantwortlich machen.

Funktionsweise

Digitale Signaturen in der Blockchain erfüllen die folgenden Anforderungen:

Es gibt zwei Anwendungsfälle für digitale Signaturen in der Blockchain:

Unterzeichnen von Transaktionen

Um eine digitale Signatur für eine Transaktion zu erzeugen, führt der Eigentümer des Kontos, von dem das Eigentum übertragen wird, die folgenden Schritte aus:

  1. Er beschreibt die Transaktion mit allen erforderlichen Daten, darunter die beteiligten Kontonummern, der übertragene Betrag und so weiter. Die Signatur selbst ist noch nicht Teil dieser Daten, denn sie ist noch nicht verfügbar.

  2. Er erzeugt den kryptographischen Hashwert der Transaktionsdaten.

  3. Er verschlüsselt den Hashwert für die Transaktion mit dem privaten Schlüssel des Kontos, von dem das Eigentum übertragen wird.

  4. Er fügt den in Punkt 3 erzeugten Geheimtext als digitale Signatur zur Transaktion hinzu.

Überprüfen von Transaktionen

Zum Überprüfen einer Transaktion sind die folgenden Schritte erforderlich:

  1. Erstellen des Hashwerts für die zu überprüfenden Transaktionsdaten ohne die Signatur selbst

  2. Entschlüsseln der digitalen Signatur für die betroffene Transaktion anhand der Nummer des Kontos, von dem das Eigentum übertragen wird

  3. Vergleichen der Hashwerte aus Schritt 1 und Schritt 2. Sind beide Hashwerte identisch, wurde die Transaktion vom Eigentümer des privaten Schlüssels (der zu dem Konto gehört von dem das Eigentum übertragen wird) genehmigt, andernfalls ist das nicht so.

Warum das funktioniert

Digitale Signaturen für Transaktionsdaten sind eine Kombination der folgenden Elemente:

Da die kryptographischen Hashwerte als digitale Fingerabdrücke betrachtet werden können, sind sie für jede Transaktion eindeutig. Eine wesentliche Eigenschaft der Public-Key-Kryptographie besteht darin, dass ein mit einem Schlüssel erzeugter Geheimtext nur mit dem anderen Schlüssel des Paares entschlüsselt werden kann. Die Zuordnung beider Schlüssel ist eindeutig. Somit dient die erfolgreiche Entschlüsselung eines Geheimtextes mit einem bestimmten öffentlichen Schlüssel als Nachweis dafür, dass dieser Text mit dem zugehörigen privaten Schlüssel erzeugt wurde. Durch das Kombinieren beider Konzepte ergibt sich ein Geheimtext, der eindeutig zugleich einem ganz bestimmten Transaktionsdatensatz und einem ganz bestimmten privaten Schlüssel zugeordnet werden kann. Diese Eigenschaft erhebt digitale Signaturen zum Beweis dafür, dass der Eigentümer des privaten Schlüssels, der zum Erzeugen der digitalen Signatur verwendet wurde, dem Inhalt der Transaktion zustimmt.

Ausblick

Dieser Schritt beschließt das Thema, wie die Blockchain das Eigentum auf der Ebene einzelner Transaktionsdaten schützt. Im Endergebnis sind Transaktionen und ihr Zweck (Übertragung und Nachweis von Eigentum) sicher. Allerdings ist es wichtig sicherzustellen, dass Transaktionsdaten nicht nur auf individueller Ebene geschützt sind – es wird also noch eine Möglichkeit benötigt, die gesamte Transaktionsdatenhistorie auf sichere Weise zu speichern. Dies wird in den nächsten Schritten detailliert erläutert.

Zusammenfassung