Welche Herausforderungen bedeutet die Blockchain für Entwickler?

Bild von Gerd Altmann auf Pixabay

Blockchain-Lösungen sind in der IT ein Megatrend, den immer mehr Unternehmen erkennen und Lösungen in dieser Richtung implementieren oder zumindest die Einführung planen. Bei der digitalen Transformation kann die Blockchain ein wichtiges Mittel sein, um Prozesse im Unternehmen zu verbessern, zu automatisieren und optimal zu digitalisieren.

Der Einsatz von Blockchain-Lösungen stellt auch Entwickler vor Herausforderungen. Wenn Verantwortliche im Unternehmen Ziele definieren, was die Blockchain bieten soll, dann müssen Entwickler diese Ziele mit Apps umsetzen und die Blockchain in die interne Infrastruktur integrieren.

Die Entwicklung von Smart Contracts und dezentralisierten Apps in der Blockchain funktioniert häufig anders, als die Entwickler anderer Anwendungen. Entwickler und Verantwortliche im Unternehmen müssen die steile Lernkurve bewältigen, die den Einsatz der Blockchain mit sich bringt. Nur dann kann ein Blockchain-Projekt erfolgreich im Unternehmen umgesetzt werden.

Blockchains funktionieren dezentral. Die Daten und Apps der Blockchain sind auch in der Blockchain gespeichert. Es gibt weder zentrale Server, noch eine Instanz, die zentral die Blockchain steuert. Alle Teilnehmer bilden die Blockchain und stellen sicher, dass die Transaktionen und Daten der Blockchain transparent und sicher zur Verfügung stehen.

Mit der Blockchain programmieren

Oft werden beim Einsatz der Blockchain auch andere Programmiersprachen und -Umgebungen eingesetzt und nicht alle Entwicklungsumgebungen sind in der Lage als Basis für die Blockchain-Entwicklung zu dienen. Als Entwicklungsumgebung für Smart Contracts können natürlich auch Standard-Umgebungen und Editoren wie Microsoft Visual Studio Code genutzt werden.

Visual Studio Code steht kostenlos zur Verfügung und bietet auch eine Erweiterung für Solidity. Grundsätzlich sollten sich Entwickler mit dem Thema Smart Contracts und dApps auseinandersetzen und dann entscheiden, welche Sprache und Umgebung sie nutzen wollen. Es gibt neben Solidity noch einige weitere Ansätze.

Mit der Erweiterung „ETHcode“ kann mit Solidity und Vyper entwickelter Code geschrieben, bereitgestellt, und in Visual Studio oder Visual Studio Code verwaltet werden. Zusätzlich stellt Microsoft auch Blockchain Development Kit for Ethereum kostenlos zur Verfügung. Das zeigt, dass es viele Tools, Frameworks und Lösungen gibt, mit denen sich Anwendungen für Blockchains entwickeln lassen.

Dazu kommen Werkzeuge direkt von Anbietern der Blockchain-Lösungen, wie zum Beispiel von Hyperledger. Vor der Entwicklung der ersten dApp und des ersten Smart Contracts steht also zunächst der Plan, welche Tools, Sprachen und Plattformen eingesetzt werden sollen.

Entwickeln für Bitcoin

Dazu kommen noch Herausforderung für den Aufbau einer Infrastruktur für die Blockchain, inklusive Schnittstellen zu anderen Anwendungen im Unternehmen. Das Frontend für Anwender spielt eine wichtige Rolle und auch Sicherheit und Datenschutz wollen berücksichtigt sein. In vielen Fällen setzen Unternehmen beim Einsatz der Blockchain auf private oder öffentliche Clouds. Auch hier muss bei Entwicklern das entsprechende Wissen vorhanden sein oder aufgebaut werden.

Dazu kommen Technologien für den Betrieb von Containern und deren Verwaltung. Es reicht also nicht nur aus sich mit der Blockchain auseinanderzusetzen, sondern auch die begleitenden Technologien spielen eine wichtige Rolle, und müssen in die Umgebung implementiert werden.

Die Blockchain bringt Unternehmen einen Mehrwert

Blockchain-Technologien bringen Unternehmen einen echten Mehrwert, wenn die Einführung richtig geplant erfolgt und die Vorteile der Blockchain auch richtig nutzbar gemacht werden. Wir zeigen im Beitrag „Blockchain für Unternehmen sinnvoll einsetzen“ einige Einsatzszenarien. In diesem Beitrag führen wir auch aus, auf was Entwickler bei der Einführung achten sollten. Grundsätzlich ist es hier sinnvoll sich mit den Verantwortlichen im Unternehmen gemeinsam an einen Tisch zu setzen, und auch Anwender mit einzubinden.

