Blockchain

Was ist Blockchain?

Blockchain ist eine noch recht junge Technologie, die durch ihre erste, weltweite bekannte Anwendung bekannt geworden ist - Bitcoin. Bitcoin ist die erste komplett dezentralisierte virtuelle Währung, die sich nicht auf Zentralbanken oder Finanzdienstleister verlässt, sondern nur verteilt im Netzwerk funktioniert. Dadurch entzieht sie sich jeder Kontrolle durch staatliche oder regulatorische Einrichtungen und kann ohne Weiteres grenzüberschreitend transferiert werden. Dies muss dann noch sicher und schnell sein. Das alles ermöglicht die Blockchain.

Bei der Blockchain werden alle Transaktionen, die im Netzwerk geschehen, in Blöcken zusammengefasst. Da es keine zentrale Instanz gibt, die die Korrektheit eines Blocks und somit alle enthaltenen Transaktionen zu 100% sicher verifizieren kann, müssen das die Teilnehmer am Netzwerk tun. Dies geschieht über das sogenannte Mining. Die Miner schlagen Blöcke vor, die mit der bisherigen, auf der Blockchain gespeicherten Historie kompatibel sind. Gibt es genug andere Knoten im Netzwerk, die die Korrektheit des vorgeschlagenen Blocks bestätigen, können die enthaltenen Transaktionen als korrekt und erfolgreich angesehen werden. Mit steigender Anzahl an Bestätigungen wächst somit die Wahrscheinlichkeit, dass dieser Block sowie alle nachfolgenden Blöcke, die auf diesem beruhen, die "Wahrheit" im Netzwerk widerspiegeln und nicht andere vorgeschlagene Blöcke und ihre Nachfolger. Das Konstruieren neuer Blöcke sowie die Verifikation folgt dabei kryptographischen Prinzipien; durch die Verkettung korrekter Blöcke und deren Abhängigkeit voneinander ist die Historie von Transaktionen für immer unveränderlich und nahezu unangreifbar, also auch nicht durch Hackerangriffe.

Alle Blöcke, also die komplette Transaktionshistorie seit Anbeginn der Blockchain, werden auf alle Knoten im Netzwerk repliziert. Auch dadurch wird sichergestellt, dass Hackerangriffe gegen eine zentrale Instanz nicht von Erfolg gekrönt sein können. Mit wachsender Anzahl an Transaktionen und Blöcken wächst natürlich auch die Menge an Daten, die zwischen allen Knoten repliziert werden müssen. Somit ist die Blockchain im Allgemeinen keine Lösung für Low-Latency-Anwendungen, da das Generieren neuer Blöcke und deren Bestätigung immer etwas Zeit brauchen. Im Beispiel von Bitcoin ist das Protokoll so konfiguriert, dass alle 10 Minuten ein neuer Block entsteht.

Tokens und Währungen

Üblicherweise verwenden Blockchain-Protokolle eine Art Währung zur Inzentivierung der Bereitstellung von Ressourcen. Die Knoten, die neue Blöcke generieren, werden mittels dieser Währung für ihren Aufwand bezahlt. Ebenso gibt es in den meisten Blockchain-Protokollen eine Gebühr für die Übertragung bzw. Ausführung einer Transaktion, die ebenso den Minern zugute kommt.

Zusätzlich existieren auf vielen Blockchains noch sog. Tokens, die meist zum Bezahlen bestimmter Vorgänge auf der jeweiligen Blockchain verwendet werden. So kann z.B. ein Glücksspieltoken dazu verwendet werden, Roulette oder Skat auf der Ethereum Blockchain durchzuführen. Die entsprechenden Einsätze und Gewinne würden dann in Form dieser Glücksspieltokens ein- und ausgezahlt werden.

Konsens

