Geschäftsanwendungen in der Blockchain

In einem Proof of Concept (PoC) wollten wir herausfinden, ob und wie gut es möglich ist, aus Java heraus mit der Blockchain zu kommunizieren. Konkret ging es darum, die Scout Contacts Demo App so zu erweitern, dass Geld innerhalb von wenigen Minuten (weltweit) von einer Person zu einer anderen transferiert werden kann. Interagiert haben wir dabei mit der Ethereum Blockchain. Sie zeichnet sich u.a. durch das Zusatzkonzept der Smart Contracts aus und ist deshalb von besonderem Interesse für unsere Kunden.

Die Herausforderung

Die Integration bestehender IT-Lösungen und Landschaften mit der Blockchain ist nicht trivial. Ebenso die Wahl der richtigen Blockchain. Hinzu kommt die Identifizierung und Priorisierung eines nützlichen Anwendungsfalls und die Prüfung der Machbarkeit in Form eines Proof of Concept (PoC) und dessen effizienter Realisierung mit einer hohen technologischen Reife.

Welche Lösungen gibt es?

Es herrscht viel Dynamik am Markt. Eine unüberschaubare Menge an virtuellen Währungen von Bitcoin über Ethereum und zahllosen weiteren sowie verschiedene konkurrierende Blockchain-Technologien (Ethereum, Bitcoin, Hyperledger etc.) stehen zur Auswahl. Welche werden sich durchsetzen? Hinzu kommt die Wahl zwischen Private und Public Blockchain. Wir empfehlen eine Machbarkeitsprüfung der unterschiedlichen Anwendungsfälle mittels PoC.

Nach detaillierter Betrachtung von Markt und Technologie haben wir bei BSI uns für die Open Source Blockchain Ethereum entschieden. Sie ist frei verfügbar und weist einen hohen Reifegrad aus. Es gibt zahlreiche Möglichkeiten, die Ethereum Blockchain mit dem Business Framework Eclipse Scout zu verbinden. Zudem macht sie es besonders leicht, Smart Contracts einzubinden und Zahlungen automatisch zu veranlassen. Hierfür setzen wir auf die virtuelle Währung ETH. ETH ist die zweitgrösste virtuelle Währung nach Bitcoin und spielt optimal mit Ethereum zusammen.

Als Modell haben wir uns für die Public Blockchain entschieden. Sie ist offen, sicher, global verfügbar, flexibel und kann von allen genutzt werden, was zu einem Netzwerk-Effekt führt.

Praxisbeispiel: Erweiterung der Contacts Demo App

Als erstes haben wir ein neues BSI CRM Google Plug-In entwickelt, welches die Logik zur Synchronisation von Kalender-Elementen und alle notwendigen externen Bibliotheken enthält. Dank unserem Framework war das Plug-In mit wenigen Handgriffen in die bestehende Applikation eingebunden.

In der Demo haben wir als kleinen Zusatz den QR-Code mit dem Smartphone gescannt, dann vom Smartphone Geld überwiesen und den Betrag in der Contacts App aktualisiert.

Daneben gibt es noch die Möglichkeit, Guthaben direkt aus der Scout App heraus zu versenden. Nach Auswahl einer Person wird zwecks Nachvollziehbarkeit nochmals die genaue Account-Nummer angezeigt. Der gewünschte Betrag kann eingegeben und die Transaktion gestartet werden. Innerhalb von wenigen Minuten ist der Wert dem anderen Account gutgeschrieben.

An dieser Stelle muss man sich nochmals verdeutlichen, dass wir nicht nur einen Web Service aufrufen, der irgendwo ein Datenbankfeld aktualisiert, sondern mittels Blockchain-Technologie einen Wert unter Nutzung kryptographischer Verfahren, ohne Mittelsmann übertragen können. Beliebige Beträge können so weltweit, zu vernachlässigbaren Kosten, minutenschnell überwiesen werden.

Dritter Punkt ist das Deployment eines Smart Contracts. Diese werden in einer Skriptsprache (Solidity) definiert und dann an den Ethereum Knoten übergeben. Hier ist noch etwas Feintuning notwendig, prinzipiell ist aber auch dieser Fall umsetzbar.

Wie funktioniert die Interaktion mit dem Ethereum Netzwerk?

Ethereum ist ein Peer-to-Peer-Netzwerk. Wir haben einen Ethereum Knoten lokal auf unserem Notebook installiert. Jeder Knoten verfügt über eine JSON-RPC Schnittstelle die man nach Aktivierung auf verschiedene Weise ansprechen kann. Für Java sah es erst nicht gut aus, dann sind wir jedoch auf die Bibliothek Web3J gestossen. Sie ermöglicht eine typsichere Interaktion und kapselt die Anfragen und Ergebnisse in schöne Java Objekte.

Die prinzipielle Architektur ist in der nachfolgenden Grafik ersichtlich:

Die Bibliothek ist eine Java Anlehnung an die wesentlich verbreitetere Web3.js Library und wird massgeblich von einem Entwickler (Conor Svensson) vorangetrieben, der auch eine recht gute Dokumentation pflegt.

Fazit

Der POC (vor allem die Anpassung an das GUI) ist recht einfach gehalten, erfüllt aber seinen Zweck sehr gut. Wir konnten zeigen, dass mittels Web3J eine Interaktion mit der Ethereum Blockchain aus Eclipse Scout heraus relativ leicht und auch komfortabel möglich ist. Die Resonanz am Demo Camp zum Thema Blockchain war sehr gross und das Feedback zum Vortrag war durchweg positiv. Im Nachhinein gab es noch interessante Diskussionen und spannende neue Kontakte.

ZUM VIDEO DES VORTRAGS

Am zweiten Eclipse Demo Camp in München nutzten wir die Chance, das Thema Scout & Blockchain vorzustellen.

Warum Blockchain? 6 Gründe

  • Automatische Beglaubigung: Transaktionen und Geschäfte durchführen ohne sich zu kennen/zu vertrauen
  • Geringere Kosten: Wertübertragungen per Peer-to-Peer-Netzwerk und Wegfall von 20 Milliarden US-Dollar an Back-Office-Aufwendungen
  • Höheres Tempo: SWIFT-Netzwerk verarbeitet täglich 15 Millionen Zahlungsaufträge, benötigt Tage, um diese abzuwickeln und abzurechnen
  • Risikomanagement: Reduzierung von Finanzrisiken (z.B. Abrechnungsrisiko, Kontrahentenrisiko im System)
  • Wertinnovation: quelloffen und lädt zum Experimentieren ein
  • Quelloffenheit: Veränderungen im Altsystem sind schwierig (z.B. wegen Rückwärtskompatibilität)

Warum Blockchain mit Eclipse Scout?

  • Steigerung der Produktivität & nachhaltige Investitionen: Deckt viele Anforderungen, reduziert die Entwicklung von Unternehmensanwendungen, kontinuierliche Weiterentwicklung
  • Kosteneffizient: Open Source, frei zu verwenden, profitiert von dem durch die Eclipse-Stiftung bereitgestellten Weltklasse-IP-Management
  • Unabhängig & einfach zu integrieren: Flexible Einsatzmöglichkeiten wie z.B. CRM, Angebotssystem, ERP, medizinisches Lagerungssystem, Portale und Kopplung von Blockchains mit bestehender, mitunter komplexer IT-Landschaft
  • Multi-Device-kompatibel und schnelle Time-to-Market: Anwendungen laufen gleichzeitig im Desktop-Browser, Tablet oder auf mobilen Geräten. Sie sind einfach zu erlernen, mit Standards (Java/HTML5) versehen und für die kommerzielle Nutzung geeignet.