Was ist eigentlich Blockchain?
Der Begriff “Blockchain” ist spätestens seit dem Bitcoin-Hype in der öffentlichen Wahrnehmung erschienen. Allerdings wird durch diesen Bezug oftmals übersehen, dass die Blockchain Technologie völlig unabhängig von Kryptowährungen zu sehen ist und in Wirklichkeit noch ganz andere Einsatzbereiche aufweist.
Der eigentliche Sinn von Blockchain ist es, eine konsistente fortlaufende Datenhaltung in einem potenziell offenen, aber in jedem Fall verteilten Daten-Storage zu gewährleisten. Wird irgendwo im Netzwerk ein Datensatz gehalten so muss ein Prüf-Mechanismus existieren der ermöglicht zu validieren, ob dieser Datensatz zu seinen Vorgängern passt. Der Versuch einen vorhandenen Datensatz zu ändern bedeutet damit zwangsläufig den Aufwand, auch alle Vorgänger und Nachfolger zu ändern. In einem verteilten System mit eventuell vielen Kopien einzelner Datensätze ein aussichtsloses Unterfangen.
Wie eben beschrieben referenziert ein Datensatz in einer Blockchain (mit Ausnahme des ersten Glieds der Kette) stets einen Vorgänger. Damit ist der natürliche Einsatzbereich der Blockchain Technologie bei Systemen zu finden, in denen eine fortlaufende Änderung von Zuständen erfolgt. Beispiele hierfür sind:
- Finanzielle Transaktionen im Bankwesen.
- Verkaufsvorgänge und Eigentumsnachweise eines Gegenstandes (Immobilien, Grundbesitz, Kunst- und Wertgegenstände)
- Historie von Kommunikation, beispielsweise Anweisungen
- Erfassung medizinischer Daten im Gesundheitswesen
- Spieler-Status und Wertung von Online-Games
- Und natürlich auch: Kryptowährungen
Grundlagen der Blockchain Technologie
Nach der eben erfolgten allgemeinen Einführung werden nun die notwendigen Bestandteile der Blockchain Technologie eingeführt. Weiterführende Informationen sind beispielsweise in der Wikipedia zu finden.
Die Datenhaltung einer Blockchain erfolgt dezentral in einem Netzwerk von Computern. Die einzelnen Knoten kommunizieren asynchron miteinander und können auf diese Art und Weise im Laufe der Zeit beliebig viele Informationen austauschen. Interessant für Unternehmen ist hier, dass kein zentraler Server oder Master-Knoten notwendig ist. Damit ist das System garantiert stets verfügbar, eine stets gültige Datenkonsistenz ist damit jedoch nicht gegeben. Dieses Problem ist in der Welt der NoSQL-Datenhaltung unter dem Namen der BASE-Architektur bekannt.
Ein zentraler Begriff ist der Hash. Ein Hash-Wert wird aus einer beliebigen Information, z.B. dem Inhalt einer Datei, mit Hilfe eines Hashing-Algorithmus’ berechnet. Die Anforderungen an diesen Algorithmus sind hoch:
- Ein Hash-Wert muss universell eindeutig sein. Dies bedeutet, dass aus zwei sich unterscheidende Dateien garantiert unterschiedliche Werte berechnet werden. Oder genauer: Die Wahrscheinlichkeit, dass unterschiedliche Informationen einen gleichen Hash-Wert bekommen ist so absurd gering, dass diese Möglichkeit in der Praxis keine Rolle spielt.
- Hash-Werte haben unabhängig von der Größe der Information stets die selbe Länge.
- Unterscheiden sich zwei Informationen selbst nur minimal (z.B. ein einziger Buchstabe in einem großen Dokument), so sind die erzeugten Hash-Wert komplett unterschiedlich. Aus ähnlichen Hash-Werten kann somit nicht auf ähnliche Informationen geschlossen werden.
Ein Record oder eine Transaction ist ein Datensatz, der von der Blockchain gespeichert wird. Der genaue Inhalt oder das Format eines Records ist nicht von Bedeutung. So kann ein Record eine simple Nachricht als Zeichenkette sein oder ein Verkaufsvertrag inklusive digitaler Signaturen von Verkäufer und Käufer.
Ein Block enthält im einfachsten Fall einen einzelnen Record. Zusätzlich enthält ein Block aber noch den Hash-Wert des Records. Jegliche nachträgliche Änderung des Records invalidiert damit den Block, so dass dieser neu erstellt werden muss. Dies ist noch kein großes Problem, aber nun kommt die Blockchain ins Spiel: Diese verkettet, wie der Name auch vermuten lässt, Blöcke dadurch miteinander, dass jeder Block den Hash-Wert seines Vorgängers enthält. Würde ein Angreifer nun einen Block innerhalb der Chain verändern, so müssten auch alle nachfolgenden Blöcke bestimmt und deren Hash-Werte neu berechnet werden.
Trust
Ein Problem bleibt jedoch so noch ungelöst: Wie kann sichergestellt werden, dass neue hinzuzufügende Records valide sind? Oder anders formuliert: Nach welchen Kriterien werden Records als vertrauenswürdig eingeschätzt und wer darf Blöcke erstellen?
Nun, zum einen sind die Knoten, die das Netzwerk einer Blockchain aufbauen, nicht dumm. Logik zum Validieren eines Datensatzes kann und muss auf den einzelnen Knoten bereitgestellt werden. Nur bei erfolgreicher Validierung akzeptiert die Blockchain eine neue Transaktion. Die Blockchain ist also im Endeffekt ein verteiltes Datenbanksystem wie Apache Cassandra, in dem auf den einzelnen Knoten jeweils ein Datenbank-Server läuft.
Zum anderen sind Blockchains nicht notwendigerweise offen, also “public”. Natürlich kann ein Unternehmen auch eine private Blockchain aufbauen, die nur Transaktionen authentifizierter Benutzer akzeptiert. Und schließlich können auch mehrere Unternehmen eine “Consortium Blockchain” definieren, in denen ebenfalls eine Authentifizierung notwendig ist.
Bei öffentlichen Blockchains wie beispielsweise einer Bitcoin-Börse kann aber jeder auch anonym neue Blöcke einstellen. Wie wird hier für Vertrauen gesorgt? Dafür gibt es so genannte “Consensus Modelle”. Das wahrscheinlich bekannteste ist das “Proof of Work”: Ein Client wird vom Netzwerk dann als vertrauenswürdig eingeschätzt, wenn er bereit war, einen bestimmten Aufwand zu betreiben, um eine Transaktion zu erzeugen. So ist das “Bitcoin-Schürfen” nichts anderes als das Erstellen eines hoch-komplexen Schlüssels, der beträchtliche Rechnerleistung erfordert. Alternativ werden bei “Proof of Stake” vom Blockchain-Betreiber Tokens vergeben, die beim Einstellen eines neuen Records mitgeliefert werden können.
Ausblick
Blockchain selbst ist “nur” eine Technik, um Sequenzen von Daten konsistent und unveränderbar verwalten zu können. Damit ist diese Technologie eine Grundlage für Datenbanken, die auf einem verteilten Netzwerk operieren sollen. Aktuelle Produkte fokussieren heute meistens auf der Ebene der Kryptowährungen. Allerdings evaluieren und implementieren Unternehmen in zunehmendem Maße auf Blockchain basierende dynamisch skalierende und hoch-verfügbare Systeme. Ob diese Systeme diese Erwartungen erfüllen werden und inwieweit der noch etwas rohe Blockchain-Ansatz modifiziert werden muss wird die Zukunft erweisen. Spannend bleibt das Thema aber allemal.