... für erfolgreiche Projekte

et cetera - blockchain erklärt

Blockchain ist Konzept und Technik zur verteilten Datenhaltung von Eigentumsnachweisen, insbesondere ohne zentrale Stelle. Verschiedene Technologien aus der Kryptographie zusammen mit neuen Algorithmen ermöglichen eine verlässliche Datenhaltung in einem an und für sich nicht verlässlichen Netzwerk, dem Internet.

Die folgende Zusammenfassung fokussiert auf ein öffentliches Blockchain System, verteilt über das potentiell unsichere Internet.

Datenhaltung in der Blockchain

Das Konzept der Blockchain geht zurück auf eine Publikation (Whitepaper) von Satoshi Nakamoto vom Jahr 2007/2008. Das Ziel ist es, «Eigentum» in einem System sicher zu dokumentieren, ohne eine zentrale Stelle zu involvieren oder zu etablieren.

Zusammengefasst

Das Blockchain-Konzept und die Implementierungen davon (zB BitCoin Blockchain) zeigen, so ein System ist…

  • hochverfügbar
  • sicher
  • robust (resilient)
  • konsistent und integer

Die Grundpfeiler dieses rein verteilten Systems (Distributed Peer-to-Peer P2P System) sind:

  • Eigentum beschreiben durch die gesamte Historie von Transaktionsdaten. D.h. die letzte Transaktion zu einem Eigentum definiert den Eigentümer.
  • Eigentumsübertrag wird durch Digitale Unterschrift autorisiert.
  • Speicherung der Transaktionen erfolgt in einem Hauptbuch («Ledger»). Dieses Hauptbuch wird bei jedem Teilnehmer gesamthaft gespeichert.
  • Sicherstellen, dass das verteilte Hauptbuch nicht nachträglich verändert werden kann.
  • Neue Transaktionen werden an die System-Teilnehmer versendet und durch einen bestimmten «Blockchain-Algorithmus» dem Hauptbuch beim Teilnehmer hinzugefügt.
  • Durch eine Konsens-Bildung im Netzwerk werden verschiedene Versionen des Hauptbuches ständig bereinigt und damit eine einheitliche Transaktions-Historie akzeptiert.

 

Wichtig anzumerken:
Es gibt die System-Teilnehmer, welche aktiv an der Datenhaltung ‘arbeiten’ und neue Blöcke generieren (im Fachjargon auch «Miner» genannt). Dies sind Full-Node Teilnehmer.
Im Weiteren gibt es reine System-Nutzer mit Benutzerkonten, welche an Transaktionen beteiligt sind, jedoch keine aktive Rolle in der Datenhaltung spielen.

In dieser Zusammenfassung sind unter Systemteilnehmer / Teilnehmer immer Full-Node Teilnehmer gemeint.

Zugrundeliegende Konzepte

Die «Blockchain» ist das Zusammenfügen von verschiedenen bekannten Technologien zu einem verteilten Datenhaltungs-System ohne zentrale Stelle/Server.

Diese Technologien und Konzepte kommen dabei zum Einsatz:

  • Kryptologische Hash-Werte zur eindeutigen Identifizierung und Referenzierung von Daten. Hashwerte werden als Datenreferenz eingesetzt, und damit eine Veränderungs-Sensible Datenhaltung ermöglicht (vgl. Kryptologische Hashfunktionen und Merkle Tree).
  • Asymmetrische Verschlüsselung, Digitale Unterschrift von (Transaktions)-Daten
  • Hash-Puzzle («Difficulty») zur Sicherstellung einer bestimmten, kosten- und zeitintensiven Rechenleistung («Proof of Work»)
  • Peer-to-Peer (P2P) Kommunikation: Versenden von Transaktions-Mitteilungen an möglichst viele Teilnehmer («Peers») resp. Versenden aller Transaktionen bei neuen Teilnehmern.
Das «Blockchain»-Konzept basiert auf der Anwendung der verschiedenen Technologien, und etabliert eine Veränderungs-Sensible Datenstruktur:

inside blockchain graphic

Transaktionen

  • Transaktionsdaten beschreiben den gesamten Vorgang und umfassen mindestens eine Absender-Konto-Identifikation, eine Empfänger-Konto-Identifikation, Datum/Zeit-Stempel, die Eigentum-Beschreibung und die Digitale Unterschrift des Absenders.
  • Die Benutzer-Konto-Identifikation erfolgt durch den öffentlichen Schlüssel des Benutzers.
  • Die Digitale Unterschrift der Transaktion erfolgt durch den privaten Schlüssel des Absenders.
  • Durch den Hashwert der gesamten Transaktions-Daten wird die Transaktion eindeutig referenziert.
  • Eine bestimmte Anzahl von Transaktionen werden anhand der Hashwerte in einem Hash-Baum («Merkle Tree») zusammengefasst. Diese Struktur stellt die Integrität der gespeicherten Transaktionen sicher resp. jede Datenänderung zerstört den Baum und wird dadurch rasch erkannt.

