Was ist eine DApp (dezentralisierte App)?

Eine DApp bezeichnet eine dezentralisierte App. Anders als übliche Apps, wie der Instant-Messenger WhatsApp, werden DApps nicht von einem einzelnen Anbieter betrieben, gewartet oder weiterentwickelt.

Wäre WhatsApp eine DApp, würde sie nicht allein von Facebook betrieben werden. Facebook hat jederzeit die Möglichkeit, die Software des Instant-Messengers nach den eigenen Vorstellungen zu verändern.

Das ist z. B. bei Bitcoin und Ether nicht möglich. Bitcoin und Ether sind eine DApp und im Unterschied zu WhatsApp Open Source. Die Software von Bitcoin und Ether funktioniert dezentralisiert, nicht zentralisiert. Wo genau liegen die Unterschiede zwischen Apps und DApps? Wofür wurden DApps entwickelt? Wie funktionieren sie?

Apps vs DApps
Apps vs. DApps @wikipedia.org

DApp – Vier Definitionskriterien

Eine Software sollte vier Kriterien erfüllen, damit sie als DApp bezeichnet werden kann. Sie muss Open Source sein, auf einer Blockchain basieren, kryptografisch verschlüsselte Token anbieten und über einen Mechanismus verfügen, der diese Token erzeugt. Wie sich zeigen wird, hängen diese vier Kriterien eng miteinander zusammen.

1. Kriterium: Open Source

Eine Open-Source-Software verfügt über einen frei zugänglichen Quelltext. Der Quelltext ist der Code einer Software, der in einer bestimmten Programmiersprache verfasst ist und als geschriebener Text besteht. Ein Quelltext verhält sich zu einer App, wie die DNA zu einer Maus.

Wird im Quelltext etwas geändert, verändern sich die Funktionen des Computerprogramms. Genauso wie einer Maus ein Ohr auf dem Rücken wächst, wenn Wissenschaftler in ihrer DNA etwas ändern. Ein frei zugänglicher Quelltext kann, abgesehen von den Entwicklern der Software, von Dritten eingesehen, umprogrammiert und frei verwendet werden.

Eine DApp sollte über einen zugänglichen Quelltext verfügen. Zudem muss dieser Quelltext autonom operieren. Es gibt keine zentrale Instanz, wie einen Systemadministratoren, der allein darüber entscheidet, wie die zukünftige Entwicklung der DApp aussehen soll.

Vielmehr muss sich das Protokoll, wodurch der Quellcode festgehalten wird, an Veränderungsvorschläge für die zukünftige Entwicklung oder aber auch an Marktreaktionen anpassen. Alle Entwicklungen innerhalb des Quellcodes müssen außerdem durch einen Konsens der Entwickler entschieden werden.

2. Kriterium: Blockchain

Alle DApps müssen, um die Definition zu erfüllen, Daten, Berichte und den Quellcode auf einer dezentralisierten Blockchain speichern. Eine Blockchain ist eine Software, die auf vielen verschiedenen, miteinander vernetzten Computern betrieben wird.

Anders als bei WhatsApp, wo der Instant-Messenger durch ein zentrales Rechenzentrum betrieben wird, funktionieren DApps deshalb dezentralisiert. Das hat den Vorteil, dass sie nicht gehackt werden können.

Wird das gesamte Rechenzentrum von WhatsApp gehackt, funktioniert WhatsApp nicht mehr und Daten können gestohlen und im schlimmsten Fall missbraucht werden.

Das ist bei einer DApp nicht möglich, weil ihr Quellcode auf einer Blockchain und damit auf vielen verschiedenen, miteinander vernetzten Computern gespeichert ist. Um eine DApp zu hacken, müssten Angreifer jeden einzelnen Computer des Netzwerkes gleichzeitig angreifen, die kryptografische Verschlüsselung der Blockchain knacken und dann den Quellcode der DApp ändern.

Das ist nahezu unmöglich, weshalb die Wahrscheinlichkeit, eine DApp zu hacken, gegen null geht. Die Speicherung des Quellcodes auf einer dezentralen, aber dennoch öffentlich einsehbaren, Blockchain verringert Angriffsflächen.

Der Quellcode einer Software wird bloß gezielt ausgewählten Entwicklern zur Verfügung gestellt. Denn den Quellcode dürfen nur Entwickler ändern, welche über sogenannte Token verfügen.

Aus Apps werden bald DApps
Aus Apps werden bald DApps

3. Kriterium: kryptografisch verschlüsselte Token

Kryptografisch verschlüsselte Token sind unter anderem Teil einer kryptografisch verschlüsselten Blockchain. Was genau ein Token ist, ist nicht ganz so einfach zu verstehen.

Wenn jemand in einem Satz das Wort „Hund“ verwendet, kann dieser Begriff unterschiedliche Bedeutungen haben. In dem Satz „Das ist mein Hund Bello“, bezeichnet der Begriff tatsächlich einen echten Hund. In dem Satz „Du Hund!“, wird der Begriff als Beleidigung verwendet. Und in dem Satz „Was ist das für ein Hundewetter?“, meint der Begriff etwa ein stürmisches, regnerisches Wetter.

Es ist erkennbar, dass der Begriff von der Grundbedeutung her ein Säugetier mit Fell, vier Beinen, einem Schwanz, einer feuchten Nase, was bellen kann, bezeichnet. In den unterschiedlichen Satzkontexten jedoch bekommt der Begriff eine andere Bedeutung.

Die Grundbedeutung des Begriffes „Hund“ bleibt jedoch dieselbe. Sie bezeichnet in der eigenen Vorstellung immer das Säugetier. Die Grundbedeutung des Begriffes kann auch als „Type“ bezeichnet werden. Je nachdem, in welchen Kontexten der Begriff nun verwendet wird, ändert sich diese Bedeutung. Die tatsächliche Verwendung des Begriffes „Hund“ wird „Token“ genannt.

Ein Token ist eine definite Verwendung eines Begriffes in einem festgelegten Kontext. Kryptografisch verschlüsselte Token sind digitale Einheiten, welche eine Kopie eines sensiblen Datensatzes auf einer Blockchain darstellen.

Wenn Miner mit Token operieren, also mit Bitcoins Handel betreiben, denn Bitcoins sind die Token der Bitcoin-Blockchain, handeln sie mit einer Kopie eines Datensatzes der Bitcoin-Blockchain.

Das hat den Zweck, dass sie einerseits für das Mining, also die Erzeugung von Bitcoin durch die Lösung von Hashfunktionen, belohnt werden und andererseits die Blockchain nicht hacken können. Jedes Token bleibt so lange ein Token, bis mehrere Miner, durch ein Peer-to-Peer-Netzwerk, eine Transaktion über die Blockchain bestätigt haben.

Auf eine einfache Ebene runtergebrochen, kann Paul Marie einen Bitcoin senden. Paul sendet den Bitcoin direkt an die Wallet-Adresse von Marie. Der Bitcoin, respektive das Token, wird nun gemeinsam mit den Sender- und Empfänger-Adressen auf der Blockchain verzeichnet.

In einem nächsten Schritt überprüfen Miner die Transaktionsbedingungen. Wenn mehrere Miner zum selben Ergebnis kommen, hat die Transaktion wirklich stattgefunden. Das hat den Zweck, dass keine zentrale Instanz notwendig ist, um eine Transaktion durchführen zu können.

Weiterhin kann Paul auf diese Weise sein Token, also den Betrag, den er in Bitcoin versendet, nicht beliebig umprogrammieren. Paul könnte sein Token einfach so umprogrammieren, dass er auf einmal zwei Bitcoins an Marie sendet, obwohl er nur einen besitzt.

Genau dafür sind Token da. Sie verändern die Information, wer wie viel an wen gesendet hat, nicht direkt auf der Blockchain, sondern stellen eine verschlüsselte Datenkopie dar, welche von mehreren Minern überprüft wird, bevor sie endgültig in die Blockchain integriert wird.

Auf diese Weise können Miner belohnt und falsche Transaktionen oder Angriffe auf die Blockchain können sehr effizient abgewehrt werden.

4. Erzeugung von Token

DApps müssen einen Mechanismus verwenden, um kryptografisch verschlüsselte Token generieren zu können, damit Miner eine Belohnung bekommen können. Bitcoin verwendet den SHA-256-Algorithmus, den sogenannten Proof-of-Work-Algorithmus, um Bitcoins zu schürfen.

Miner können sich einfach eine Bitcoin-Software herunterladen und Rechenleistung zur Verfügung stellen, um über eine Hashfunktion Transaktionsdaten miteinander zu verrechnen, damit diese verschlüsselt in der Bitcoin-Blockchain gespeichert werden können.

Miner bilden das Rückgrat des Bitcoin-Netzwerkes. Ohne sie würde das Netzwerk nicht funktionieren. Diese vier Kriterien müssen erfüllt sein, damit eine App als DApp bezeichnet werden kann. Weiterhin gibt es drei Klassen von DApps.

Drei Klassen von DApps

Die drei Klassen von DApps sind:

  • Typ 1: DApps, die eine eigene Blockchain betreiben
  • Typ 2: DApps, die eine Blockchain von Typ 1 verwenden
  • Typ3: DApps, die das Protokoll von Typ 2 verwenden

Die drei Klassen bauen logisch aufeinander auf. Als Beispiel sei die Kryptowährung Ethereum angeführt. Ethereum erfüllt die vier Kriterien einer DApp. Das Protokoll von Ethereum ist Open Source, Ethereum verfügt über eine eigene Blockchain, verwendet kryptografisch verschlüsselte Token und besitzt einen Token-Erzeugungs-Mechanismus.

Ethereum bietet sogenannte Smart Contracts an. Das sind digitale Verträge, welche zu festen Bedingungen programmiert werden und bei Erfüllung dieser Bedingung automatisch die vereinbarten Vertragsbedingungen erfüllt. Das hat unter anderem den Vorteil, dass menschliche Fehler, beim Abschluss eines Vertrages, vollständig ausgeschlossen werden können.

Über die Smart Contracts wird es möglich, eigene DApps anbieten zu können. DApps, die auf der Ethereum-Blockchain basieren, sind beispielsweise R3, ein Blockchain-Konsortium, GNOSIS, eine Anwendung für dezentrale Prognosemärkte oder Microsoft Azure, ein Blockchain-as-a-Service (SaaS).

Diese drei Beispiele sind in den Typ 2 einzuordnen, weil sie die Blockchain von Ethereum verwenden, also Typ 1. Eine Applikation, die nur die Infrastruktur der Microsoft Azure Cloud nutzt, kann in den Typ 3 eingeordnet werden. Ein Beispiel dafür ist Heineken, Real Madrid oder Absolut, die alle auf Basis von Microsoft Azure eine App betreiben.

DApps selbst programmieren

DApps werden programmiert, wie andere Anwendungen auch. Um DApps zu programmieren, müssen sich Entwickler natürlich auch mit der Blockchain-Technologie auseinandersetzen. Die DApp und deren Code sind in der Blockchain gespeichert.

Besonders häufig kommt die Programmiersprache Solidity zum Einsatz. Auch Vyper kann zur Entwicklung genutzt werden, hauptsächlich bei Ethereum. Frameworks wie Embark, Truffle und Dapp helfen dabei Smart Contracts und DApps zu entwickeln. Auch Etherlime und ether.js kommen bei der Entwicklung von DApps häufig zum Einsatz.

Mit beiden Sprachen können auch Smart Contracts entwickelt werden. Weitere Tools und Programmiersprachen sind auf der Seite „Ethereum Developer Tools List“ zu finden.

Neben den Programmiersprachen und Frameworks spielen auch Entwicklungsumgebungen eine Rolle. Auch hier gibt es viele kostenlose Open-Source-Tools, mit denen DApps auch ohne Kosten entwickelt werden können. Microsoft stellt für Visual Studio Code eine Erweiterung für Solidity zur Verfügung. Die Erweiterung „ETHcode“ unterstützt bei der Entwicklung von DApps in Ethereum.

Microsoft bietet zusätzlich noch Blockchain Development Kit for Ethereum. Auch damit können DApps entwickelt werden. Mit der webbasierten Entwicklungs-Umgebung Remix können Smart Contracts und DApps auch ohne lokale Installationen entwickelt werden.

Liste von bekannten DApps

  • UbiTok.io – Exchange Plattform für Ethereum Token
  • Decentraland – Virtual Reality Plattform
  • Gnosis – Plattform für Vorhersagen
  • CryptoKitties – Onlinespiel mit virtuellen Katzen
  • GotCHA – Simples und faires Spiel, um ETH zu gewinnen
  • SportCrypt – Peer-to-Peer Wettplattform
  • Leeroy – Social-Media-Plattform
  • CryptoFace – Erstelle Dein eigenen Avatar
  • xcontract – Webapp Interface für Smart Contracts
  • Augur – Dezentrale Marktvorhersagung
  • BlockCAT – Smart Contracts per Visual Interface erstellen
  • Golem – Die Computer DApp (weltweite Supercomputer)

Bei der Verwendung einer DApp-Plattform können Entwickler eigene DApps entwickeln und dabei auf die Blockchain der Plattform setzen. Die verschiedenen Plattformen konzentrieren sich meistens auf eine Liste von Tools und Programmiersprachen, die hauptsächlich zum Einsatz kommen, um DApps in der Plattform zu entwickeln.

Auch Tools für die Entwicklung von DApps werden von der Plattform oder für die Plattform bereitgestellt. Bekannte Beispiele für DApp-Plattformen sind Ethereum, Neo, Lisk und Eos.

DApps versus Apps – Das sind die Vor- und Nachteile

In Zukunft ist zu erwarten, dass es immer mehr DApps geben wird. Aber auch herkömmliche Apps werden ihre Daseinsberechtigung nicht verlieren, da nicht alle Dienste und Funktionen in der Blockchain umsetzbar sind.

Es ist durchaus sinnvoll, dass sich Entwickler mit den Vor- und Nachteilen auseinandersetzen, wenn sie eine neue Anwendung programmieren wollen.

Es ist daher sicherlich überlegenswert, eine App als DApp zu entwickeln. Für diese Möglichkeiten stehen auch zahlreiche Plattformen zur Verfügung, mit denen öffentliche und private Blockchains genutzt werden können, zum Beispiel auch über Hyperledger.

Der größte Vorteil von DApps besteht darin, dass diese dezentral auf den Knoten in der Blockchain zum Einsatz kommen können. Dadurch sind die DApps kaum hackbar, hochsicher, transparent und geschützt gegen Zensur und Eingriffe durch Behörden oder andere externe Instanzen.

Der Code der DApp ist ebenfalls in der Blockchain verfügbar und daher sehr robust. Da die DApp auf tausenden Knoten in der Blockchain zum Einsatz kommt, sind auch hier Ausfälle eher unwahrscheinlich. Alle Teilnehmer haben die App und ihre Daten auf dem Endgerät.

Finanzdaten auf einem Tablet mittels DApp

Das ist in einer Server-Client-Struktur kaum möglich. Durch die dezentrale Speicherung der Daten auf allen Beteiligten im Netzwerk sind keine Server notwendig. Es sind aber auch keinerlei Vermittler erforderlich, die als Instanz zwischen den Teilnehmern agieren.

Das ermöglicht das Übertragen von Vermögenswerten. Am Beispiel von Bitcoin ist es etwa so, dass zum Übertragen von Bitcoins keine Banken notwendig sind. Die Blockchain selbst stellt hier die übergeordnete Instanz dar, und die Blockchain besteht aus ihren tausenden, unabhängigen Knoten.

Der Nachteil bei den DApps ist aber, dass diese durch die Leistung der Blockchain limitiert werden. Ein wichtiger Bestandteil von DApps sind die Transaktionen, die eine Blockchain ausführen kann.

Hier müssen Entwickler bereits bei der Planung einer DApp darauf achten, welche Blockchain zum Einsatz kommen soll. In jedem Fall können DApps nicht die Leistung bringen, die derzeit mit herkömmlichen Apps möglich ist.

DApps sind darüber hinaus von der Blockchain und auch vom Internet abhängig. Während herkömmliche Apps auch offline funktionieren, setzen DApps eine Verbindung zum Internet und zur Blockchain voraus.

Fazit

Eine DApp ist eine dezentralisierte App. Sie muss die vier Kriterien erfüllen, dass sie über eine eigene Blockchain verfügt, welche Open Source ist. Weiterhin muss sie kryptografisch verschlüsselte Token anbieten und über einen Mechanismus verfügen, wodurch diese Token erzeugt werden.

Außerdem können DApps in drei verschiedene Kategorien eingeordnet werden. Typ 1 verfügt über eine eigene Blockchain, Typ 2 verwendet die Blockchain von Typ 1 und Typ 3 verwendet das Protokoll von Typ 2.

Auf diese Weise ist mittlerweile ein ganzes Universum von DApps entstanden, welche aufgrund der zugrundeliegenden Technologie besonders effizient, kostengünstig und sicher ist. Die Entwicklung dezentraler Applikationen steht jedoch noch am Anfang.