02.11.2018 08:30

Moritz Kammerer

IOTA – die nächste Generation der Blockchain?

zurück weiter 1

2

3

4

5

6

Die "Blockchain" IOTA hat für Furore gesorgt, besonders durch die Zusammenarbeit mit großen Firmen. Aber was macht IOTA eigentlich besonders?

Der Artikel wirft einen Blick auf die "Blockchain" IOTA. IOTA hat in der Vergangenheit für Schlagzeilen gesorgt, vor allem durch die Partnerschaften mit großen Firmen wie VW, der Deutschen Telekom oder Bosch. Um zu verstehen, was IOTA besonders macht, ist es wichtig, zunächst die Grundlagen von klassischen Blockchains zu erläutern.

Seit einiger Zeit preisen unterschiedliche Quellen Blockchains als die Heilsbringer für alle Arten von Problemen an. Dabei lösen Blockchains nur zwei: Konsensfindung mit vielen verteilten Teilnehmern und das unveränderliche Speichern von Informationen. Sie sind ziemlich alt und waren vor der Erfindung der Blockchain im Jahre 2008 schon gelöst.

Die Besonderheit einer Blockchain ist der "Zero Trust"-Ansatz. Das bedeutet, dass die Blockchain davon ausgeht, das jeder Teilnehmer in der Konsensfindung potenziell "böse" ist und man ihm nicht trauen kann. Wenn die Annahme nicht zutrifft, lassen sich die beiden Probleme mit einfacheren Mitteln lösen, beispielsweise einer zentralen Datenbank. Blockchains bringen nämlich leider ebenfalls Nachteile mit. Aber zunächst: Wie funktioniert eine Blockchain?

Die Hash-Funktion

Um das zu verstehen, sollte man sich zunächst einen wichtigen Baustein einer Blockchain ansehen: die kryptografische Hash-Funktion. Sie bildet eine große Eingabemenge auf eine kleine Zielmenge ab. Praktisch gesprochen, am Beispiel der Hashfunktion SHA-3, heißt das: Eine große Menge an Daten wie das ISO-Abbild einer Linux-Distribution mit 1,2 GByte wird auf eine kleine Menge an Daten, den sogenannten Hash, abgebildet. Wie groß der Hash ist, hängt von der verwendeten Hash-Funktion ab. Bei SHA-3 sind es meistens 256 Bit. Das heißt, egal wie groß die Eingabedaten sind, der Hash ist immer 256 Bit lang.

Es müssen für kryptografische Hash-Funktionen noch weitere Eigenschaften gelten: Eine kleine Änderung an den Eingabedaten muss zu einer großen Änderung am Hash führen (sog. Lawineneffekt), es muss sehr schwer sein, von einem Hash auf die Eingabedaten schließen zu können (sog. Einwegfunktion), und es darf nicht vorhersagbar sein, wie sich der Hash ändert, wenn man die Eingabedaten anpasst. Kryptografische Hash-Funktionen lassen sich meist sehr schnell berechnen.

Zurück zur Blockchain: Wie der Name sagt, besteht sie aus mehreren Blöcken. Ein Block wiederum besteht aus einer Zufallszahl (der Nonce) und aus den Nutzdaten (der Payload) des Blocks. In den Nutzdaten könnte zum Beispiel der Transfer eines Bitcoins von Teilnehmer A zu Teilnehmer B gespeichert sein. Über die Nonce und die Payload wird nun ein Hash gebildet. Ändert sich die Nonce oder die Payload, ändert sich automatisch auch der Hash.

Damit nun nicht jeder Teilnehmer Blöcke mit beliebiger Payload erzeugen kann, schützt ein Mechanismus diesen Prozess – das "Minen". Die Literatur spricht oft auch von Proof-of-Work. Dabei wird eine Konvention getroffen, zum Beispiel dass nur Blöcke, deren Hashes in Hex-Notation mit n Nullen anfangen, valide sind. Der Parameter n kann die Schwierigkeit des Minens variieren. Wird die Nonce geändert, ändert sich auch der Hash.

Der Miner würfelt nun eine zufällige Nonce, bildet den Hash und testet dann, ob er mit N Nullen anfängt. Falls nicht, würfelt er erneut eine Nonce, bildet den Hash und testet wieder, solange bis ein gültiger Block gefunden ist. Je nachdem, wie hoch der Schwierigkeitsgrad ist, kann das erheblich Rechenleistung kosten.

Verkettung der Blöcke

Die validen Blöcke werden nun noch verkettet. Dazu speichert jeder Block neben der Nonce und der Payload noch den Hash des vorherigen Blocks. Der erste Block, oft Genesis-Block genannt, besitzt keinen Vorgänger. Die Blöcke sind nun kryptografisch verkettet, jeder Block kennt seinen Vorgänger – fertig ist die Blockchain. Im Prinzip ist eine Blockchain eine kryptografisch abgesicherte verkettete Liste.

Zusammen mit dem Proof-of-Work bietet das Schutz vor Manipulation. Wenn ein Angreifer den neuesten (und damit letzten) Block ändern möchte, muss er nur den letzten Block erneut minen. Beim Ändern des vorletzten Blocks muss er den vorletzten Block erneut minen, wodurch sich aber der Hash ändert. Da der letzte Block nun aber als Vorgänger einen falschen Hash eingetragen hätte, muss der Angreifer diesen ebenfalls erneut minen, damit die Kette nicht unterbrochen wird.

Möchte der Angreifer den ältesten (= ersten) Block der Kette ändern, muss er alle nachfolgenden Blöcke erneut minen. Die benötigte Rechenleistung steigt also, je weiter man sich mit der Manipulation von Blöcken vom Ende der Kette entfernt. Damit eignet sich eine Blockchain hervorragend zum Speichern von Informationen, die man nicht mehr ändern darf. Ein weiterer Nebeneffekt der Verkettung: Wenn man sich den Hash des letzten Blocks merkt, kann man schnell überprüfen, ob die Blockchain verändert wurde – denn der Hash inkludiert alle vorangegangen Blöcke.