Keine Blockchain ohne Hashfunktionen

Hashfunktionen spielen im Rahmen der Blockchain eine herausragende Rolle. Hashpuzzles liegen dem Proof-of-Work zugrunde. Ökologische Fragen und Sicherheitsthemen geraten miteinander in Konflikt. Erneuerbare Energien könnten dadurch einen Aufschwung erfahren, schätzt Morgan Stanley.

Bitcoin kurz analysiert – Währung, Kapitalanlage oder Spekulation? Wie spekuliert man am besten mit der Kryptowährung? – weitere Informationen zum Thema bietet mein KOSTENLOSES WHITEPAPER! Tragen Sie hier Ihre eMail-Adresse ein

Hashwerte im Bereich der Blockchain sind das digitale Gegenstück zu Fingerprints in der physischen Welt. Sie lassen sich konkreten Daten eindeutig zuordnen und ermöglichen damit Aktivitäten innerhalb der Blockchain. Erzeugt werden sie durch Hashfunktionen. Was Hashfunktionen sind, habe ich in einem früheren Blogpost bereits dargestellt.

Hashfunktionen erfüllen im Rahmen der Blockchain unterschiedliche Aufgaben

Der wichtigste Anwendungsfall ist das Vergleichen von Daten auf deren Übereinstimmung. Hashwerte machen es möglich, dass festgestellt werden kann, ob Daten identisch sind, ohne dass die Daten als solche bekannt sind oder verglichen werden müssen. Es genügt, die aus diesen Daten erzeugten kryptographischen Hashwerte zu vergleichen. Derartige „Basisdaten“ können etwa Dateien oder Transaktionsdaten sein.

Wenn aber mit Hilfe von Hashwerten festgestellt werden kann, ob Daten identisch sind, dann kann ebenso festgestellt werden, ob Daten verändert wurden. Stimmen die Hashwerte zweier vermeintlich identischer Basisdaten nämlich nicht überein, so muss das auf eine Veränderung der Daten zurückgeführt werden. Dies resultiert aus der vorher beschriebenen Kollisionsresistenz der kryptographischen Hashfunktionen.

Sogenannte „Hash-Referenzen“ finden in der Blockchain breite Anwendung und sind daher entsprechend wichtig. Diese „Hash-Referenzen“ werden in der Praxis eingesetzt, um auf Daten zu verweisen (diese sozusagen zu „referenzieren“), die an einem anderen Ort gespeichert sind. Eine derartige Hashreferenz ist wiederum ein eigener Hashwert, der aus der Kombination des Hashwerts der gespeicherten Daten und Informationen zum Speicherort der Daten resultiert. Solche Hash-Referenzen ermöglichen das “veränderungssensitive Speichern von Daten”, beispielsweise von Transaktionsdaten. Wurden diese Daten verändert, so ist die Hash-Referenz beschädigt, also nicht mehr ident mit der zuletzt gespeicherten. Die Veränderung kann daher präzise erkannt werden. Das versteht man unter veränderungssensitives Speichern von Daten.

Das klingt sehr kompliziert, man kann sich eine Hash-Referenz aber wie eine Garderobenmarke vorstellen. Eine Garderobenmarke verweist auf einen Garderobenhaken, auf dem ein Mantel hängt, sie „referenziert“ diesen Mantel. Steckt man nun in die Manteltasche eines Mantels eine weitere Garderobenmarke, so verweist diese wiederum auf einen anderen Mantelhaken und Mantel. Dies kann beliebig fortgesetzt werden. So lassen sich in der Praxis lange Ketten von Hash-Referenzen bilden. Da aber beschädigte Hash-Referenzen beweisen, dass Daten verändert wurden, lassen sich mit diesem Konstrukt sämtliche verknüpften Daten veränderungssensitiv speichern. Verkettete Hash-Referenzen sehen folgendermaßen aus:

In Form von Kettengliedern verknüpfte Daten
Quelle: Dreschner, D. “Blockchain Grundlagen” S. 105, Abb. 11.4.

 

Der Zugriff auf sämtliche Daten der Kette erfolgt in umgekehrter Reihenfolge des Hinzufügens lediglich über die Hash-Referenz R3, den sogenannten Listenkopf (auch Listenanker genannt). Ähnlich wie eine Liste lassen sich über die Verknüpfung von Hash-Referenzen auch Baumstrukturen erzeugen. Ein derartiger Hashbaum wird auch „Merkle Tree“ genannt.

Schließlich werden Hashfunktionen auch noch dazu benutzt, Computer mit aufwendigen Rechenaufgaben zu beschäftigen. Das mag sonderbar klingen, ist aber bei den meisten Blockchain-Anwendungen das gängige Konzept, um im Sinne eines Konsensmechanismus die Funktionsweise eines rein verteilten Peer-to-Peer-Systems sicherzustellen.

Hashpuzzles stellen die Basis des Proof-of-Work-Konzeptes dar

