<![CDATA[solidity - ]]>http://localhost:2368/Ghost 0.11Tue, 10 Oct 2017 14:25:10 GMT60<![CDATA[Ist Blockchain "the next big thing"?]]>Nein ist sie nicht. Denn sie ist nicht "next", sondern schon mitten unter uns! Und damit meine ich nicht die langweiligen Use-Cases der Bezahlung mit Bitcoin in Online-Shops, sondern die Use-Cases, bei denen die wichtigsten Aspekte der Blockchain-Technologie (Dezentralisierung und Transaktionsintegrität) zum Tragen kommen. Beispielsweise gibt es diverse Ansätze, Flüchtlinge,

]]>
http://localhost:2368/2017/10/10/ist-blockchain-the-next-big-thing/0d815e25-5f0a-499c-91b8-7931efec4200Tue, 10 Oct 2017 14:22:47 GMTNein ist sie nicht. Denn sie ist nicht "next", sondern schon mitten unter uns! Und damit meine ich nicht die langweiligen Use-Cases der Bezahlung mit Bitcoin in Online-Shops, sondern die Use-Cases, bei denen die wichtigsten Aspekte der Blockchain-Technologie (Dezentralisierung und Transaktionsintegrität) zum Tragen kommen. Beispielsweise gibt es diverse Ansätze, Flüchtlinge, die ohne Dokumente um Asyl bitten, mittels Blockchain-Technologie digitale Identitäten anzubieten. Andere Use-Cases gravitieren im Orbit dezentraler Börsen für alles mögliche (Strom zum Beispiel). Wer Google bemüht findet weitere Beispiele.

Aus diesem Grund haben wir uns frühzeitig mit der Blockchain beschäftigt und diese als Zukunftstechnologie identifiziert. Richtig interessant wurde das Thema für uns erst mit dem Erscheinen von Ethereum. Im Gegensatz zu Bitcoin und andere Kryptowährungen ist Ethereum eine Platform für verteile Anwendung auf der Basis von Blockchain-Technologie. Ethereum bietet Programmierschnittstellen, mit denen man auf die Blockchain zugreifen kann. Somit kann man Anwendungen entwickeln, die:

  • sehr hohe Transaktionssicherheit bieten
  • echt Server-less sind
  • immer und für immer laufen können
  • Verträge (smart contracts) implementiert, die eindeutig sind, automatisch ablaufen und fälschungssicher sind

Gehen wir die einzelnen Punkte im Detail durch:

Transaktionssicherheit

Die Transaktionssicherheit in der Blockchain basiert auf 3 Grundtechnologien:

  • Peer-to-peer Netzwerke
  • Starke Kryptographie
  • Redundanz

Peer-to-peer Netzwerke

Die Blockchain basiert auf einem Peer-to-Peer Netzwerk. In diesem Netzwerk kommunizieren sog. Knoten mit benachbarten Knoten. Somit kann ein Blockchain-Netz nicht abgeschaltet oder heruntergefahren werden. Dazu müsste man alle Knoten abschalten, was bei Millionen von Knoten überall auf der Welt nahezu unmöglich ist.

Starke Kryptographie

Divere Aspekte einer Blockchain basieren auf starke kryptographische Verfahren. Am wichtigsten für die Integrität der Blockchain sind Hashing Algorithmen. Die Blockchain, wie der Name schon sagt, ist im Grunde eine Kette von Blöcken. In dieser Kette sind alle Transaktionen gespeichert, die es jemals in der Blockchain gegeben hat. Immer wenn ein neuer Block dazukommt, werden Hashes aus den vorherigen Blöcken errechnet. Somit kann ein Block geprüft werden, indem alle Hashes vom ersten Block an (in Ethereum heiist dieser Block der Genesis-Block) bis zum aktuellen errechnet werden und mit dem des Blocks verglichen werden. Stimmen sie überein, ist der Block valide. Das Verfahren ist in der Praxis etwas komplexer und es gibt Unterschiede zwischen den verschiedenen Blockchain Netzen, das Grundprinzip ist aber immer gleich.

Redundanz

In Blockchain-Netze gibt es keine zentralen Server. Stattdessen gibt es die o.g. Knoten, die eine Kopie der gesamten Blockchain haben. Ja richtig, jeder Benutzer der Blockchain hat eine (mehr oder weniger aktuelle) Kopie der gesamten Blockchain. Somit ist es fast ausgeschlossen, dass ein Angreifer eine veränderte Kopie der Blockchain in Umlauf bringen kann, da es Millionen von Knoten mit "echteren" Versionen gibt, die die eines Angreifers verdrängen würden.
Aber diese Redundanz birgt auch den größten derzeitigen Nachteil der Blockchain-Technologie: Mangel an Skalierbarkeit. Wie oben beschrieben muss jeder Knoten die gesamte Blockchain verarbeiten.

Server-less

Wie oben beschrieben ist ein Blockchain-Netz ein Peer-to-Peer Netzwerk, das ohne zentralen Server auskommt. Damit werden, aus Sicht der Software-Entwicklung, echte Server-less Applikationen möglich. Der Code bzw. die Verträge werden Teil der Blockchain und sind irgandwann auf jedem Knoten repliziert worden.

Run always and forever

Wir haben oben gesehen dass man ein Blockchain-Netz so gut wie nicht ausschalten kann. Somit sind Anwendungen, die auf der Blockchain geschrieben wurden, immer da und laufen auch für immer. (Auch wenn das in der Praxis nur die halbe Wahrheit ist, aber mehr dazu in einem der folgenden Artikel)

Smart Contracts

Das Herzstück der Ethereum-Blockchain-Technologie, aus Entwickler-Sicht zumndest, sind die sog. Smart Contracts. Diese stellen, wie der Name schon sagt, Verträge dar, die als Code in der Blockchain hinterlegt werden. Ethereum Smart Contracts werden in einer JavaScript-ähnlichen Sprache, genannt Solidity entwickelt und können recht komplex werden.

Ausblick

Nach dieser kurzen Einführung werden wir weitere Artikel zu den einzelnen Themen veröffentlichen. Wir werden den Fokus auf die Entwicklung für und mit der Blockchain legen sowie adjazent gelagerte Themen wie die Entwicklung von sog. Oracles und wie man mit den inhärenten Skalierungsproblemen der Blockchain umgehen kann.

]]>