Warum Blockchain?
Zur Zeit, gerade auch im eCommerce Bereich, „geistert“ immer wieder durch die Presse, dass Blockchain Technologie die zukunftsweisende Technologie schlechthin ist und viele Unternehmen berichten, dass sie planen diese Technologie einzuführen. Doch neben den Hype Themen mangelt es an fundierten Erklärungen, was Blockchains überhaupt sind und wie sie funktionieren, die Entscheider und nicht „Nerd“ orientiert sind. Im Folgenden möchten wir diese Lücke schließen und transparent Blockchains u.a. am Beispiel von Bitcoins erklären.
Der erste Schritt zum Verständnis – Was ist ein Hashwert?
Um den Aufbau und die Funktionsweise dieser Technologie zu verstehen, ist es zunächst wichtig, dass man versteht, was ein SHA256 Hashwert ist. SHA256 ist eine kryptologische Hashfunktion, die vom US-amerikanischen National Institute of Standards and Technology (NIST) entwickelt wurde. Der Begriff SHA kommt von Secure Hash Algorithm und die Bezeichnung 256 gibt die Länge des Hashwertes in Bits an.
Was leistet ein Hashwert?
Eine Hashfunktion ist eine Funktion, die eine Zeichenfolge beliebiger Länge auf eine Zeichenfolge mit fester Länge, dem sogenannten Hashwert, abbildet. Eine Verwendung von Hashwerten ist z.B. die Integritätsprüfung von Textnachrichten. Zu einem identischen Text ist der Hashwert, nämlich immer gleich.
Hier einige Beispiele von Hashcodierungen:
SHA256(„“) = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA256(„Franz jagt im komplett verwahrlosten Taxi quer durch Bayern“) = d32b568cd1b96d459e7291ebf4b25d007f275c9f13149beeb782fac0716613f8
Im Folgenden ist zu erkennen, dass obwohl nur ein Buchstabe geändert ist, der Hashwert völlig anders aussieht:
SHA256(„Frank jagt im komplett verwahrlosten Taxi quer durch Bayern“) = 78206a866dbb2bf017d8e34274aed01a8ce405b69d45db30bafa00f5eeed7d5e
Wer einmal selber mit Hashfunktionen experimentieren möchte, sei diese Webseite empfohlen: https://hashgenerator.de
Wichtig zu verstehen ist dabei, egal wie lang die Eingangsinformation ist, eine Hashfunktion berechnet immer einen gleichlanger Hashwert der immer eindeutig ist.
Ändert man auch nur einen Buchstaben der Eingangsinformation, ändert sich der Hashwert vollständig. Eine identische Buchstabenfolge führt jedoch immer zum gleichen Hashwert.
Was ist ein Block?
Aus diesem Prinzip der Hashfunktion kann man nun einen sogenannten Block entwickeln, indem man die Nutzinformationen, z.B. einen Text, und den Hash dieser Information mit einer Nummer, einer sogenannten Blocknummer verknüpft. Die Blocknummer kann dabei eine beliebige eindeutige Nummer sein.
Mit dieser Nummer lässt sich dann ein Block in einer Menge von Blocks immer wiederfinden.
Damit sichergestellt ist, dass die Nutzinformation, z.B. unser Text, nicht verändert worden ist, wird zusätzlich eine weitere Zahl, nennen wir sie Nonce Wert, und eine Konvention benötigt.
Als Konvention ist z.B. festlegbar, dass der Hash, der zusammen aus der Nutzinformation und dem Nonce-Wert errechnet wird, immer mit „0000“ beginnen muss, um gültig zu sein. Sofern dies der Fall ist, also der Hash mit „0000“ beginnt, gilt der jeweilige Block als „signiert“. Für Dritte ist leicht sicherzustellen, dass die Information nicht verändert worden ist. Sobald der Hash nämlich nicht mehr mit „0000“ beginnt, gilt die Information als verändert.
Das Finden von Hashwerten, die aus einem Text und einem Nonce-Wert ermittelt werden und die der oben genannten Konvention entsprechen müssen, ist im Vergleich zum Hashwert generieren deutlich komplexer. Die Tätigkeit solche Hash-Werte zu finden, nennt man übrigens Mining. Ein solches Mining ist i.d.R. sehr ressourcenintensiv, da viele Hashwertberechnungen erforderlich sind, bevor ein gültiger Hashwert gefunden wird.
Wie entsteht eine Blockchain?
Um jetzt eine Kette von Blöcken, zu bekommen, benötigen wir eine definierte Reihenfolge in der die einzelnen Blöcke zueinander stehen. Jeder Block verweist dazu auf seinen Vorgänger, indem der Hashwert des Vorgängers, der sich aus der Nutzinformation und dem Nonce-Wert ergibt, beim aktuellen Block gespeichert wird.
Da der erste Block keinen Vorgänger hat, wird per Definition als Vorgänger ein Hashwert bestehend aus lauter „0“ eingetragen. Weiterhin wird der Hashwert der Vorgänger für die Ermittlung des eigenen Hashwertes berücksichtigt. Fertig ist unsere Blockchain.
Eine geänderte Information in einem Block führt dazu, dass sich der Hashwert ändert. Alle nachfolgenden Blocks gelten dann als nicht mehr valide.
Selbst wenn ein neuer Nonce-Wert ermittelt wird, sodass der Hash des veränderten Blocks wieder mit „0000“ beginnt, verbleiben dennoch alle nachfolgenden Blocks auf dem Status „nicht valide“, denn auch für diese Blocks muss nun ein neuer Nonce-Wert ermittelt werden, um diese Blocks wieder zu signieren.
Wenn man in einer Kette aus Blöcken Inhalte ändern möchte, wird es somit erforderlich alle nachfolgenden Blocks neu zu signieren.
Wie funktioniert die Absicherung gegen Änderungen?
Feststellen, ob ein Inhalt geändert ist, ist über ein verteiltes System sichergestellt, welches an verschiedenen Orten identische Kopien der Blockchain vorhält.
Ist ein Block in einer Kette geändert und die gesamte Kette neu signiert worden, erhält man zwar eine valide Kette, die Hashwerte dieser Kette unterscheiden sich aber von den Hashwerten der anderen Kopien. Somit kann man durch einen Vergleich zwischen der geänderten Blockchain und den anderen dezentral gespeicherten Kopien die Informationsänderung leicht feststellen.
Sofern man nicht alle Blockchains gleichzeitig ändert oder ändern kann, sind die anderen Kopien zur Prüfung auf Korrektheit ausreichend. Das interessante ist, auch wenn mehrere Millionen Einträge in einer Blockchain sind, es völlig ausreicht den letzten Block zu betrachten, um Manipulationen in einer Kette festzustellen. Darüber hinaus kann auch genau festgestellt werden, welche Information geändert bzw. manipuliert worden ist.
Was ist das Potenzial dieser Technologie für die Wirtschaft?
Das wesentliche Potenzial dieser Technologie liegt in dezentralen Kooperationsmodellen, die sich auf diesem Weg einfacher als bislang aufbauen lassen.
Der Einsatz ergibt immer dann Sinn, wenn Prozesse unternehmensübergreifend durch ein Netzwerk von Beteiligten geführt werden und eine gegen Manipulation geschützte Prozessablaufverfolgung benötigt wird, die ohne große IT Schnittstellenprojekte schnell, kostengünstig und falls benötigt, auch vollständig automatisiert zur Verfügung steht. Hier sind bei klassischer Vorgehensweise erheblich Aufwände für IT-Schnittstellen erforderlich, die beim Einsatz von Blockchain Technologie entfallen können.
Welche Probleme sind zu lösen?
Blockchains funktionieren vom Prinzip her zunächst mal offen. Das heißt, dass jeder, alle Transaktionen oder Prozessabläufe, die in einer Blockchain gespeichert sind, nachvollziehen kann. Für Geschäftsgeheimnisse ist dieser Weg somit keine Option. Doch dafür lassen sich private Blockchains nutzen.
Die gleichen Aspekte sind beim Datenschutz zu berücksichtigen.
Wie nutzen Bitcoins Blockchains?
Statt, wie in unserem obigen Beispiel, als Informationen einen Text zu verwenden, können natürlich genauso gut eine beliebige Menge an finanziellen Transaktionen auf diesem Wege veränderungssicher in einen Block geschrieben werden und schon sind wir bei der bekanntesten Anwendung von Blockchains, den Bitcoins.
Bei Bitcoins kommt jetzt aber noch eine wichtige Information hinzu. Wenn man als Informationsinhalt finanzielle Transaktionen nutzen will, muss darüber hinaus aber auch sichergestellt sein, das jemand die Transaktion auch durchführen kann. Wenn ich z.B. 100 Euro an jemanden überweisen will, muss ich diese 100 Euro natürlich auch besitzen. Dazu beinhaltet die Blockchain zusätzlich initial eine Coinbase, oder Geldmenge, die natürlich immer gleich bleibt.
Anhand der Verknüpfung zum Vorgänger kann man nun prüfen, ob jemand für eine Transaktion über ausreichend Geld verfügt. Hierzu muss man nur die Kette der Transaktionen ausreichend lang rückwärts durchlaufen. Natürlich ist hierbei wesentlich, dass alle Vorgänge vollständig in der Blockchain dokumentiert sind. Transaktionen, die an der Blockchain vorbeilaufen, sind nicht erlaubt.
Fazit
Blockchains sind ein universelles Prinzip einer dezentralen, aber trotzdem verlässlichen Speicherung von Veränderungen. Das Prinzip basiert auf der Unabhängigkeit der Blockchain „Besitzer“. Nur sofern es mir gelingt die Mehrheit der Blockchains zu kontrollieren, kann ich Änderungen rückwirkend vornehmen. Denn „wahr“ ist in einer Blockchain, was die Mehrheit sagt.
Der eigentliche Nachteil von Blockchains ist, dass der Energiebedarf, der durch den Betrieb von unabhängigen Blockchain Systemen entsteht, nicht unerheblich ist. Somit ist das Betreiben von Blockchains teuer. Die Blockchain für die digitale Währung Bitcoins war z.B. Ende 2015 z.B. bereits 50 GB groß. Wenn man also selber eine Blockchain betreiben möchte, ist eine zentrale Frage, wie genügend unabhängige Stellen motiviert werden können diese Kosten zu tragen.
Die Anwendungen von Blockchain Technologie können aber sehr vielfältig sein und gehen weit über ein Transaktionsprotokoll hinaus. Wer selber Blockchain Applikationen entwickeln will, dem sei die Webseite Ethereum.org (https://ethereum.org) empfohlen.