Beim Einsatz der Blockchain gibt es hier einiges an Aufklärungspotential für nahezu jede Abteilung. Häufig gibt es auch in IT-Abteilungen noch nicht genügend Wissen, welche Möglichkeiten Blockchains bieten, und auf was beim Einsatz geachtet werden muss.  Damit Entwickler die entsprechenden Apps für die Einsatzszenarien entwickeln können, müssen die Herausforderungen der Blockchain gemeistert werden. Ohne eine Akzeptanz bei Verantwortlichen und Benutzern sind Blockchain-Projekte kaum umsetzbar, hier stellt die Blockchain keine Ausnahme dar.

Blockchain im Unternehmen einbinden (Bild von Gerd Altmann auf Pixabay)

Aus diesem Grund sollten sich Entwickler auch bereits frühzeitig auf die Performance von Blockchains und den darin betriebenen Apps konzentrieren. Dabei helfen Tools, wie Hyperledger Caliper. Bereits frühzeitig bei der Entwicklung sollte daher auch die Leistung optimiert werden im Beitrag „Mit Hyperledger Caliper Benchmarks für Smart Contracts erstellen“ sind wir auch auf dieses Thema eingegangen. Entwickler, die sich mit der Blockchain auseinandersetzen, sollten auch überprüfen ob Hyperleder Caliper hilfreich bei der Entwicklung sein kann.

Beim Einsatz der Blockchain gilt was für alle neuen Technologien in Unternehmen gilt. Anwender müssen die neue Lösung akzeptieren. Dazu ist es wichtig, dass diese leicht bedienbar ist, spürbare Besserung mit sich bringt und vor allem ständig mit ausreichender Leistung zur Verfügung steht. Anwender haben kaum Verständnis dafür, wenn in einer Lieferkette Abläufe verlangsamt werden, weil die Smart Contracts und Transaktionen durch fehlerhafte Entwicklung nicht in ausreichender Leistung zur Verfügung stehen.

Distributed Ledgers nutzen

Vor allem der Bereich der Distributed Ledgers in einer Blockchain sind für Unternehmen interessant. Nicht alle Unternehmensanwendungen sind dazu geeignet in einer öffentlichen Blockchain wie dem Ethereum-Mainnet zu laufen. Häufig nutzen Unternehmen einen kleineren Kreis, zum Beispiel Lieferanten, Kunden und Partnerunternehmen, um eine private Blockchain aufzubauen.

Die Entwickler von Bitcoinj stellen auch ein Tutorial zur Verfügung (Bild von Markus Winkler auf Pixabay)

Das hat den Nachteil, dass die Transaktionen in der Blockchain nicht von Millionen Teilnehmern überprüft werden können, wie in einer „echten“ Blockchain (Public Blockchain). Der Vorteil besteht aber darin, dass Unternehmen die Kontrolle darüber behalten, welche Teilnehmer es für den eigenen Distributed Ledger gibt (Private Blockchain) zulässt. Auch Datenschutz und Sicherheit sind auf diesem Weg leichter zu kontrollieren. Häufig setzen Unternehmen bei der Einführung der Blockchain auf private Blockchains/Distributed Ledgers. Besonders häufig kommen die die Frameworks und Tools von Hyperledger zum Einsatz.

Die Begriffe Blockchain und Distributed Ledgers (verteiltes Hauptbuch) werden häufig miteinander vermischt. Während in Blockchains die Datensätze in Blöcken gespeichert werden, sind die Datensätze beim Distributed Ledger aufeinanderfolgend abgelegt. Blockchains sind daher eine besondere Ausprägung eines Distributed Ledger mit einer wesentlich höheren Teilnehmerzahl.

Die Stärken der Blockchain liegen in der Dezentralität. Private Blockchains sind weniger dezentral und haben daher einige Schwachstellen bezüglich Sicherheit und Datenschutz. Hier muss frühzeitig abgewogen werden, in welche Richtung im Unternehmen die Blockchain betrieben werden soll.

Blockchain im Unternehmen nutzen (Bild von Gerd Altmann auf Pixabay)

Natürlich sind grundsätzlich auch private Blockchains / Distributed Ledgers dezentralisiert. Allerdings gibt es hier sehr viel weniger Teilnehmer und damit sehr viel mehr Einfallstore für Angreifer oder Probleme in der Infrastruktur.

Sollen mehrere Blockchains zum Einsatz kommen, stellen sich natürlich Fragen der Interoperatibilität der Blockchains, der in der Blockchain betriebenen Anwendungen und auch den angebundenen Datenbanken und Anwendungen außerhalb der Blockchain.

Die Blockchain entwickelt sich ständig weiter

Eine der größten Herausforderungen in der Blockchain ist, dass die Technologie verhältnismäßig jung ist. Die Technik wurde durch den Bitcoin-Erfinder Satoshi Nakamoto im Jahr 2008 beschrieben. Aus diesem Grund ist die Technik weder komplett ausgereift, noch umfassend erforscht. Daher ergeben sich nahezu täglich neue Informationen, Einsatzgebiete, Tools und Herangehensweisen. Entwickler müssen sich daher darauf einstellen sich der sehr dynamischen Weiterentwicklung der Blockchain anzupassen.

Es gibt ständig neue Tools, Frameworks und APIs. Nicht alle dieser Lösungen bleiben dauerhaft oder setzen sich durch. Daher müssen Entwickler flexibel reagieren und neue Tools testen, die unter Umständen echten Mehrwert bringen. Allerdings sollten nicht mehr relevante Tools und Frameworks möglichst ersetzt werden. Die Entwicklung in der Blockchain ist stetig und schnell, Entwickler in diesem Bereich müssen dran bleiben, um nicht auf den falschen Zug zu setzen.

Dominoes game online. Domino tiles on a computer laptop

Welche Tools und Dienste setzen sich durch?

Wenn im Unternehmen eine Blockchain-Technologie eingesetzt werden soll, stellt sich häufig die Frage auf welchen Anbieter gesetzt werden soll. Es ist derzeit kaum abzuschätzen, welche Blockchains und welche Anbieter sich durchsetzen werden und welche in Zukunft wegfallen. Derzeit führend sind die Tools und Frameworks von Hyperledger und auch die Blockchain von Ethereum ist im starken Aufwind. Das kann sich aber schnell ändern. In jedem Fall macht es aber Sinn sich mit diesen beiden Herstellern auseinanderzusetzen.

Unabhängig von der eingesetzten Blockchain spielt natürlich auch die Programmiersprache eine Rolle. Auch die genutzten Tools und Frameworks befinden in der ständigen Entwicklung, auf die sich Profis einstellen sollten. Neue Funktionen werden eingeführt, andere fallen weg.

Für das Schreiben von intelligenten Verträgen wird oft die vertragsorientierte Programmiersprache Solidity genutzt, wenn Ethereum als Plattform zum Einsatz kommt. Das zeigt die Abwägungen, die Entwickler treffen müssen, wenn eine bestimmte Plattform, ein Framework oder eine Programmiersprache für Smart Contracts zum Einsatz kommen soll. Auch Vyper spielt eine wichtige Rolle bei Ethereum. Sowohl Solidy, als auch Vyper sind Programmiersprachen, die sich auf Smart Contracts mit Ethereum Virtual Machine konzentrieren.

Wir haben uns in den Beiträgen „Baseline-Protokoll: Unternehmens-Anwendungen in der öffentlichen Blockchain betreiben“ und „Hyperledger Transact – Smart Contracts universeller entwickeln“ mit den Herausforderungen auseinandergesetzt, und wie diese mit neuen Tools gelöst werden können. Das sind natürlich nur zwei Beispiele, vor welchen Herausforderungen Entwickler stehen und welche Tools dabei helfen diese zu meistern.

Bitcoin-Wallets mit Java und Javascript entwickeln (Bild von Pexels auf Pixabay)

Skalierung der Blockchain

Wenn ein Blockchain-Projekt im Unternehmen erfolgreich ist, muss es häufig sehr schnell skaliert werden. Neue Partner und Anwender müssen die Anwendung nutzen können und auch zusätzliche Apps werden in vielen Fällen nachträglich angebunden.

Der Programmcode der Apps, die verwendete Infrastruktur und natürlich auch die Hardware sowie die Leitungen im Netzwerk und Internet müssen dazu in der Lage sein mitzuwachsen. Tools wie Hyperledger Caliper helfen dabei den Quellcode der dApps, Smart Contracts und anderen Objekten in der Blockchain zu optimieren.

Transaktionen müssen in der Blockchain auch bei starkem Nutzen und zu Hauptarbeitszeiten schnell abgewickelt werden können. Geht die Anzahl der Transaktionen pro Sekunde (TPS) in den Keller, ist davon auszugehen, dass die Akzeptanz der Blockchain ebenfalls schwindet, weil die Prozesse im Unternehmen zu stark eingebremst werden. Die Verarbeitungszeit in Blockchains ist ein großer Knackpunkt, wenn es darum geht ein erfolgreiches Blockchain-Projekt umzusetzen.

