© Excellent backgrounds/Shutterstock.com
Die am schwierigsten zu verstehende Datenbank der Welt

Blockchain demystified


Der Blockchain-Hype geistert nach wie vor durch die Technologiewelt. Mittlerweile sind auch zahlreiche Banken und Softwareunternehmen darauf aufmerksam geworden und versuchen entsprechende Produkte am Markt zu platzieren. Wer sich allerdings eingehender mit der Technik auseinandersetzt und vor allem deren Nachteile kennenlernt, wird feststellen, dass die als disruptive Technologie angesehene Blockchain eher für spezielle Anwendungszwecke geeignet ist als für die breite Masse.

Die Blockchain ist eine vergleichsweise unzugängliche IT-Technologie. Das hängt zum einen mit den zugrunde liegenden komplexen Algorithmen zusammen, zum anderen mit den vielen verschiedenen Konzepten und Technologien, die sie enthält. Trotzdem ist das Thema aufgrund der direkten Beziehung zu den weit verbreiteten Bitcoins ins Rampenlicht gerückt. In vielen Gesprächen mit unseren Kollegen bestätigte sich allerdings der Eindruck, dass zwar die grundlegenden Ideen der Blockchain verstanden wurden (verteilt, öffentlich ...), konkrete Fragen zu den Vor- und Nachteilen, Alternativen und konkreten Projekteinsatzmöglichkeiten aber nicht beantwortet werden konnten.

Der Grund dafür liegt vor allem in der steilen Lernkurve. Denn bis man die Blockchain grob verstanden hat, vergehen im Schnitt einige Tage, in denen man sich intensiv mit dem Thema auseinandersetzen muss. Dieses mangelnde Wissen bietet – wie so oft – Nährboden für hochtrabende Marketingkampagnen. Im Zuge dessen warten bereits große IT-Firmen mit Blockchain as a Service auf. Insbesondere Banken interessieren sich für das Thema. Eine Private Blockchain als Ergebnis von Kooperationsprojekten befindet sich mindestens in der Diskussion. Hier beobachten wir parallele Muster wie beim Thema Big Data. Das spiegelt sich besonders in den Anfragen wider, die wir im Sinne von „Wir wollen mal etwas mit Blockchain machen“ erhalten. Zu Beginn sollte man sich bewusst machen, dass die Blockchain ein Public Ledger ist. Das bedeutet, sie ist eine öffentliche Datenbank, an der jeder nach Belieben teilnehmen und wieder aussteigen und das System von jedem gelesen und beschrieben werden kann. Darüber hinaus kann das System nur betrieben werden, wenn viele Teilnehmer dazu bereit sind, Ressourcen in Form von Rechnerkapazitäten zu investieren und Blöcke zu erzeugen (Mining). Deshalb muss ein Anreiz geschaffen werden, das zu tun. Bei Bitcoin war das eine Gewinnausschüttung. Sind zu wenige Teilnehmer im Netzwerk, kann dieses leicht manipuliert werden. Wenn ein potenzieller Bösewicht mehr als die Hälfte der Netzwerkknoten kontrolliert, ist es ihm möglich, falsche Informationen in der Blockchain unterzubringen und die Konsistenzprüfungen in seinen Netzwerkknoten auszulassen. Auf der anderen Seite verfehlt eine Blockchain, die man gemeinsam mit Freunden und Partnern betreibt, die eigentliche Idee.

Es existieren zwar genügend öffentliche Informationsquellen, doch viele haben uns nicht zufriedengestellt und waren entweder sehr oberflächlich oder gingen zu sehr ins Detail. Um ein tieferes Verständnis für Entwickler zu schaffen, haben wir uns deshalb dazu entschieden, eine einfache Blockchain in Java zu implementieren. Damit verlässt man die rein konzeptionelle Diskussionsebene und kann die Grundzüge einer Blockchain bereits in wenigen Zeilen Code abbilden.

jblockchain: die ersten Schritte

Unsere Blockchain auf Java-Basis ist bewusst einfach gehalten und verfügt aus Benutzersicht nur über die Funktion, Nachrichten zu versenden und sich diese in der Blockchain anzuschauen, ähnlich einem öffentlichen Chatroom. Grundsätzlich unterscheidet man zwischen Anwendern (die z. B. im Bitcoin-Netzwerk Geld austauschen) und Netzwerkteilnehmern, welche die Infrastruktur stellen, die Daten speichern und für die Kommunikation unter den Teilnehmern sorgen. Je nachdem, ob man Benutzer oder Netzwerkteilnehmer ist, müssen unterschiedliche Dinge gemacht werden. Um die Beispiel­implementierung direkt ausprobieren zu können, muss lediglich das GitHub-Projekt [1] geklont und mit Maven gebaut werden. Da wir zur Kommunikation mit anderen Anwendern die Infrastruktur benötigen, müssen wir einen Node hochfahren. Das Kommando zeigt, wie es geht:

java -jar node/target/node-0.0.1-SNAPSHOT.jar

Zur Kommunikation mit anderen Teilnehmern werden ein privater und ein öffentlicher Schlüssel sowie ein Benutzername benötigt...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang