Wenn Sie ein Blockchain-Entwicklungsprojekt in Erwägung ziehen oder sich dafür entschieden haben, sind Sie bereits zu dem Schluss gekommen, dass es gute Gründe dafür gibt, warum die dezentrale digitale Ledger-Technologie die richtige Wahl ist; oder dies sein könnte.
Aber vielleicht haben Sie noch nie ein Blockchain-Entwicklungsprojekt geplant oder durchgeführt. Dabei gibt es viele Gemeinsamkeiten mit der Planung jedes anderen Softwareentwicklungsprojekts – aber es gibt auch wichtige Unterschiede.
Wenn Sie sich dieser Besonderheiten bewusst sind und in der Lage sind, mit ihnen umzugehen, sind Blockchain-Entwicklungsprojekte genauso einfach oder schwierig zu planen und auszuführen wie jede andere Softwareentwicklung.
Wenn Sie jedoch ein Blockchain-Entwicklungsprojekt angehen, ohne dessen einzigartige Anforderungen zu berücksichtigen, werden Sie in Schwierigkeiten geraten.
Die einzigartige Kombination von Eigenschaften der Blockchain-Technologie wie Dezentralisierung, Irreversibilität und Sicherheit durch Kryptographie macht sie zu einer potenziell optimalen Lösung für eine Vielzahl von Anwendungsfällen in verschiedenen Sektoren. Sie ermöglicht auch neue Anwendungsfälle; Kryptowährungen sind das offensichtliche Beispiel, aber auch andere Formen des dezentralen Finanzwesens (DeFi) und NFTs (die nicht nur Cartoon-Affenbilder sind) können aufgeführt werden.
Die Bandbreite der technischen Herausforderungen, die Blockchain-Lösungen verbessern oder möglich machen können, bedeutet, dass es eine Menge Blockchain-Entwicklungen gibt. Aber es handelt sich auch um eine Technologie, die noch im Entstehen begriffen ist. Wann haben Sie persönlich das letzte Mal eine Blockchain-basierte Anwendung genutzt, die keine Kryptowährungsbörse oder Krypto-Wallet war?
Die einzigartigen Eigenschaften der Blockchain und ihre noch relative Unreife als Technologie haben Konsequenzen. Jeder, der zum ersten Mal ein Blockchain-Entwicklungsprojekt in Angriff nimmt, muss sich folgenden Punkten bewusst sein:
Sie sollten sicherstellen, dass Sie den unteren und oberen Bereich der Kosten, die bei der Entwicklung Ihrer Blockchain-Lösung anfallen könnten, genau kennen. Und stellen Sie sicher, dass Sie in der Lage sind, diese gut zu verwalten – und zu finanzieren.
Ich werde nicht ausführlich auf jeden dieser Punkte eingehen, die bei Blockchain-Entwicklungsprojekten zu beachten sind. Das Ziel ist es, die wichtigsten Überlegungen hervorzuheben, damit Sie die Art von Überraschungen vermeiden können, die problematisch werden können.
Oder sogar ein Projekt zum Scheitern bringen können.
Wenn Sie sich jedoch darauf vorbereiten, die richtigen Entscheidungen treffen zu können, und Ihr Projekt unter Berücksichtigung dieser Gegebenheiten aufsetzen, werden Sie Ihr Blockchain-Projekt vorteilhaft angehen können.
Der SDLC (System Development Life Cycle = Systementwicklungslebenszyklus) eines Blockchain-Entwicklungsprojekts hat die gleichen Phasen wie jeder andere SDLC; von der Planung und dem Entwurf über die Entwicklung, das Testen, die Bereitstellung und die Wartung. Allerdings sind insbesondere in der Planungs- und Entwurfsphase unterschiedliche Fragen zu beantworten.
Die wichtigsten Entscheidungen, bei denen Sie in der Lage sein müssen, diese in die richtige Richtung zu lenken, sind:
Proof-of-Work und Proof-of-Stake sind die Hauptoptionen, aber es gibt auch Nischenalternativen wie Byzantine Fault-Tolerant (bft), Proof-of-Authority (poa) und Directed Acyclic Graph (dag).
Die Blockchain-Technologie ist eng mit Kryptowährungen verknüpft, da diese ihr erster Anwendungsfall waren. Eine öffentliche Blockchain benötigt Kryptowährungen, um zu funktionieren, weil es einen finanziellen Anreiz für die Nodes (Knotenpunkte) geben muss, sich an dem P2P-Netzwerk zu beteiligen, das Transaktionen verifiziert.
Token funktionieren wie Kryptowährungen, sind aber mit Software wie dApps verbunden, die auf Blockchains wie Ethereum aufsetzen.
Doch im Gegensatz zu öffentlichen Blockchains benötigen private Blockchains oder dApps, die auf Blockchains aufbauen, keine eigene Kryptowährung oder Token, um zu funktionieren. Der Krypto-Aspekt kann dabei weggelassen werden.
Wenn Nutzer nicht gezwungen werden, Kryptowährungen oder Token zu verwenden, um auf eine dApp zuzugreifen, kann der Prozess viel zugänglicher und benutzerfreundlicher werden, während die technologischen Stärken der Blockchain erhalten bleiben. Durch den Verzicht auf Token werden auch einige der damit verbundenen Rechts- und Vertrauensfragen umgangen.
Es hängt sehr stark von der Art Ihres Projekts ab, aber eine der ersten großen Fragen, die Sie sich stellen sollten, ist, ob Sie eigene Token oder native Coins benötigen oder wollen. Definieren Sie die Bedürfnisse Ihres Systems und wo ein Utility-Token nützlich oder notwendig sein könnte.
Wenn dies nicht der Fall ist, ist es wahrscheinlich besser, auf die Ausgabe eines Tokens zu verzichten und dadurch die Benutzererfahrung durch den Verzicht dessen zu vereinfachen.
Erfolgreiche dApps wie OpenBazaar und Mastodon sind tokenlos.
In den allermeisten Fällen ist es nicht sinnvoll, eine eigene Blockchain von Grund auf zu entwickeln. Das wäre ein sehr umfangreiches Unternehmen – insbesondere die Implementierung der Core-Engine und der Aufbau eines Netzwerks von Minern und Nodes (zu Deutsch: Knotenpunkte), das für ein schnelles, sicheres P2P-Netzwerk benötigt wird.
Der Aufbau einer Blockchain von Grund auf wird in der Regel nur dann in Betracht gezogen, wenn Sie eine vollständig benutzerdefinierte und private Blockchain benötigen.
Die folgende Arbeit auf SpringerOpen (nur auf Englisch verfügbar) ist eine ausführliche Fallstudie über ein Blockchain-basiertes Energiehandelssystem mit Merkmalen, die die Entwicklung einer eigenen Blockchain erforderlich machten – Implementing a blockchain from scratch: why, how, and what we learned.
In den meisten Fällen werden Sie Ihr Blockchain-Projekt auf einer der etabliertesten und am weitesten verbreiteten Plattformen für Smart Contracts entwickeln, wie z. B.:
Ethereum – die beliebteste Blockchain-Plattform für die Protokoll- und dApp-Entwicklung aufgrund ihrer breiten, etablierten Nutzung und ihres ausgereiften (im Kontext der Blockchain-Entwicklung) Ökosystems.
Solana – am beliebtesten für Exchange-Systeme und Spiele. Es ist kostengünstiger als Ethereum und schneller, aber weniger flexibel und hat, zumindest im Moment, kein so ergiebiges Entwicklungsökosystem.
Polygon – eher eine Sidechain als eine völlig unabhängige Blockchain-Plattform; Polygon ist eine Ethereum-Skalierungsplattform. Ihre Vorteile sind eine höhere Geschwindigkeit und niedrigere Gebühren. Dies bedeutet jedoch Einbußen bei der Sicherheit.
Neben diesen drei gibt es auch andere Blockchain-Optionen wie TRON, EOS, NEO und BNB Chain.
Sie sollten bedenken, dass es schwieriger sein wird, Blockchain- und Web3-Entwickler zu finden, die Erfahrung mit der Entwicklung auf weniger verbreiteten Plattformen haben. Im Falle einer Entwicklung Ihrer eigenen Blockchain gilt das Gleiche für das technische Fachkräfte-Team, das Sie unterhalten und möglicherweise auch vergrößern müssen.
In Nischen aufgebaute Blockchains haben auch weniger umfangreiche und ausgereifte Ökosysteme.
Bei der Wahl der Blockchain-Plattform und den Entscheidungen über die übrige Architektur und den Technologie-Stack sollten ähnliche wirtschaftliche Erwägungen wie bei anderen Softwareentwicklungsprojekten berücksichtigt werden.
Kommerzielle Webentwicklungsprojekte entscheiden sich in der Regel für einen Mainstream-Stack (wie MEAN oder MERN), auch wenn manchmal überzeugende technische Argumente für eine Nischenlösung sprechen, die bei Entwicklern beliebt ist – wie SolidJS.
Doch warum? Weil es ein vorhersehbares Angebot an verfügbaren Tech-Fachkräften gibt, die für die Entwicklung, Wartung und Skalierung von Projekten benötigt werden. Und sie profitieren von den ausgereiftesten Ökosystemen der Webentwicklung, von Programmierwerkzeugen und Frameworks bis hin zu großen und aktiven Open-Source-Communities.
Für die meisten kommerziellen Blockchain-Entwicklungsprojekte gibt es gute Gründe, sich an Ethereum Virtual Machine (EVM)-kompatible Chains zu halten.
Der EVM führt Smart Contracts und den Code von dApps aus und die Kompatibilität des EVM ermöglicht die Verwendung der meisten der gleichen Entwicklerwerkzeuge (das am weitesten entwickelte Ökosystem in der Blockchain-Entwicklung), die für die Erstellung einer dApp direkt auf Ethereum basierend verwendet werden.
So sind zum Beispiel die BNB Chain, Fabric und Polygon EVM-kompatibel. Solana ist nicht kompatibel, und das bedeutet, dass es für Projekte, die auf Solana aufbauen wollen, schwieriger sein wird, Spezialisten einzustellen.
Sie müssen auch entscheiden, ob Ihr Blockchain-Projekt Permissionless (öffentliche Blockchain) oder Permissioned (private Blockchain) sein soll. Öffentliche Netzwerke sind völlig offen und ermöglichen unterschiedliche Grade der Benutzeranonymität.
Wenn Sie den Zugang zu Ihrer Blockchain kontrollieren müssen oder wollen, müssen Sie sie auf privater Basis (permissioned) aufbauen. Sie können immer noch ein privates Blockchain-Netzwerk auf einer öffentlichen Blockchain wie Ethereum einrichten – Sie müssen nicht Ihr eigenes aufbauen.
In der Regel sollten Sie es vermeiden, im Rahmen eines Blockchain-Entwicklungsprojekts direkt mit Nodes (Netzwerk-Knotenpunkte) zu arbeiten, wenn Sie die Wahl haben. Genauso wenig wie man einen eigenen Browser für eine Webanwendung entwickeln oder direkt mit einer CPU interagieren möchte.
Ein Blockchain-Node ist eine plattformübergreifende Open-Source-Laufzeitumgebung, die eine vollständige Kopie des verteilten Ledgers speichert und es Entwicklern ermöglicht, Dienste zu erstellen. Nodes ermöglichen es außerdem jedem Nutzer einer Blockchain, den gesamten Transaktionsverlauf der Blockchain einzusehen.
Das Aufstarten eines Nodes war bisher die einzige Möglichkeit, sich mit einer Blockchain zu verbinden. Das Einrichten, Betreiben und Warten von Blockchain-Nodes ist jedoch technisch anspruchsvoll, zeitaufwändig und teuer.
Zum Glück gibt es inzwischen eine große Auswahl an spezialisierten Node-Anbietern, die Blockchain-Nodes als Dienstleistung anbieten.
Node-Anbieter bieten eine sofort einsatzbereite Möglichkeit, auf die Informationen in einer Blockchain zuzugreifen, ohne einen eigenen Node betreiben zu müssen. Anstatt Anfragen an einen von Ihnen eingerichteten lokalen Node zu senden, senden Sie sie über das Internet an einen Anbieter, der eine identische API anbietet und rund um die Uhr voll synchronisierte, aktuelle Nodes betreibt.
Die meisten Web3-Entwickler und -Projekte benötigen keine eigenen Nodes. Dies ist nur empfehlenswert, wenn Sie sehr spezifische Anforderungen haben:
Sie müssen entscheiden, ob Sie Ihren eigenen Node betreiben oder einen Node-Anbieter nutzen wollen. Wenn letzteres der Fall ist, müssen Sie entscheiden, welcher für Ihr Projekt am besten geeignet ist. Node-Anbieter unterscheiden sich unter anderem in folgenden Punkten voneinander:
Einige der bekanntesten Node-Anbieter sind Alchemy, Moralis, Infura und Quicknode. Es gibt noch weitere Anbieter, und es ist mit neuen Marktteilnehmern zu rechnen.
Web3-Apps oder dApps fragen über Web3-APIs neue Daten ab und schreiben sie in die in sich geschlossene Datenbank einer Blockchain, was die Verwendung von APIs in herkömmlichen Apps widerspiegelt; dies ermöglicht die Kommunikation zwischen Frontend, Backend und den Datenbanken.
Die Tatsache, dass die Datenbank und das Backend in dApps auf einer Blockchain bereitgehalten werden, erfordert die Verwendung spezieller Web3-APIs für Prozesse wie die Verwaltung von Smart Contracts, die Schlüsselverwaltung, die Generierung von Adressen und Schlüsseln und die Verwaltung des Lebenszyklus von Smart Assets.
Sie können und müssen unter Umständen Ihre eigenen Web3-APIs entwerfen und erstellen, insbesondere wenn Sie Ihre eigenen Nodes verwenden oder besondere Anforderungen haben. Sie können jedoch auch fertige Web3-APIs von spezialisierten Anbietern nutzen. Alle großen Node-Anbieter bieten auch entsprechende APIs an.
Zu den bekanntesten Web3-API-Anbietern gehören:
Die Wahl des Kerntechnologie-Stacks sollte von einem Blockchain-Software-Architekten getroffen werden, der über die nötige Erfahrung verfügt, um fundierte Entscheidungen zu treffen, die Ihre Bedürfnisse berücksichtigen bezüglich folgenden Punkten:
Bei der Blockchain-Entwicklung werden Programmiersprachen, Bibliotheken und Frameworks verwendet, um die Smart Contracts zu programmieren, die die Funktionalität Ihrer dApp und die Benutzeroberfläche steuern.
Im Folgenden finden Sie eine Zusammenfassung der häufigsten Tech-Stack-Anforderungen für Blockchain-Entwicklungsteams in Frontend- und Backend-Rollen.
Die Entwicklung der Benutzeroberfläche bzw. des Frontends von Blockchain-basierten dApps unterscheidet sich nicht von der Entwicklung einer herkömmlichen Anwendung. Dieser Teil ist derselbe.
Das gibt Ihnen die Freiheit, einen Frontend-Tech-Stack zu wählen, der auf den gleichen Überlegungen basiert, die Sie normalerweise anstellen würden – die Anforderungen der App (z.B. JS-Frameworks, wenn dynamische Inhalte bereitgestellt werden), vorhandene interne Ressourcen, Verfügbarkeit von Fachkräften, Zukunftssicherheit usw.
In den meisten Fällen werden Sie sich aus denselben Gründen wie bei herkömmlicher Entwicklung für ein handelsübliches Frontend-Framework entscheiden – Sie haben die entsprechenden Spezialisten bereits im Haus oder diese sind relativ einfach einzustellen, entweder durch direkte Einstellung oder durch einen IT-Outsourcing-Partner oder eine Softwareentwicklungsagentur.
Ein Unterschied zwischen herkömmlicher Web2- und Web3-Frontend-Stacks sind Bibliotheken wie Ethers.js und Web3.js, die für die Interaktion mit Blockchain-Daten verwendet werden.
Quelle: Alchemy
Das Backend Ihrer dApp ist die Blockchain, auf der Ihre Daten und die Smart Contracts, die Ihre Funktionalitäten bereitstellen, gehostet werden. Sie benötigen Backend-Entwickler mit spezialisierten Web3- und Blockchain-Technologie-Stacks, um Ihre Smart Contracts zu programmieren und das Frontend über Web3-APIs mit den Blockchain-Nodes zu verbinden.
Wenn Sie Ethereum oder eine andere EVM-kompatible Blockchain oder Sidechain verwenden, benötigen Sie höchstwahrscheinlich Blockchain-Entwickler mit Erfahrung in Solidity (der nativen Programmiersprache von Ethereum) und anderen Programmierlösungen für Smart Contracts wie Remix und Hardhat, der JavaScript-Entwicklungsumgebung für Ethereum-Software.
Wenn Sie jedoch Solana verwenden, muss Ihr Backend-Team in der Lage sein, die Smart Contracts in Rust zu programmieren. Anchor ist eine nicht auf EVM basierte Entwicklungsumgebung (wie Hardhat), die die Hürden für die Rust-Entwicklung von Smart Contracts auf Solana senkt.
Andere Programmiersprachen, die für die Programmierung von Smart Contracts verwendet werden können, sind Vyper, Yul, Cairo und Move.
Quelle: chain.link
Python, Java, C++, Go und Simplicity, eine neue erstklassige Blockchain-Sprache, die speziell für die Entwicklung und das Lesen von Smart Contracts entwickelt wurde, sind weitere Sprachen, die viele Blockchain-Entwicklungsprojekte im Technologie-Stack ihres Teams benötigen.
Beginnen wir mit dem, was bei der Planung von Blockchain-Entwicklungsprojekten oft der wichtigste Punkt ist: Web3-Entwickler sind teuer. Wie teuer, hängt unter anderem von folgenden Faktoren ab:
Aber unabhängig von den Bedingungen, die Sie anbieten, und unabhängig von Ihrer Personaleinstellungsstrategie sollten Sie damit rechnen, dass Sie für erfahrene Web3-Entwickler deutlich mehr Gehalt zahlen müssen als für Web(2)-Entwickler.
Dies wird durch die Daten von talent.com veranschaulicht, die das durchschnittliche Jahresgehalt für einen leitenden Web3-Entwickler auf 160.000 US-Dollar beziffern.
Im Vergleich zu 115.000 Dollar für einen erfahrenen Webentwickler.
Die relative Ineffizienz der Blockchain-Entwicklung, die sich aus dem weniger entwickelten Ökosystem ergibt, erhöht ebenfalls die Kosten. Selbst ein erfahrenes Entwicklungsteam muss einen größeren Aufwand betreiben und Softwarebestandteile von Grund auf neu aufbauen im Vergleich zu einem ähnlichen Web2-Entwicklungsprojekt.
Quelle: Talent.com
Unter der Annahme, dass Sie über das nötige Budget verfügen, um den Personalbedarf Ihres Web3-/Blockchain-Projekts zu decken, bedeutet ein Mangel an hochqualifizierten Fachkräften, dass es immer noch schwierig sein kann, die für den Aufbau Ihrer dApp benötigten Spezialisten zu rekrutieren.
Sie haben verschiedene Möglichkeiten, ein Blockchain-Entwicklungsprojekt zu besetzen:
Ein relativer Mangel an Web3-Fachkräften in entwickelten Märkten wie Nordamerika und Westeuropa bedeutet, dass es in diesen Regionen mehr potenzielle Arbeitgeber als Arbeitnehmer oder Auftragnehmer gibt.
Das treibt nicht nur die Kosten in die Höhe, sondern bedeutet auch, dass gefragte Bewerber mehrere Angebote erhalten können – oft von den größten Namen der Technologiebranche, die in den letzten Jahren viele der verfügbaren Web3-Entwickler eingestellt haben.
Für Start-ups, Unternehmen ohne großen Namen oder solche, die Projekte entwickeln, die von den Entwicklern aus dem einen oder anderen Grund nicht als spannend angesehen werden, kann die Einstellung von Web3-Entwicklern vor Ort ein großes Problem darstellen. Selbst eine landesweite Rekrutierung kann sich als schwierig bis unmöglich erweisen.
Wenn Sie vorhaben, erfahrene Web3-Entwickler auf lokaler oder landesweiter Ebene in einer entwickelten Volkswirtschaft einzustellen, ist es ratsam zu überprüfen, ob Sie in der Lage sein werden, die von Ihnen gewünschten oder vorgeschriebenen Projektfristen einzuhalten.
Unser in den USA ansässiger Blockchain-Entwicklungskunde Ajna, ein DeFi-Startup, wandte sich an uns, nachdem monatelange Frustrationen bei dem Versuch, Web3-Fachkräfte intern und vor Ort zu rekrutieren, sein Projekt gefährlich in Verzug gebracht hatten.
Wir konnten ihr Team innerhalb von 2 Monaten von 2 auf 6 Web3-Entwickler aufstocken, indem wir in Osteuropa – Polen und der Ukraine – Personal einstellten.
Hier können Sie die faszinierende Hintergrundgeschichte von 2 der 4-köpfigen Teamverstärkung lesen – Andrii und Dmitro – Blockchain-Brüder, die auf den Tag genau ein Jahr auseinander geboren wurden.
Da die Personalbeschaffung für Web3-Projekte der häufigste Problempunkt ist, ist dies ein entscheidendes Element eines Blockchain-Entwicklungsprozesses, bei dem es die richtigen Entscheidungen zu machen gilt – am besten von Anfang an.
Denken Sie sorgfältig über Ihre Bedürfnisse nach, welche folgende Punkte beinhalten sollten:
Eine Projektplanung ist nie perfekt. Aus diesem Grund wird bei einer Projektplanung, die etwas taugt, eine gewisse Flexibilität eingebaut, in der Erwartung, dass einige Dinge nicht nach Plan verlaufen. Die Projektplanung für die Blockchain-Entwicklung folgt der gleichen Logik.
Aber die Projektplaner müssen genug richtig machen, wenn das Projekt erfolgreich durchgeführt werden soll. Selbst bei einem agilen Entwicklungsprojekt, bei dem vieles auf der Grundlage von Nutzer- und Marktfeedback herausgefunden und angepasst wird, gibt es immer noch Dinge, die von Anfang an festgelegt werden müssen.
Zum Beispiel:
Sie sollten nun einen guten Überblick über die wichtigsten Entscheidungen haben, die Sie während der Vorbereitung und im Laufe eines Blockchain/Web3-Entwicklungsprojekts treffen müssen. Und die Ressourcen, die Sie benötigen, um diese Entscheidungen zu treffen und Ihr Projekt durchzuführen.
K&C ist ein in München ansässiger Nearshore-IT-Outsourcing-Anbieter mit Erfahrung in Blockchain- und Web3-Entwicklungsprojekten. Wir bieten IT-Outsourcing-Modelle von der einfachen Personalbeschaffung bis zum vollständigen Übergabemanagement von der Projektplanung bis zur Ausführung an.
Wenn Ihr aktuelles oder bevorstehendes Blockchain-Projekt von unserer Erfahrung und unseren Dienstleistungen profitieren könnte, dann nehmen Sie gerne Kontakt mit uns auf.