Blockchain programmieren – Wie fängst du an und lohnt es sich?

Blockchain programmieren

Die Blockchain bietet nicht nur neue Möglichkeiten für Unternehmen und Startups, auch Entwickler sehen in dem Distributed Ledger neue Chancen. Händeringend wird nach Programmierern gesucht, die bereits Erfahrung in der Programmierung der Blockchain und Kryptowährungen gemacht haben.

Anzeige

Doch wie geht das Blockchain programmieren, welches Wissen wird benötigt und welche beruflichen Chancen bieten sich einem?

Wie kann man eine Blockchain programmieren?

Im Grunde kann sich jeder daran versuchen, eine Blockchain zu programmieren. Der Quellcode von Bitcoin und der meisten anderen Kryptowährungen steht als Open Source der Allgemeinheit zur Verfügung. Jeder kann den Code als Grundlage für eigene Projekte nutzen oder selber etwas zu einem bestehenden Projekt beisteuern.

Der Code der Währungen wird in der Regel auf GitHub hochgeladen. Unter github.com/topics/blockchain findet man schnell die bekanntesten Projekte. Der Code von Bitcoin lässt sich unter github.com/bitcoin/bitcoin aufrufen. Eine Blockchain kaufen, um sie als Grundlage eigener Versuche zu nutzen, ist nicht nötig.

Für alle, die mit dem Begriff nichts anfangen können, hier Blockchain einfach erklärt: Die Blockchain ist eine Reihe von Blöcken, aneinandergereiht durch eine stetig wachsende Kette (daher „Block-Chain“). Erfunden wurde sie von Satoshi Nakamoto, der ebenfalls der Erfinder der Bitcoin war. Der Zweck der Blockchain ist es, die Transaktionen von Kryptowährungen fälschungssicher aufzuzeichnen.

Das Konzept einer digitalen Währung war nicht neu, doch es stellte sich immer die Frage, wie die Transaktionen so aufgezeichnet werden können, dass man sie nicht einfach manipulieren kann. Das „Double-Spending“-Problem musste gelöst werden. Dafür wurde der „Distributed Ledger“ entwickelt, ein virtuelles Konto für die Kryptowährungen.

Die Daten des Kontos befinden sich in den Blöcken. Jeder Block führt die Transaktionshistorie der vorigen Blöcke fort, plus den neuen Transaktionen, die zum neu erzeugten Block gehören. Die Blöcke sind ebenfalls kryptografisch verschlüsselt. Die Miner müssen beim Blockchain-Mining den verschlüsselten Wert finden, um damit den Proof-of-Work („Arbeitsnachweis“) zu erbringen.

Der Proof-of-Work kommt eigentlich aus dem Spamschutz und soll das System vor Angriffen schützen. Mithilfe von Algorithmen werden die Blöcke „gehasht“. Jeder Block enthält die Hashwerte der anderen Blöcke und verfügt über seinen eigenen Hashwert. Bitcoin zum Beispiel verwendet zum Hashen den SHA-256 Algorithmus.

  • Man muss keinen eigenen Algorithmus programmieren, sondern kann stattdessen einen bereits existierenden verwenden. Durch dieses System lassen sich Informationen fälschungssicher aufzeichnen. Das Double-Spending-Problem war damit gelöst.

Wichtig sind noch die privaten und öffentlichen Schlüssel, die für das Versenden der jeweiligen Blockchain-Coin verwendet werden. Der private Schlüssel dient dazu, Transaktionen zu bestätigen. Der öffentliche Schlüssel ist die Adresse eines „Kontos“, an welche die Coin gesendet werden kann. Normalerweise werden diese Schlüssel über eine Blockchain-Wallet verwaltet.

Andere wichtige Aspekte umfassen die Dezentralität, daher auch die Bezeichnung „Distributed Ledger“. „Ledger“ bedeutet Hauptbuch oder Konto und „distributed“ weist auf die Dezentralität hin. Dann wären da noch die Peer-to-Peer-Transaktionen, also direkt von einem Nutzer zum anderen, ohne einen Mittelsmann. Soviel zur Blockchain Info.

