Die Blockchain, the next big thing?

Nein ist sie nicht. Denn sie ist nicht „next“, sondern schon mitten unter uns! Und damit meine ich nicht die langweiligen Use-Cases der Bezahlung mit Bitcoin in Online-Shops, sondern die Use-Cases, bei denen die wichtigsten Aspekte der Blockchain-Technologie (insbesondere Dezentralisierung und Transaktionsintegrität) zum Tragen kommen. Beispielsweise gibt es diverse Ansätze, Flüchtlinge, die ohne Dokumente um Asyl bitten, mittels Blockchain-Technologie digitale Identitäten anzubieten. Andere Use-Cases gravitieren im Orbit dezentraler Börsen für alles mögliche (Strom zum Beispiel). Wer Google bemüht findet weitere Beispiele.Aus diesem Grund haben wir uns frühzeitig mit der Blockchain beschäftigt und diese als Zukunftstechnologie identifiziert. Richtig interessant wurde das Thema für uns erst mit dem Erscheinen von Ethereum. Im Gegensatz zu Bitcoin und anderen Kryptowährungen ist Ethereum eine Plattform für verteilte Anwendung auf der Basis von Blockchain-Technologie. Ethereum bietet Programmierschnittstellen, mit denen man auf die Blockchain zugreifen kann. Somit kann man Anwendungen entwickeln, die:

  • sehr hohe Transaktionssicherheit bieten
  • echt Server-less sind
  • immer und für immer laufen können
  • Verträge (smart contracts) implementieren, die eindeutig sind, automatisch ablaufen und fälschungssicher sind

Gehen wir die einzelnen Punkte im Detail durch:
Transaktionssicherheit
Die Transaktionssicherheit in der Blockchain basiert auf 3 Grundtechnologien:

  • Peer-to-peer Netzwerke
  • Starke Kryptographie
  • Redundanz

Peer-to-peer Netzwerke
Die Blockchain basiert auf einem Peer-to-Peer Netzwerk. In diesem Netzwerk kommunizieren sog. Knoten mit benachbarten Knoten. Somit kann ein Blockchain-Netz nicht abgeschaltet oder heruntergefahren werden. Dazu müsste man alle Knoten abschalten, was bei Millionen von Knoten überall auf der Welt nahezu unmöglich ist. Für eine feindliche Übernahme des Systems würden mehr als die Hälfte aller Knoten benötigt.

Starke Kryptographie
Divere Aspekte einer Blockchain basieren auf starken kryptographischen Verfahren. Am wichtigsten für die Integrität der Blockchain sind Hashing-Algorithmen. Die Blockchain, wie der Name schon sagt, ist im Grunde eine Kette von Blöcken. In dieser Kette sind alle Transaktionen gespeichert, die es jemals in der Blockchain gegeben hat. Immer wenn ein neuer Block dazukommt, werden Hashes aus den vorherigen Blöcken errechnet. Somit kann ein Block geprüft werden, indem alle Hashes vom ersten Block an (in Ethereum heißt dieser Block der Genesis-Block) bis zum aktuellen errechnet werden und mit dem des Blocks verglichen werden. Stimmen sie überein, ist der Block valide. Das Verfahren ist in der Praxis etwas komplexer und es gibt Unterschiede zwischen den verschiedenen Blockchain-Ansätzen, das Grundprinzip ist aber immer gleich.

Redundanz
In Blockchain-Netze gibt es keine zentralen Server. Stattdessen gibt es die o.g. Knoten, die eine Kopie der gesamten Blockchain haben. Ja richtig, jeder Benutzer der Blockchain hat eine (mehr oder weniger aktuelle) Kopie der gesamten Blockchain. Somit ist es fast ausgeschlossen, dass ein Angreifer eine veränderte Kopie der Blockchain in Umlauf bringen kann, da es Vielzahl von Knoten mit „echteren“ Versionen gibt, die die eines Angreifers verdrängen würden. Aber diese Redundanz birgt auch den größten derzeitigen Nachteil der Blockchain-Technologie: Mangel an Skalierbarkeit. Wie oben beschrieben muss jeder Knoten die gesamte Blockchain verarbeiten und vorhalten.

Server-less
Wie oben beschrieben ist ein Blockchain-Netz ein Peer-to-Peer Netzwerk, das ohne zentralen Server auskommt. Damit werden, aus Sicht der Software-Entwicklung, echte sogenannte Server-less Applikationen möglich. Der Code bzw. die Verträge werden Teil der Blockchain und sind irgandwann auf jedem Knoten repliziert worden.
Run always and forever
Wir haben oben gesehen dass man ein Blockchain-Netz so gut wie nicht ausschalten kann, sofern hinreichend Interesse und Community-Grundgesamtheit zum Betrieb des Systems vorhanden sind . Somit sind Anwendungen, die auf der Blockchain geschrieben wurden, immer da und laufen auch für immer. (Auch wenn das in der Praxis nur die halbe Wahrheit ist, aber mehr dazu in einem der folgenden Artikel)

Smart Contracts
Das Herzstück der Ethereum-Blockchain-Technologie, aus Entwickler-Sicht zumindest, sind die sog. Smart Contracts. Diese stellen, wie der Name schon sagt, Verträge dar, die als Code in der Blockchain hinterlegt werden. Ethereum Smart Contracts werden in einer JavaScript-ähnlichen Sprache, genannt Solidity entwickelt und können recht komplex werden.

AUSBLICK
Nach dieser kurzen Einführung werden wir weitere Artikel zu den einzelnen Themen veröffentlichen. Wir werden den Fokus auf die Entwicklung für und mit der Blockchain legen sowie adjazent gelagerte Themen wie die Entwicklung von sog. Oracles und wie man mit den inhärenten Skalierungsproblemen der Blockchain umgehen kann.

Share your thoughts