Mittels des Proof-of-Work-Konzeptes wird die Blockchain geschützt. Miner erhalten eine Belohnung dafür, dass sie neue Blöcke an die Blockchain anhängen. Bevor sie das können, müssen sie aber um die Wette rechnen. Wer innerhalb der Bitcoin-Blockchain als erster eine komplizierte Rechenaufgabe löst, erhält neu geschürfte Bitcoin als Belohnung. Da die Rechenleistung von Computern laufend ansteigt, muss auch der Schwierigkeitsgrad der Rechenaufgabe immer wieder zunehmen. Wofür wenden Miner aber jetzt so viel Rechenleistung und Strom auf, um ihre Bezahlung durch die Bitcoin-Belohnung zu verdienen? Sie „beweisen ihre Arbeitsleistung“ (Proof-of-Work), indem sie Hashpuzzles lösen. Deshalb spricht man in diesem Zusammenhang auch von „Arbeitsnachweis“.

Puzzles in der realen Welt haben vieles gemeinsam. Es braucht eine gewisse Zeit, um sie zu lösen. Je mehr Teile sie aufweisen, desto schwierger sind sie. Die Schwierigkeit kann festgelegt werden, indem man die Anzahl der Puzzleteile steigert. Je schwieriger ein Puzzle ist, desto mehr Zeit braucht es, um gelöst zu werden. Man muss ein Puzzleteil optisch auf seine Passfähigkeit hin beurteilen und dann einfach ausprobieren, ob es „hineinpasst“. Hashpuzzles weisen dazu viele Parallelen auf. Es gibt aber einen wesentlichen Unterschied. Logik hilft hier nicht. Man kann nur Ausprobieren. „“Trial and Error“ sind der einzige Weg zur Lösung. Es darf nicht möglich sein, das Hashpuzzle aufgrund von Wissen oder aufgrund von irgendwo gespeicherten Daten oder durch Schlussfolgerungen zu lösen. Brute Force, also reine Rechenleistung muss der einzige Weg zum Erfolg sein.

Als guten Vergleich aus der realen Welt kann man sich ein Zahlenschloss vorstellen. Kennt man die Zahl nicht, dann lässt es sich erst öffnen, wenn man durch systematisches Ausprobieren aller möglichen Zahlenkombinationen irgendwann eine bestimmte Ziffernfolge eingestellt hat. Hashpuzzles sind das digitale Gegenstück zum Öffnen eines Zahlenschlosses. Das Lösen eines Hashpuzzles erfordert:

  • bestehende Daten, die unverändert bleiben müssen
  • eine sogenannte „Nonce“, also vom Miner zufällig produzierte Versuchsdaten
  • eine Hashfunktion, die auf das kombinierte Datenpaket angewendet wird
  • die Auswahl eines Schwierigkeitsgrades als Beschränkung bezüglich des Hashwertes

Die folgende Abbildung zeigt eine schematische Darstellung des Hashpuzzles. Auf der Website www.blockchain-basics.com/HashPuzzle.html können Sie mit ihrem Computer jederzeit versuchen, ein Hashpuzzle praktisch zu lösen. Geben sie Ausgangsdaten im Imputfeld „Data“ ein, danach geben sie einen Ausgangswert im Inputfeld „Nonce“ ein. Wählen sie sodann den Schwierigkeitsgrad, indem sie eine Auswahl im Feld „Restrictions“ treffen. Aber Vorsicht: Sie werden erkennen, dass ihr Computer umso länger braucht, je höher der Schwierigkeitsgrad ist, den Sie wählen. Wenn Sie es „manuell“ versuchen wollen, dann wählen die Funktion „Calculate Hash Value“, indem Sie auf den Pfeil klicken. Zumeist wird dann der erzeugte Hashwert im Feld „Output“ rot unterlegt sein. Das bedeutet, dass das Hashpuzzle noch nicht gelöst ist. Wenn ihr Computer rechnen soll (was ja Sinn der Sache ist), dann klicken Sie auf das blau unterlegte Feld „Solve Hash Puzzle“. Im Outputfeld erscheint dann nach einer gewissen Zeit (die vom Schwierigkeitsgrad abhängt) der korrekte Hashwert, der das Puzzle löst. Dieser ist dann grün unterlegt. Versuchen Sie es!

Quelle: www.blockchain-basics.com/HashPuzzle.html, Zugriff 17.05.2018

Bei der Lösung muss also eine Nonce geraten werden und diese mit den Grunddaten kombiniert werden. Darauf wird dann die Hashfunktion angewendet und der resultierende Hashwert anhand der Beschränkungen bewertet. Falls der Hashwert die Auflagen erfüllt, ist das Hashpuzzle gelöst. Andernfalls muss der Vorgang mit einer neuen Nonce wiederholt werden. Dies wird solange wiederholt, bis die Lösung gefunden ist. Der richtige Hashwert wird Lösung genannt.

Ein Beispiel sagt mehr als tausend Worte

Das folgende Beispiel ist dem ausgezeichneten Buch „Blockchain Grundlagen“ von Daniel Drescher entnommen. Die Beschränkung heißt Schwierigkeitsgrad und ist für Computer natürlich standardisiert. Sie wird als natürliche Zahl ausgedrückt und gibt an, wieviele führende Nullen ein Hashwert aufweisen muss, damit er die Lösung darstellt. Bei einer Beschränkung von 1 muss eine führende Null vorhanden sein, bei einer Beschränkung von 3 sind es 3 führende Nullen und so weiter. Je mehr führende Nullen, desto höher ist die erforderliche Rechenleistung.