Ist einem das alles zu kompliziert und möchte man lediglich eine Kryptowährung erstellen, dann bietet sich Ethereum an. Ethereum wurde von Vitalik Buterin unter anderem für den Zweck geschaffen, dass Menschen sich selber eine Kryptowährung und eine eigene Blockchain programmieren können.

Dafür werden Smart Contracts und die Ethereum-Blockchain als Grundlage genutzt. Mit dem Smart Contracts lassen sich einfacher konkrete Ziele verfolgen, wie auf der Blockchain Handel treiben, indem man den Ledger als Bezahlsystem und als Hauptbuch verwendet.

Welche Programmiersprachen können gewählt werden?

Angehende Blockchain-Entwickler haben die Auswahl zwischen mehreren Programmiersprachen. Manche von ihnen sind in gängigen Programmiersprachen geschrieben, welche der Entwickler vielleicht schon kennen könnte. Andere verfügen über ihre eigene Programmiersprache.

Die Mutter aller Kryptowährungen, Bitcoin, ist in C++ geschrieben. Für viele Programmierer ist C++ eine schwierige Sprache, bei der man leicht einen Fehler begehen kann. Doch auch C++ lässt sich wie jede andere Programmiersprache mit der Zeit erlernen, verinnerlichen und gekonnt anwenden. Die Programmierung von Bitcoin in dieser Sprache hat gute Gründe. C++ hat den Vorteil, sehr konsistent zu sein.

Alle Nodes innerhalb des System müssen in der Lage sein, ständig miteinander Informationen auszutauschen, sich zu synchronisieren und neue Blöcke zu akzeptieren. Schon kleine Abweichungen innerhalb des Codes könnten dazu führen, dass es zu einer Fork kommt, einer Abspaltung des Codes von dem ursprünglichen. Dann würde eine neue Blockchain entstehen. Außerdem verfügt C++ über eine gute Datenspeichernutzung und Performance. Beides sind wichtige Aspekte für den ständig wachsenden Ledger.

Solidity ist die Programmiersprache für Ethereum. Wer auf der Ethereum-Plattform Smart Contracts programmieren möchte, der muss sich mit Solidity auseinandersetzen. Die Maschinensprache lässt sich am besten mit Java vergleichen. Es handelt sich um eine objektorientierte Programmiersprache, speziell für die Smart Contracts von Ethereum und der Ethereum Virtual Machine entworfen. Für Ethereum-Programmierer Pflicht, für alle anderen vernachlässigbar.

Java ist eine vielseitige Programmiersprache und wird auch häufig bei der Blockchain-Entwicklung eingesetzt, nicht nur bei den Back- und Front-End-Anwendungen. Auch Neulinge können sich mithilfe von Java an dem Blockchain programmieren versuchen.

JavaScript wird vor allem für Web-Anwendungen genutzt. Jedoch lassen sich auch mit dieser Programmiersprache Blockchain-Anwendungen programmieren.

Python wird vor allem für Datenanalyse-Software immer wichtiger. Programmierer, die sich auf die Datenanalyse spezialisieren wollen, sind bei Python gut aufgehoben. Mit Python lässt sich ebenfalls eine voll funktionsfähige Blockchain programmieren. Die Datenanalyse ist auch in der Blockchain-Entwicklung ein relevantes Fach.

Schließlich wäre da noch Swift. Swift dient der Programmierung von Apple-Anwendungen. Viele Krypto-Enthusiasten sind der Meinung, dass man sich besonders auf die Apps konzentrieren müsste, um die Verbreitung der Kryptowährung zu fördern. Mit einfach zu bedienenden Krypto-Apps auf dem Smartphone erhöht sich die Adaption der digitalen Währungen in der breiten Bevölkerung.

Die Menschen sollen die Kryptowährungen auch unterwegs und im Alltag nutzen können. Swift ist die ideale Programmiersprache, um iOS-Anwendungen auf Blockchain-Basis zu programmieren.

Welche Möglichkeiten gibt es, die Programmierung zu lernen?