Blöcke / Hauptbuch

  • Im Hauptbuch («Ledger») werden die Daten in miteinander verbundenen Blöcken gespeichert («Blockchain»).
  • Jeder Block hat bestimmte Kopfdaten: einen Zeitstempel, die Referenz zum vorherigen Block, die Referenz zum Hash-Baum der Transaktionen, einen Difficulty-Wert und einen «Nonce»-Wert. Über die gesamten Kopfdaten wird der Hash-Wert zur eindeutigen Identifikation des Blocks bestimmt.
  • Der Hash-Wert eines Blockes muss einer bestimmten Form entsprechen. Die «Difficulty» (= Anzahl führende Nullen beim Hash-Wert) definiert die Hash-Regel. Mit dem frei veränderbaren «Nonce»-Wert kann durch «Trial-and-Error» der entsprechende Hash-Wert des Blocks bestimmt werden. Diese Regel stellt sicher, dass Blöcke nur mit einer bestimmten Rechenleistung und mit einem bestimmten Zeitbedarf generiert werden.
  • Die Blockchain-Algorithmen stellen sicher, dass die Teilnehmer ein eminentes Interesse daran haben, nur gültige Transaktionsdaten hinzuzufügen. Durch gegenseitiges Kontrollieren der Resultate werden die Blöcke und Daten verifiziert.
  • Durch akzeptieren von Blöcken durch andere Systemteilnehmer werden die Daten bestätigt.
  • Systemteilnehmer werden für Ihre Rechenleistungen für verifizierte Resultate entschädigt, resp. bei Fehl-Resultaten die allfällige Entschädigung abgezogen.
  • Bei unterschiedlichen Blockchains zwischen den Teilnehmern (und diese Unterschiede treten infolge der P2P Architektur laufend auf) wird durch konsens-bildende Algorithmen («längste Kette» oder «schwierigste Kette») die Blockchain laufend abgeglichen und gefestigt. Aus diesem Grund werden Transaktionen erst nach einer bestimmten Anzahl Bestätigungen definitiv akzeptiert.

Das Zusammenfügen all dieser verschiedenen Aspekte führt dazu, dass nachträglich keine Änderungen mehr in der Datenhaltung angebracht werden können.

Annahme: Bei einer einzelnen, akzeptierten Transaktion soll der Wert des Eigentums verändert werden.

  • Der Hash-Wert der Transaktion verändert sich. Dieser Hash-Wert ist im Merkle-Baum gespeichert. Der gesamte Merkle-Baum muss neu berechnet werden (ein einzelner Hash-Wert kann nicht ersetzt werden aufgrund der Merkle Struktur). Dadurch verändert sich auch der Anfangswert der Baumstruktur (Merkle Tree Root im Block header) und damit der Inhalt des Block-Headers.
  • Für den Block muss der Hash-Value neu berechnet werden, d.h. das Hash-Puzzle des Blocks muss erneut gelöst werden. Dies benötigt signifikante Rechenleistung und -zeit.
  • Durch das Verändern des Hashwertes des Blocks wiederum müssen ALLE darauffolgenden Blöcke ebenfalls neu berechnet werden, da die Referenz zum vorherigen Block in der Hashwert-Bildung berücksichtigt ist. Und all das noch bei 51% der Systemteilnehmer gleichzeitig, damit die Konsensbildung der Blockchain die neue Struktur akzeptiert.

Dieses Beispiel zeigt, dass jede einzelne Veränderung in den Daten sich auf den Blockheader auswirkt und damit auf alle nachfolgenden Blockheader. Alleine durch das Hash Puzzle und der damit benötigten Leistung und Zeit ist ein nachträgliches Verändern der Daten unmöglich.

Herausforderungen

Die Transaktionen sind pseudo-anonym. Das heisst, dass jede Transaktion einer Benutzerkennung zugeordnet werden kann, jedoch die reale Person dahinter muss nicht bekannt sein. Die Blockchain bietet jedoch keinen Datenschutz: alle Transaktionen sind für jedermann Einsehbar (zB https://blockchain.info/de/blocks oder https://blockexplorer.com/ ). Kritiken von Seiten der Behörden plädieren für weniger Anonymität, handkehrum fordern Benutzer mehr Datenschutz.

Die Sicherheit der Digitalen Unterschrift resp. der Benutzer-Identifikation ist durch die asymmetrische Verschlüsselung sehr hoch. Jedoch der Zugang wird einzig durch den privaten Schlüssel sichergestellt. Es sind keine weiteren Angaben nötig. Damit ist ein einzelner Angriffspunkt gegeben für die Übernahme von Eigentum. Weiterentwicklungen müssen wohl diesem Umstand Rechnung tragen und erweiterte Sicherheit (z.B. eine Form von 2-Faktor-Authentifizierung) einbauen. Zusammen mit neuen, erweiterten Fallback-Szenarien im Falle des Verlustes von Zugriff-Angaben (z.B. Verlust des Private Key).

In letzter Zeit sind Fragen rund um die Rechenleistung für Blockchain aufgetaucht. So soll der Betrieb der Bitcoin-Blockchain so viel Energie benötigen wie zB Dänemark. Bei steigenden Energiekosten wird der Betrieb nicht mehr rentabel für Systemteilnehmer.

Die Transaktions-Rate von öffentlichen Blockchain-Anwendungen sind limitiert, der Aufwand zur Verarbeitung von Transaktionen noch sehr gross. Momentan sind Transaktionsraten von Kreditkarten-Transaktionen völlig unerreichbar.

Die Rechtslage ist unklar. Zwar kann das Eigentumsrecht dokumentiert werden. Wie kann aber in einem Streitfall jeglicher Art das Recht durchgesetzt werden?

Viele Fragen und Herausforderungen stehen an – und doch ist die Blockchain in aller Munde. Nicht nur wegen den Kryptowährungen, vermehrt auch als Plattform zur Implementierung von dezentralen Systemen direkt zwischen Partnern, ohne zentrale Institutionen. Es bleibt spannend und es sind noch nicht alle Möglichkeiten ausgelotet – gut möglich, dass eine neue Ära in der Digitalisierung anbricht.
Gibt es doch weitergehende Konzepte, welche die Blockchain mit Scripting erweitert, und damit die verteilte Datenhaltung zu einer verteilten Applikation erweitert.
Bald mehr dazu im Thema "Ethereum"

Quellen

Nebst den im Text bereits verlinkten Themen, weitere Quellen und Verweise:

 

Interessanten Aussagen und Einblicke:
...