30.03.2021

Beitragsreihe Blockchain Deep Dives: Anwendung zum Nachweis der Existenz und Integrität von Daten

Das Interesse am Einsatz der Blockchain-Technologie in der Energiewirtschaft ist nach wie vor hoch. Nach der ersten Beitragsserie zum Thema „Blockchain in der Energiewirtschaft – Eine Einführung“ möchten wir in dieser neuen Serie etwas tiefer in die Grundlagen und technischen Komponenten einsteigen. Zum Einsatz der Blockchain und insbesondere bei der dezentralen Datenspeicherung und -verarbeitung sind einige Punkte zu beachten und verschiedene technologische Lösungen zu berücksichtigen, die wir hier inkl. Anwendungsbeispielen vorstellen möchten.

Als zweiter Teil der Beitragsserie zu „Blockchain Deep Dives“ steht im Folgenden die Anwendung von Hashfunktionen als fundamentalste Bausteine moderner Kryptographie im Fokus.

Im Rahmen des Projektes InDEED wird der Einsatz gemeinsam mit dem Fraunhofer Blockchain-Labor an der Universität Bayreuth umgesetzt und technisch erprobt.

Übersicht über die Beitragsserie zum Thema Blockchain Deep Dives

  1. Hashing und Merkle Trees für datenschutzgerechte Dokumentation
  2. Zero Knowledge Proofs für den sicheren Beweis ohne Offenlegung der Daten
  3. Komplexe Berechnungen und dezentralisierte Optimierung der Blockchain-Architekturen

In erster Linie eigenen sich Hashfunktionen als kompakte Repräsentation großer Datenmengen. Aufgrund ihrer Kollisionsresistenz ist es praktisch ausgeschlossen, dass eine Verwechslung zweier Datensätze nur durch ihre Hashwerte stattfindet. Dieser Umstand wird beispielsweise von Dateiverwaltungssystemen ausgenutzt, um Kontrollstrukturen platzsparend zu gestalten, aber auch bei digitalen Signaturverfahren wird aus Performancegründen anstatt des gesamten Datensatzes lediglich sein Hash signiert.

Darüber hinaus stellen Hashfunktionen einen exzellenten Schutz gegen Datenmanipulation dar. Werden nämlich die zugrundeliegenden Eingangsdaten einer Hashfunktion verändert, so ändert sich auch der resultierende Hashwert. Diese Änderung fällt selbst bei nur kleinen Eingriffen dramatisch aus. Aufgrund ihrer kompakten Größe ist der Vergleich zweier Hashwerte rechnerisch wenig aufwändig und kann von Sicherheitssystemen schnell erkannt werden.

Die Einwegseigenschaft von Hashfunktionen wird sich vor allem beim Speichern von Passwörtern zunutze gemacht. Anstatt der Passwörter selbst, speichern moderne Login-Systeme lediglich die Hashwerte der Nutzerpasswörter. Beim Login muss anschließend nur überprüft werden, ob der Nutzer einen gültigen Eingabewert für die Hashfunktion kennt. Wird das System allerdings kompromittiert und die Hashwerte von Angreifern gestohlen, so ist es ihnen nicht möglich, die Passwörter zu rekonstruieren.

Hashing-Mechanismen spielen eine zentrale Rolle in der Blockchain. So wird beispielsweise jeder Block und jede Transaktion in einen Hash umgewandelt. Auch die Verknüpfung zwischen den Datenblöcken erfolgt dadurch, dass der Hash des vorherigen Blockes mit in den Hash des aktuellen Blocks einbezogen wird. Dies garantiert, dass Änderungen innerhalb eines beliebigen Blocks der Kette die Hash-Werte dieses Blocks verändert und somit die Verbindung zum nächsten Block unterbricht (da die Verknüpfung nicht mehr stimmt). Alle anderen Knoten im Netzwerk können so manipulierte Ketten schnell und effizient unterscheiden.

Hash-Bäume finden vorwiegend Verwendung in Peer-to-Peer Protokollen, aber auch in diversen anderen Systemen mit überdurchschnittlich großen Datenmengen. Einer der ersten Anwendungsfälle waren Filesharing-Dienste wie Gnutella, die mithilfe von Hash-Bäumen die Integrität empfangener Daten schon vor dem vollständigen Download sicherstellen konnten. Ein ähnliches Prinzip findet sich in neuartigen Dateisystemen à la IPFS oder ZFS wieder.

Auch abseits von Dateiübertragung begegnet man Hash-Bäumen in einer Vielzahl weiterer Umgebungen. Mehrere Datenbanken für besonders große Datenmengen (z. B. Cassandra, Dynamo) verwenden beispielsweise Hash-Bäume zur Indexierung ihrer Inhalte und auch Versionskontrollsysteme wie git und Mercurial machen Gebrauch von der guten Performance.

Das erstarkte Interesse an Hash-Bäumen in der Wissenschaft hingegen geht vor allem mit dem Siegeszug von Bitcoin einher. Wie viele andere Kryptowährungen auch, verwendet Bitcoin die Wurzelknoten von Hash-Bäumen, um mehrere Transaktionen zusammenzufassen. So lassen sich die strikten Speicherplatzbeschränkungen von Blockchains elegant umgehen, ohne eine Manipulation der darin enthaltenen Daten zu befürchten.

Erfolgt eine Manipulation innerhalb einer einzigen Transaktion (z. B. Transaktion T2), ändern sich die Hashwerte bis hin zum Merkle Root Hash. Andere Knoten im Blockchain-Netzwerk erkennen diese Manipulation, da die Hashes nicht mehr mit den Hashes der mittels des Konsens-Mechanismus validierten Hauptkette der Mehrheit im Netzwerk übereinstimmen. Die manipulierte Kette wird vom Netzwerk ignoriert.

 