Angehende Blockchain-Entwickler haben verschiedene Möglichkeiten, sich über das Blockchain programmieren zu informieren. Wie bereits beschrieben, steht einem viel Material als Open Source zur Verfügung. GitHub ist eine der häufigsten Anlaufstellen für Krypto-Entwickler.

Für Interessierte gibt es mittlerweile zahlreiche Bücher über die Geschichte, Anwendung und Entwicklung der Blockchain, auf deutsch und in anderen Sprachen. Einige dieser Bücher fokussieren sich eher darauf, dem Leser die Blockchain-Technologie verständlich zu erklären. Auch wenn nicht alle direkt auf die Programmierung derselben Technologie ausgelegt sind, können Entwickler dennoch viel von ihnen lernen.

Bücher für die Blockchain-Entwicklung gibt es ebenfalls. Desweiteren werden im Internet auch Schulungen und Kurse angeboten, welche sich an Entwickler richten. Außerdem gibt es eine Reihe von auf Kryptowährungen spezialisierte Foren. Hier kann man andere Programmierer kontaktieren, sich mit ihnen austauschen und auch von ihnen lernen. Oder man spricht miteinander gemeinsame Projekte ab.

Man kann sich auch persönlich treffen. Leben Sie in einer größeren Stadt, dann ist die Wahrscheinlichkeit groß, dass sich in Ihrer Nähe ein Stammtisch von Krypto-Freunden befindet. Ein Stammtisch hilft ihnen gleichgesinnte zu treffen, wobei nicht jeder der Teilnehmer auch ein Entwickler sein muss.

Der IT-Riese IBM ist ganz vorne bei der Entwicklung von Blockchain-Anwendungen dabei. Zum Beispiel arbeitet das Unternehmen an Möglichkeiten, eine eigene Blockchain-Logistik zu entwickeln und aufzubauen. Beim IBM Blockchain Developer Center werden einem kostenlose Open Source Beispiele und Ressourcen zur Verfügung gestellt. Hier gibt es Tools, Blog-Artikel, Beispielanwendungen, Guides und Tutorials.

Einen ähnlichen Service bietet auch das IOTA Ecosystem. Nur geht es hierbei um den Tangle, die „Blockchain 3.0“. Der Tangle unterscheidet vom Aufbau her sich sehr von der handelsüblichen Blockchain. Das Ecosystem richtet sich an alle, die an der IOTA-Entwicklung interessiert sind. Hier gibt es in erster Linie auf IOTA bezogene Blogs, Guides und Tutorials.

Auch wenn die IOTA-Stiftung maßgeblich an der Entwicklung ihrer Kryptowährung beteiligt ist, ist der Code dennoch Open Source. Neben Lernmaterialien finden Developer hier auch Ressourcen und die Möglichkeit, an Wettbewerben teilzunehmen.

Mit welchen Technologien lohnt es sich zu arbeiten?

Bitcoin und Ethereum sind die bisher wichtigsten Kryptowährungen, mit denen man sich zumindest vertraut machen sollte, bevor man eine eigene Blockchain programmieren möchte. Mit der Blockchain von Bitcoin begann alles. Um den Distributed Ledger zu verstehen, sollte man bei den Grundlagen beginnen. Hierfür benötigt man ein Verständnis für C++.

Ethereum ist für frische Programmierer gerade deshalb interessant, weil eine eigene Blockchain programmieren und Kryptowährung erstellen kann. Smart Contracts sind nützliche Programme, mit denen sich unterschiedlichste Anwendungen realisieren lassen. Eine Vielzahl von Kryptowährungen sind eigentlich nur Tokens ohne eigene Blockchain. Sie basieren auf Ethereum und nutzen dessen Virtual Machine.

Um selber Code auf der Ethereum-Plattform programmieren zu können, muss man allerdings die hauseigene Programmiersprache Solidity erlernen. Kennt man sich bereits mit JavaScript aus, dann dürfte das nicht so schwerfallen.