Off-Chains-Technologie einbinden

In vielen Fällen ist es nicht sinnvoll in einem Blockchain-Projekt alle Daten einer dApp und eines Smart Contracts in der Blockchain selbst zu speichern. Das ist auch aus Gründen des Datenschutzes und der Sicherheit nicht immer ideal. Off-Chain-Technologien ermöglichen es, dass Daten außerhalb der Blockchain gespeichert werden, aber in der Blockchain und durch die Blockchain-Apps nutzbar sind. Darauf müssen sich Entwickler rechtzeitig einstellen und bereits frühzeitig einplanen.

Hardware in Blockchain-Netzwerken einbinden (Bild von Bruno /Germany auf Pixabay)

Off-Chain-Transaktionen laufen generell außerhalb der primären Blockchain, sind in der primären Blockchain aber nutzbar. Durch den Einsatz von Off-Chain-Technologien lassen sich Performance, Datenschutz und Sicherheit deutlich steigern.

Allerdings widersprechen Off-Chain-Transaktionen den Grundlagen der Blockchain-Technologien. Denn eigentlich sollen alle Beteiligten Knoten in einer Blockchain die Transaktionen bestätigen und damit deren Echtheit garantieren. Das zeigt, dass in der Blockchain auch immer Kompromisse bei der Entwicklung eingegangen werden müssen. Grundsätzlich entspricht es am ehesten dem Blockchain-Ansatz, wenn öffentliche Blockchains, wie das Ethereum-Mainnet verwendet werden. Denn hier sind Millionen Knoten beteiligt, die Transparenz und Sicherheit garantieren.

Private Blockchains (Distributed Ledgers) sind Blockchains in wesentlich kleinerem Stil mit einer eher kleinen Anzahl an Teilnehmer. Dadurch hat der Betreiber die Kontrolle darüber, wer in der Blockchain dabei ist und wer Zugriff auf die Daten hat. Darunter leiden allerdings Transparenz und Fälschungssicherheit.

Durch das Auslagern von Transaktionen (Off-Chain) werden ebenfalls Daten aus der Kontrolle der Blockchain herausgenommen. Dabei steigt der Datenschutz, da die Teilnehmer nicht mehr alle Daten einsehen können, gleichzeitig verringern sich Transparenz und Fälschungssicherheit.

Die Leistung einer Blockchain kann auch durch das Zusammenfassen mehrerer, kleiner Transaktionen zu einer großen Transaktion verbessert werden. Durch das Zusammenfassen können mehr Transaktionen pro Sekunde (TPS) ausgeführt werden.

APIs und Zusammenarbeit mit externen Systemen

Blockchain-Anwendungen werden selten als Inseln im System betrieben, sondern müssen mit anderen Anwendungen kommunizieren können. Hier gilt es APIs zu nutzen und die Zusammenarbeit zu koordinieren. Gleichzeitig ergeben sich hier Sicherheitsgefahren, da durch die externen Systeme auch Angriffe auf die Blockchain erfolgen können. Auch aus diesem Grund müssen Datensicherheit und Datenschutz von allen angebundenen Systemen gewährleistet sein.

Bild von Gerd Altmann auf Pixabay

Nutzen Blockchain-Anwendungen und Daten aus einer externen Datenbank, dann stellt die Datenbank einen potentiellen Schwachpunkt dar, den Angreifer zum Ziel nehmen können, um auch die Blockchain selbst zu attackieren. Setzen Unternehmen komplett auf den dezentralen Ansatz der Blockchain, gibt es diese Schwachpunkte nicht, dafür müssen aber auch alle Daten in der Blockchain gespeichert werden, was wiederum ein Problem des Datenschutzes ist.

Bereits frühzeitig bei der Entwicklung sollte also geplant werden, welche Anwendungen unter Umständen mit der Blockchain Informationen austauschen sollen. Das gilt auch bei den Partnerunternehmen. Auch hier sind Anwendungen im Einsatz, die unter Umständen mit der Blockchain zusammenarbeiten müssen. Je früher in einem Projekt klar ist, welche Anwendungen zu welcher Zeit angebunden werden sollen, können richtige Entscheidungen getroffen werden, welche Blockchain eingesetzt werden soll, in welcher Programmiersprache die Smart Contracts und dApps entwickelt werden, und welche Infrastruktur genutzt werden soll.

 

 

 

 

 

 

Antworten

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Immer aktuell in der Blockchainwelt.

Melden Sie sich zu unserem monatlichen Newsletter an. Garantiert kostenlos und ohne Spam!