Die Blockchain Technologie wird häufig als eine Art komplett verteilte Datenbank beschrieben. Diese Formulierung ist insofern unvollständig, als dass sie die Konsens Mechanismen, die im jeweiligen Protokoll verankert sind, außer Acht lässt. Bei verteilten Datenbanken ist ebenso immer darauf zu achten, wie Änderungen an einem Knoten in Richtung anderer Knoten repliziert werden. Häufig geschieht das mittels eines Master-Slave-Ansatzes. Gilt jedoch eine Master-Master-Konfiguration, so muss auch ein Mechanismus definiert werden, mit dem im Falle eines (ggf. widersprüchlichen) gleichzeitigen Updates auf zwei Knoten die "eine Wahrheit" gefunden wird. Dies geschieht meist über das Leader-Election-Muster.

Bei der Blockchain jedoch sind die Konsens Mechanismen klar vorgegeben und richten sich im Allgemeinen nach der Verfügbarkeit bestimmter Ressourcen, die dem Netzwerk bereitgestellt werden. Wir unterscheiden hierbei generell zwischen den folgenden drei Mechanismen.

Proof-of-Work

Beim Proof-of-Work Mechanismus liegt die Kontrolle des Netzwerks und die Erzeugung neuer Blöcke in der Hand derjenigen Knoten, die die meiste Rechenleistung zur Verfügung stellen. Es muss ein Hashwert errechnet werden, der sich aus den vorherigen Blöcken ergibt. Dieses Rechenproblem ist schwierig zu lösen und erfordert große Mengen an Rechenleistung. Der erste Knoten, der eine Lösung findet, erzeugt somit einen neuen Block, so dass die Wahrscheinlichkeit zum Finden einer Lösung linear mit der Menge an bereitgestellter Hashpower steigt. Um zu gewährleisten, dass neue Blöcke nicht beliebig schnell gefunden werden, wird die Schwierigkeit zur Lösung des Problems mit der Menge an insgesamt zur Verfügung stehender Rechenleistung skaliert.

Proof-of-Stake

Da die Menge an benötigter Rechenleistung mit zunehmender Anzahl an teilnehmenden Knoten steigt, geht der Proof-of-Work Mechanismus verschwenderisch mit physischen Ressourcen um, also Hardware, Strom, etc. Um dies zu verhindern, gibt es eine Abwandlung in Form von Proof-of-Stake. Hier entscheiden nicht die Knoten mit der meisten Rechenleistung über die Korrektheit der Blockchain, sondern die Knoten mit den meisten gehaltenen Einheiten der entsprechenden Währung.

Delegated Proof-of-Stake

Beim Delegated Proof-of-Stake kontrollieren nicht die Knoten mit den meisten Tokens die Blockchain, sondern eine meist feste Anzahl an Delegates, die von den Besitzern der Tokens gewählt werden. Sie werden meist durch Personen repräsentiert und können jederzeit abgewählt werden. Dieser Mechanismus erfreut sich seit seiner Einführung im BitShares Protokoll zunehmender Beliebtheit, da er sehr ressourcenschonend ist und eine äußerst demokratische Form von Konsens erzeugt.

Eigenschaften von Blockchain

Blockchain hat eine Reihe von Eigenschaften, die diese Technologie so beliebt machen.

Sicherheit

Durch die Anwendung starker kryptographischer Verfahren sowie die Verteilung der Daten auf alle teilnehmenden Knoten und die Konsensmechanismen gelten Blockchains als sicher vor Hackern. Während sogar große Banken eine einzelne Schwachstelle bilden, muss bei Blockchain Anwendungen schon die Kontrolle über das gesamte Netzwerk erlangt werden. Dies würde zwar theoretisch durch einen 51%-Attack gefährdet (ein Individuum oder eine Gruppe kontrolliert mind. 51% der Ressourcen, z.B. Rechenleistung), ist in der Praxis auf Blockchains mit vielen Teilnehmern aber so gut wie ausgeschlossen.

Eventual Consistency

Durch die Generierung neuer Blöcke auf Basis ihrer Vorgänger ist sichergestellt, dass alle Teilnehmer am Netzwerk nach gewisser Zeit dieselbe Information haben. Wie lange dieser Zeitraum ist, hängt von der jeweiligen Implementierung ab; es kann ab diesem Zeitpunkt aber nahezu garantiert werden, dass keine Daten fehlen oder fehlerhaft übertragen wurden.

Transparenz

Bei öffentlichen Blockchains kann jeder Teilnehmer, mittels bestimmter Dienste (Block-Explorer) sogar jeder beliebige Internet-User Einsicht auf die gesamte Historie auf der Blockchain erlangen. Dies führt dazu, dass Informationen über die Vorgänge auf der Blockchain demokratisiert und fair verteilt werden.

Anonymität

Eine häufig zitierte Eigenschaft von Bitcoin im Speziellen und Blockchain im Allgemeinen ist Anonymität. Da jeder Nutzer nur über seine Adresse auf der Blockchain identifiziert wird, kann damit nicht unmittelbar nachverfolgt werden, wer welche Transaktionen getätigt hat. Jedoch ist durch die oben beschriebene Transparenz diese Anonymität trügerisch; verfolgt man den Werdegang der jeweiligen Transaktionen weiter, kann auch die Identität der entsprechenden Nutzer sowie ggf. eine große Menge zusätzlicher Daten über den Menschen in Erfahrung gebracht werden, da dann die gesamte Historie dieser Adresse ebenso bekannt ist. Abhilfe schaffen hier nur Protokolle wie Zerocoin (z.B. in Form von Zcash) oder Dash, die einen gewissen Grad an Anonymität gewährleisten.

Dezentralisierung

Die Dezentralisierung der Datenhaltung und die Verfifikation von Transaktionen führt dazu, dass es keine zentrale Instanz gibt, die die Kontrolle über das Netzwerk haben kann. Zwar können die Ein- und Austrittspunkte in die physische Welt kontrolliert und reguliert werden, nicht aber die auf der Blockchain stattfindenden Transaktionen.

Redundanz

Die hohe Redundanz der Daten erzeugt auf der einen Seite maximale Datensicherheit. Es stellt kein Problem dar, wenn ein Knoten mitsamt seinen Daten verloren geht, da alle Daten wieder aus dem Netzwerk bezogen werden können. Dies führt auf der anderen Seite aber auch zu einem enormen Bedarf an Speicherplatz und Netzwerkbandbreite. Hat die Blockchain eine Größe von 10GB, so müssen diese 10GB mindestens einmal auf jeden teilnehmenden Knoten repliziert und dann dort vorgehalten werden. Mit zunehmendem Wachstum der Blockchain wird somit auch eine immer größere Menge an Speicherplatz benötigt.

Smart Contracts und Ethereum

Blockchain kann nicht nur Transaktionen finanzieller Art wie im Falle von Bitcoin verarbeiten. Eine Reihe von Protokollen hat sich zum Ziel gesetzt, beliebige Transaktionen wie Identitätsnachweise, Verträge, Wenn-Dann-Beziehungen uvm. ausführbar zu machen. Ethereum ist dabei als erstes Protokoll mit dem Anspruch angetreten, alle Prozesse, die grundsätzlich von Computern berechnet werden können, auf der Blockchain ausführbar zu machen. Dafür wurde eine eigene, Turing-vollständige Programmiersprache namens Solidity entwickelt, mit Hilfe derer Smart Contracts erstellt werden können. Andere Protokolle sind mit ähnlichen Zielen gestartet, haben jedoch oft noch nicht die Reife von Ethereum.

Ethereum hat sich nicht nur als Plattform für das Ausführen einzelner Smart Contracts etabliert, sondern auch als Basis-Protokoll für eine ganze Reihe weiterer, "höherwertiger" Protokolle. Diese müssen sich nicht mehr um die kryptografischen Gegebenheiten und das Bestätigen von Transaktionen auf der Blockchain kümmern, sondern profitieren von der Ethereum-Blockchain und können sich so auf ihre Kernaufgabe konzentrieren. Diese Protokolle bestehen im Allgemeinen aus einer Reihe von Smart Contracts auf Ethereum-Basis, die das Protokoll selbst beschreiben, sowie Client-Software, die bestimmte Anwendungen mittels der entstehenden Transaktionen kontrolliert. Somit braucht das Protokoll selbst keine eigene Blockchain. Dieses Modell funktioniert analog zum bekannten OSI-Schichten-Modell aus der Netzwerktechnik und der entsprechenden Protokolle.

Anwendungen von Blockchain

Grundsätzlich findet Blockchain überall dort Anwendung, wo verteilte Daten sicher gehalten werden müssen. Nicht immer jedoch überwiegen in solchen Fällen die Vorteile durch den Einsatz von Blockchain gegenüber traditionellen Technologien wie verteilten Datenbanken. Die Komplexität bei der Entwicklung von Blockchain-Protokollen und -Anwendungen ist immer noch vergleichsweise hoch und das Verständnis für die zugrunde liegenden Prinzipien nicht überall vorhanden. Jedoch gibt es viele Beispiele von "nativ verteilten" Anwendungen, die sich besonders gut für Blockchain eignen. Dazu zählen natürlich die offensichtlichen Finanztransaktionsanwendungen wie Währungen und Handelsplattformen, aber auch Versicherungen, Internet of Things (IoT), verteiltes Rechnen oder Identitätsnachweise lassen sich durch die Verteiltheit und Unveränderlichkeit von Daten auf Blockchains sehr gut abbilden. Aktuell entstehen fast täglich neue Projekte, die sich diese Technologie zunutze machen. Wieviele und welche davon nachhaltig funktionieren, wird die Zukunft zeigen müssen.

Beispiele

Neben Bitcoin und Ethereum gibt es eine ganze Reihe bereits operativ erfolgreicher Projekte, die auf Blockchain basieren.

Währungen und Zahlungsmethoden

Als wesentlichste sogenannte Cryptowährungen zu nennen sind neben Bitcoin vor allem Litecoin, Ripple, Dash, Zcash sowie Bitcoin Cash, Monero und NEM. Es existieren noch unzählige Weitere, die sich teilweise nur in Details voneinander unterscheiden. Daneben gibt es noch zur Unterstützung oder dem Aufbau neuartiger Bezahlmethoden noch solche wie TenX oder Stellar.

Blockchain Plattformen

Einer der größten Bereiche in Sachen Blockchain ist der, der Blockchain Plattformen, die zum Teil als Alternative oder Erweiterung bzw. Vereinfachung zu Ethereum entwickelt werden. Die größten und bekanntesten sind hier Tezos, Lisk, Stratis oder Counterparty.

Verteiltes Rechnen

Hier finden sich einige Plattformen zur Abwicklung und Bezahlung von zur Verfügung gestellter Rechnerleistung oder Plattenplatz. Zu den bekanntesten zählen Storj oder Golem.

Prediction Markets

Es existieren eine Reihe von Plattformen, zum Teil auf Ethereum Basis, die sich mit Märkten zur Vorhersage von Ereignissen beschäftigen. Hierzu zählen etwa Augur und Gnosis.

Es gibt noch viele mehr - für eine Übersicht der bekanntesten und erfolgreichsten Plattformen findet sich unter coinmarketcap.com ein guter Überblick.

Unser Angebot

Wir bei techdev verfolgen die Entwicklung der Block-Technologie und ihrer Anwendungen seit 2013. Waren die Anfänge noch von großer Skepsis in der Industrie bzgl. der Erfolgsaussichten begleitet, so kristallisieren sich immer mehr sinnvolle Anwendungsfälle heraus, bei denen Blockchain wirklich weiterhilft. Wir helfen Ihnen gerne bei Ihrem Blockchain Projekt.

Technologie-Beratung und Konzeption

Wir schauen uns Ihren Use Case an und beraten Sie mit unserer Expertise zu der Wahl der richtigen Plattform, der Art von Projekt und den richtigen Technologien für Client-Software. Darüber hinaus unterstützen wir bei der technischen Konzeption Ihres gesamten Projektes.

Softwareentwicklung

Wir entwickeln Ihre Smart Contracts in Solidity auf Ethereum-Basis sowie Ihre Client-Software für Web, Android, iOS sowie Desktop. Von Decentralized Apps (DApps) bis hin zu ganzen Protokollen auf Basis von Ethereum oder Bitcoin unterstützen wir Sie bei der Umsetzung Ihres Projektes.

Sie suchen nach einem starken Partner für die Umsetzung Ihres Projektes?
Lassen Sie uns gerne über Ihr Anliegen sprechen.