Angehende Entwickler sollten auch einen Blick auf den Hyperledger werfen. Das Hyperledger-Projekt wird von der Linux-Stiftung und IBM unterstützt. Verschiedenste Unternehmen auf der Welt nutzen bereits den Hyperledger, unter anderem IBM, SAP und Intel. Mit dem Hyperledger erhalten Nutzer Zugriff auf Hyperledger Fabric und Composer.

Hyperledger Fabric stellt die Infrastruktur bestehend aus Nodes, Smart Contracts und einem Konsens-Mechanismus zur Verfügung. Es dient in erster Linie dazu, Unternehmen die Implementierung von Blockchain-Anwendungen zu erleichtern.

Hyperledger Composer ist eine Toolbox und ermöglicht die einfache Verwaltung von Assets, Transaktionen und Teilnehmern. Die Toolbox gleicht einem Baukasten. Nutzer stellen sich selbst die benötigten Komponenten zusammen und übertragen dann das fertige Paket auf die Hyperledger Fabric.

Das Projekt lässt sich zuvor auf dem Hyperledger Composer Playground austesten. Programmierer können hier schauen, ob die Anwendungen auch so funktionieren, wie geplant. Gerade für Anfänger stellt die Toolbox ein guter Einstieg dar.

Blockchains programmieren

Bildquelle: © geralt / Pixabay

Blockchain Programmierer – Eine gute beruflich Perspektive?

Blockchain-Entwickler haben bei Stellenanzeigen zurzeit die freie Wahl. Die Job-Angebote für Programmierer, die sich mit der Blockchain auskennen, übersteigen die Anzahl der tatsächlichen Experten auf diesem Gebiet. Und das wirkt sich auch positiv auf die Gehälter aus. Laut einem Bericht des CNBC liegt das durchschnittliche Jahresgehalt von Programmierern, die Blockchain programmieren können, über dem der normalen Software-Entwickler.

Der Bericht zitiert eine Studie des Statistik-Unternehmens „Hired“. Hired untersuchte für die Studie die Gehälter in den Vereinigten Staaten. Demnach liegt das durchschnittliche Jahresgehalt für Spezialisten im Bereich Blockchain zwischen 150.000 US-Dollar und 175.000 US-Dollar. Das durchschnittliche Gehalt im Bereich der Programmierung liegt in den USA bei 135.000 US-Dollar.

Das Gehalt von Blockchain-Experten lässt sich am ehesten noch mit dem von AI-Experten vergleichen, die auf dem Bereich der Künstlichen Intelligenz forschen. Dabei werden Blockchain-Programmierer schon lange nicht mehr nur von Startups gesucht. Auch große Technologiekonzerne wie IBM, Amazon und Microsoft implementieren die neue Technologie immer mehr in ihr Geschäftsmodell.

Es besteht das Risiko, dass der Hype auch um die neue Technologie etwas abflaut und viele der Startups die ersten Jahre nicht überleben werden. Das bedeutet, dass die überproportionale Nachfrage und die hohen Gehälter dazu führen, dass immer mehr Programmierer auf diesen Markt drängen und die Gehälter wieder sinken.

Sehr gut möglich, dass sich dieser Markt normalisieren wird. Dennoch bestehen für Menschen, die Blockchain programmieren können, gute Aussichten. Denn es handelt sich hierbei um eine Zukunftstechnologie, die immer wichtiger wird und in die unterschiedlichsten Bereiche der Wirtschaft, Logistik, Verwaltung und Finanzen dringt.

Auch die Blockchain-Energiewirtschaft wird in Zukunft eine immer wichtigere Rolle spielen. Daraus lässt sich schließen, dass in absehbarer Zeit die Nachfrage nach Experten für die Blockchain nicht sinken wird. Mit der Zeit wird aber auch das Angebot an Spezialisten für dieses Fachgebiet steigen und es wird mehr Konkurrenz geben.

Wer sich jetzt schon darin übt, Blockchain zu programmieren, der hat einen Vorsprung. Die Blockchain Zukunft sieht jedenfalls gut aus und somit auch die Zukunft für die Spezialisten in diesem Fachbereich.

 

Bildquelle: © AlfredMuller / Pixabay

Anzeige
Hinterlasse einen Kommentar

Leave a comment: