Wir finden sie hauptsächlich in kleineren Projekten mit Startup-Charakter, oder lesen über sie in Fachartikeln in entweder sehr oberflächlicher oder aber großer detailtechnischer Tiefe, inklusive aller kryptographischer Algorithmen. Wenig finden wir darüber, wie sie denn als Technologie in der Praxis erfolgreich einzusetzen ist.

Fällt die Wahl auf sie, stellen sich direkt erste Fragen: Wo finde ich einen Blockchain-Entwickler? Wie hoch ist der Aufwand? Wie viel teurer ist das Blockchain-Projekt verglichen mit herkömmlichen Lösungen? Daher schlage ich Ihnen folgende drei Schritte für ein gutes Fundament ihres ersten Projektes vor.

Schritt 1: Schaffen Sie Konsens!

Viele sehen die Blockchain als eine Art neue Datenbank, wie schon auch die Definition auf Wikipedia es vorschlägt, und dem möchte ich wiedersprechen. Zwar geben Blockchain-Technologien meist auf der einen Seite klar vor, wie Daten strukturiert sind und in welcher Relation sie zu einander stehen. Was aber fehlt, ist eine Auskunft darüber, wie Daten effizient abgefragt und genutzt werden können – ein für mich zentrales Kriterium einer Datenbank.

Blockchains geben zudem vor, wie neue Daten unter den Teilnehmern verteilt und ausgetauscht werden. Daher betrachte ich die Blockchain vornehmlich als Datenaustausch-Technologie. Die fachlichen Informationen, die über die Blockchain ausgetauscht werden, beispielsweise Dokumenten-Hashes oder Kryptowährungen, können die Teilnehmer des Netzwerkes weiterhin in klassischen Datenbanken speichern. Das erlaubt es, die Informationen effizienter und passend zum Anwendungsfall abzufragen.

Ein gemeinsames Verständnis der Blockchain sollte also den Startpunkt eines jeden Entwicklungsprojekts bilden; innerhalb der Firma und besser noch über die Grenzen der Organisationen hinweg, denn es gibt viele verschiedene Blockchain-Technologien und -Philosophien. Viele davon sind sperrig und lassen sich nur schwer mit der bestehenden Technologielandschaft verbinden.

Schritt 2: Prüfen Sie die Tauglichkeit der Blockchain auf ihren Anwendungsfall!

Geht es daran, einen Grobentwurf der Architektur für das Projekt zu entwerfen, sollte ein starker Schwerpunkt auf Sicherheit, Datenschutz, Mengengerüst und Governance liegen. Dabei stellen sie schnell fest, ob die Blockchain-Technologie wirklich alle Anforderungen erfüllt oder ob Sie nach Alternativen Ausschau halten müssen. Ein paar Szenarien: Stellen Sie sich beispielsweise vor, Netzwerkteilnehmer verteilen personenbezogene Daten offen in der Blockchain. Aber eigentlich unterliegen diese dem Datenschutz und dürfen nicht außerhalb Ihrer Organisationseinheit sichtbar sein. Ein gutes Gegenmittel beim Einsatz der Blockchain hierfür ist die Verschlüsselung von Daten oder der Austausch von Prüfsummen.

Oder Sie haben Anforderungen, dass gewisse Informationen löschbar bleiben müssen, haben aber keinen Einfluss auf die anderen Teilnehmer, um redundant gespeicherte Informationen zurückzuholen. Gleichen Sie also alle Anforderungen des Projekts mit den Charakteristiken der gewählten Technologie ab bevor sie Startschuss zünden.

Schritt 3: Machen Sie sich ein Bild von den weiteren Technologien und Frameworks, die ihr Entwicklungsprojekt begleiten!

Zu guter Letzt müssen Sie konkrete Technologien auswählen und überlegen, wie Sie diese mit dem bestehenden Entwicklungs-Know-How integrieren können, z.B. durch Referenzimplementierungen mit bereits genutzten Technologien wie Java EE oder Spring. Mittelfristig sollte es das Ziel einer Community sein, Standards und Frameworks zu schaffen, welche die technologische Komplexität vom Entwickler fernhalten. Frameworks wie Spring, Hibernate oder TopLink machen das heute bereits mit verteilten Transaktionen und befreien den Entwickler dadurch von allerhand technischem Kleinklein. Blockchain-Frameworks sollten zudem in bestehende und bewährte Frameworks integriert werden bzw. integrierbar sein.

Von diesem Punkt aus, können wir die Fragen vom Anfang besser beantworten: Ja, die Blockchain eignet sich für ein Entwicklungsprojekt, genauso wie andere bereits benutzte Transaktionstechnologien, zum Beispiel Java Transaction API. Es gibt keine großen Unterschiede zu einer Entwicklung von verteilter Software und man braucht auch keine speziellen Entwickler – es sei denn das Projekt basiert auf der Entwicklung eines eigenen Frameworks. Sie müssen nur darauf achten, dass sie ein klares Verständnis von der Technologie schaffen und sicherstellen, dass die Technologie für den  konkreten Anwendungsfall sinnvoll ist.

Wenn Sie diese drei Schritte gegangen sind und alle Entscheidungen getroffen wurden, steht einer erfolgreichen Entwicklung nichts mehr im Weg. Also, wagen sie den Einsatz der Technologie und teilen Sie Ihre Erfahrungen mit mir. Ich freue mich über Ihre Kommentare!