Bitcoin kurz analysiert – Währung, Kapitalanlage oder Spekulation? Wie spekuliert man am besten mit der Kryptowährung? – weitere Informationen zum Thema bietet mein KOSTENLOSES WHITEPAPER! Tragen Sie hier Ihre eMail-Adresse ein

Das folgende reale Beispiel aus dem Buch von Drescher zeigt, wie der als Input verwendete Datensatz „Hello World!“ mit einer Nonce – in diesem Beispiel eine natürliche Zahl – kombiniert wird. In diesem Beispiel beginnt also der Miner mit einer Nonce von 0 und erhöht bei jedem Versuch den Wert um 1. Beträgt der Schwierigkeitsgrad 1, so ist die Lösung nach vier Versuchen gefunden. Beträgt der Schwierigkeitsgrad 3, so sind bereits 615 Versuche erforderlich.

Nonces zum Lösen eines Hashpuzzles
Quelle: Dreschner, D. “Blockchain Grundlagen” S. 108, Tabelle 11.1.

 

 

Sie können das auch selbst ausprobieren auf der oben zitierten Website www.blockchain-basics.com/HashPuzzle.html . Das alles funktiniert nur deshalb, weil Hashfunktionen Einwegfunktionen sind. Denn dadurch ist sichergestellt, dass kein Rückschluss auf die Ursprungsdaten möglich ist und nur Versuch und Irrtum zur Lösung führt.

Der Ressourceneinsatz durch Proof-of-Work macht die Blockchain sicher

Der Einsatz von Rechenleistung und Energie macht die Blockchain zu einem Stromverschwender. Der weltweite Stromverbrauch für das Mining von Kryptowährungen ist gigantisch. Im Januar 2018 titelte das Handelsblatt: „Bitcoin Mining verbraucht bald mehr Strom als Argentinien.“ Und all diese Ressourcen werden praktisch ohne anderen Zweck eingesetzt als zur Lösung von Hashpuzzles. Die für das Mining von Kryptowährungen eingesetzte Strommenge könnte 2018 bis zu 140 Terrawatt Strom betragen. Das wären bereits 0,6 Prozent des weltweiten Strombedarfs. Die Schätzung stammt von Morgan Stanley, die bereits darüber nachdenken, ob das nicht einen Aufschwung für erneuerbare Energien bedeuten könnte. Diese Zahl überträfe übrigens den für das Jahr 2025 erwarteten Stromverbrauch für Elektromobilität.

Die Investmentbank denkt, dass das vor allem für Firmen aus den Bereichen Windkraft, Solarenergie und Stromspeicherung zu einem Wachstumstreiber werden könnte. Im Herbst 2017 hat in Österreich die Firma HYDROMINER ein erstes „Initial Coin Offering“ (also einen blockchainbasierten Tokensale) erfolgreich abgeschlossen. Ein weiterer ICO ist gerade in Umsetzung. Dieses Unternehmen erzeugt mittels eigener Kleinwasserkraftwerke ökologisch wertvollen Strom, der dann zum Minen verwendet wird. Kein Nachteil ohne Vorteil also.

Sehr viele Rechner wetteifern darum, wer derartige Hashpuzzles zuerst lösen kann. Ökologisch bedenklich, aber sicherheitsrelevant. Dadurch, dass quasi „Berechnungskosten“ für die Veränderung der Blockchain-Datenstruktur anfallen, ist ein nachträglich verändernder Eingriff in die Blockchain-Datenstruktur extrem teuer, da praktisch zurück bis zum gefälschten Block jeweils erneut Mining betrieben werden müsste. Die Blockchain ist deshalb fälschungssicher, da ökonomische Kosten aufgebaut werden, die eine Fälschung aus Ressourcengründen unsinnig macht. Ein wahrlich ungewöhnliches Konzept. Aus derzeitiger Sicht würde dieser Sicherungsmechanismus erst durch den Einsatz von Quantencomputern gefährdet. Die sind aber derzeit noch nicht in Sicht. Wer sich für Veranlagungen im Energiebereich interessiert, sollte deshalb auch das Thema Blockchain damit verbinden. Einerseits wegen des wachsenden Stromverbrauchs, andererseits, weil die Blockchain auch perfekte Geschäftsmodelle für Plattformunternehmen im Energiebereich bietet.

Bitcoin kurz analysiert – Währung, Kapitalanlage oder Spekulation? Wie spekuliert man am besten mit der Kryptowährung? – weitere Informationen zum Thema bietet mein KOSTENLOSES WHITEPAPER! Tragen Sie hier Ihre eMail-Adresse ein

 

 

Hat Ihnen der Artikel gefallen? Dann fühlen Sie sich frei, ihn zu teilen!

Was brennt Ihnen unter den Nägeln?

Ihre Email-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit einem Stern (*) markiert.