Anwendung in der Energiewirtschaft

Gerade im Kontext digitaler Energieplattformen ist es notwendig, ein sicheres, zuverlässiges und manipulationsresistentes Plattformdesign zu gewährleisten. Transparenz und unabhängige Überwachung des Plattformbetriebs sind dabei essenziell [1]. Im Rahmen eines Forschungsbeitrags mit dem Titel „Decentralizing Smart Energy Markets – Tamper-proof Documentation of Flexibility Market Processes“ zeigt die FfE verschiedene Konzepte und technische Umsetzungsvarianten zur Blockchain-basierten Dokumentation relevanter Prozesse auf einer Marktplattform [2]. Dabei werden die drei Varianten einer direkten Speicherung (1), der Ablage von verschlüsselten Daten (2) oder relevanter Hashes (3) einander gegenübergestellt.

  • Die offene Speicherung der Anwendungsdaten auf einer Blockchain bringt Einschränkungen mit sich, vor allem hinsichtlich der Skalierbarkeit und des Datenschutzes. Im Allgemeinen ist die Skalierbarkeit von Blockchains in Bezug auf die Speicherkapazität und den Durchsatz begrenzt. Außerdem sind die Kosten für die Speicherung hoch. Die Speicherung privater Daten ist vor allem bei öffentlichen Blockchains ein Problem, da die Daten dort für jeden offen zugänglich sind.
  • Die Verschlüsselung der gespeicherten Daten ist ein Ansatz zur Wahrung der Vertraulichkeit auf Blockchains. Da Verschlüsselungsalgorithmen anfällig für zukünftige Schwachstellen sind, ist es fraglich, ob die öffentliche Speicherung verschlüsselter privater Daten mit Vorschriften wie der EU Datenschutzgrundverordnung (DSGVO) konform ist. Darüber hinaus erfordert die DSGVO auch die Möglichkeit, Daten auf Anfrage zu löschen, was mit der Unveränderlichkeit der auf einer Blockchain gespeicherten Daten in Konflikt steht.
  • In Anbetracht dieser Einschränkungen besteht eine Alternative darin, nur Daten Hashes auf der Blockchain zu speichern und die Daten selbst außerhalb der Blockchain zu speichern. Die Integrität der Off-Chain-Daten kann folglich anhand des on-chain gespeicherten Hashes nachgewiesen werden. Aufgrund der konstanten Länge eines Hashes benötigt dieser Ansatz weniger Speicherkapazität, was die Skalierbarkeit verbessert. Die Pre-Image-Resistenz einer Hash-Funktion verhindert, dass von ihrem Hash auf private Daten geschlossen werden kann und sorgt so für die erforderliche Vertraulichkeit. Da die Daten außerhalb der Kette gespeichert werden, ist es auch möglich, sie auf Anfrage zu löschen, was die Datensouveränität verbessert. Dennoch geht dieser Ansatz auf Kosten der verbesserten Verfügbarkeit der Blockchains und schränkt die Transparenz ein, da die Daten selbst weiterhin off-chain bereitgestellt werden.

Die folgende Tabelle stellt die verschiedenen Optionen gegenüber.

Als zusätzliche Maßnahme zur Verbesserung der Skalierbarkeit können Prozessdokumentationsdaten gesammelt werden, um einen Merkle-Baum zu erstellen, was zu einem einzigen Root-Hash und damit zu weniger benötigter Speicherkapazität auf der Blockchain führt. Aufgrund der Eigenschaften des Merkle-Baums reicht dieser Root-Hash allein aus, um die Integrität der einzelnen Dateneinträge zu überprüfen.

Der Wurzel-Hash eines Merkle-Baums kann, sobald er in der Blockchain gespeichert ist, zur Überprüfung der Integrität der Daten verwendet werden. Unter der Annahme der Korrektheit der Daten, die für die Konstruktion des auf der Blockchain gespeicherten Wurzel-Hashes verwendet wurden, können alle Daten, die von der Plattform zu einem späteren Zeitpunkt bereitgestellt werden, als unbeeinflusst angesehen werden, wenn sie zur Rekonstruktion eines identischen Wurzel-Hashes verwendet werden können. Bei der vorgenannten ersten Möglichkeit, einen Root-Hash auf der Blockchain zu speichern, kann die Korrektheit der von der Plattform verwendeten Eingabedaten durch den Benutzer ex-post validiert werden. Dazu erhält der Nutzer von der Plattform eine Liste von Hashes, aus denen er zusammen mit seinen eigenen Eingabedaten den Wurzelhash des Merkle-Baums lokal rekonstruieren kann. Wenn dieser lokale Wurzel-Hash mit dem auf der Blockchain gespeicherten übereinstimmt, beweist dies, dass die Eingabedaten des Nutzers von der Plattform korrekt berücksichtigt wurden.

Die folgende Abbildung zeigt einen Vergleich der Speichervarianten.

Abbildung: Vergleich der On-Chain-Speicherung (links) mit der Speicherung von Hashes (Mitte) und des Root Hashes eines Merkle Trees (rechts)

Weitere Informationen:

 

Literatur:

[1] Guse, Miguel: Potenzial der Blockchain-Technologie bei der Dokumentation von Smart Market Prozessen – Blockchain Potential in Smart Market Process Documentation. Bachelorarbeit. Herausgegeben durch die Technische Universität München – betreut durch die Forschungsstelle für Energiewirtschaft e. V.: München, 2020.

[2] Zeiselmair, Andreas et al.: Decentralizing Smart Energy Markets – Tamper-proof Documentation of Flexibility Market Processes. Mittweida: Blockchain Competence Center der Hochschule Mittweida, 2020.