IOTA – die nächste Generation der Blockchain?

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

Know-how Moritz Kammerer  –  205 Kommentare

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.

Wie kommt der Konsens zustande?

Nun kann es passieren, dass es zwei Wahrheiten zu einem Zeitpunkt gibt. Das ist der Fall, wenn zwei Miner zum gleichen Zeitpunkt zwei valide Blöcke finden. Die Blockchain spaltet sich dann auf und erhält zwei Enden. Beide validen Blöcke haben als Vorgänger den vorletzten Block. Die Miner müssen sich nun entscheiden, welches Ende der Kette sie als Wahrheit akzeptieren wollen. Solange die beiden Enden gleich lang sind, wird zufällig ein Ende ausgewählt. Früher oder später wird eines der beiden Enden der Kette länger sein als das andere. Dann wählen Miner immer das längere Ende. Die Transaktionen in der kürzeren Kette sind nun ungültig und erneut zu minen.

Das System ist nur "eventual consistent" – das ist auch der Grund, wieso manche Händler, wenn der Kunde etwas mit Bitcoin kauft, mehrere Validierungen des Blocks abwarten. Je mehr Blöcke hinter dem Block mit dem Kauf in der Blockchain sind, desto höher die Wahrscheinlichkeit, dass sich der Kauf nicht in einem verwaisenden Zweig der Kette befindet.

Konsens bei einem Blockchain-System (Abb. 1) (Bild: IOTA (https://www.iota.org/get-started/faqs))

Probleme klassischer Blockchains

Das erste Problem einer klassischen Blockchain ist der Speicherverbrauch. Um sicherzustellen, dass die Chain valide ist, sind alle Blöcke notwendig. Die Blockchain von Bitcoin ist zum Zeitpunkt des Schreibens circa 179 GByte groß. Es gibt sogenannte Light Clients, die nicht die gesamte Blockchain speichern, aber sie vertrauen einem anderen Client, der wiederum die gesamte Blockchain gespeichert hat.

Das zweite Problem ist der Energieverbrauch, der beim Minen von Blöcken entsteht. Die meisten Proof-of-Work-Systeme setzen eine dynamische Schwierigkeit ein, sodass mit steigender Rechenleistung des Miner-Netzwerks das Minen von Blöcken schwieriger wird. Das hält die Anzahl von geminten Blöcken pro Zeiteinheit konstant. Mittlerweile verbrauchen die Miner der Bitcoin-Blockchain circa 73 TWh pro Jahr – so viel Energie wie die gesamte Republik Österreich.

Das dritte Problem hat der Artikel bereits angerissen: die festgelegte Transaktionsrate. Bei Bitcoin wird alle zehn Minuten ein neuer Block erzeugt. Er enthält mehrere Transaktionen. Da die maximale Größe eines Blocks festgelegt ist, ist damit auch die maximale Transaktionsrate des Systems beschränkt. Bei Bitcoin beträgt sie sieben Transaktionen pro Sekunde. Das VISA-Kreditkartensystem hat eine durchschnittliche Transaktionsrate von 2000 Transaktionen pro Sekunde, in Hochphasen sind es 56.000 Transaktionen pro Sekunde.

Das vierte Problem hängt implizit mit dem dritten Problem zusammen. Bei den meisten Proof-of-Work-Systemen kann an eine Transaktion ein Miner Fee gehängt werden. Der Miner, der den Block, in dem die Transaktion enthalten ist, erzeugt, behält den Betrag sozusagen als Belohnung. Damit kann man die Priorität einer Transaktion steuern: Je höher der Miner Fee, desto wahrscheinlicher ist es, dass ein Miner die Transaktion in den nächsten Block aufnimmt.

Bei Bitcoin liegen die Gebühren im Moment im Durchschnitt bei 10 US-Cents pro Transaktion. Man erwartet, dass sie steigen, sobald die maximale Anzahl an Bitcoins erreicht ist. Dann erzeugt das Minen nicht mehr Bitcoins aus der Luft, sondern die Miner verdienen nur noch über die Transaktionsgebühren. Das macht Micropayments von wenigen Cents zunichte, da die Transaktionsgebühr ein Vielfaches davon beträgt.

Was ist IOTA?

Die IOTA Foundation, seit 2017 eine Stiftung nach deutschem Gesetz, wurde 2015 gegründet und beschäftigt ein Team von rund 40 Leuten. IOTA kooperiert unter anderem mit großen Firmen wie VW, der Deutschen Telekom oder Bosch. IOTA ist nicht nur der Name der Stiftung, sondern auch der Name der Digitalwährung, die die Stiftung entwickelt. Es gibt insgesamt 2.779.530.283 MIOTAs (ein MIOTA sind 1.000.000 IOTAs). Die Währungseinheiten sind beim Initial Coin Offering (ICO) 2015 entstanden, und die Menge bleibt konstant.

Was macht IOTA besonders?

Das hervorstechendste Merkmal ist, dass IOTA nicht auf einer Blockchain aufbaut. Stattdessen basiert IOTA auf dem sogenannten Tangle. Das ist ein Directed Acyclic Graph (DAG), zu Deutsch ein gerichteter azyklischer Graph. Mit der Datenstruktur will IOTA die Probleme existierender Blockchains lösen: hohe Transaktionsgebühren, Energiehunger, geringer Transaktionsdurchsatz und die stetig wachsende Größe der Kette.

Grafische Darstellung des IOTA-Tangles (Abb. 2) (Bild: IOTA (https://iota.org/IOTA_Whitepaper.pdf))

Jeder Knoten (Quadrat in der Grafik) im Graph ist eine Transaktion. Sie umfasst beliebige Daten als Payload. Darin könnte beispielsweise eine Überweisung von Sender A an Empfänger B dokumentiert sein, aber auch gänzlich andere Daten wie aktuelle Sensorwerte. Jede Kante (Pfeil in der Grafik) zeigt eine Validierung an. In der Grafik sieht man, wie jede Transaktion Pfeile auf zwei andere Transaktionen hat: Das bedeutet, eine Transaktion validiert zwei weitere Transaktionen. Die grauen Quadrate in der Grafik zeigen Transaktionen an, die noch keine eingehenden Pfeile haben, also noch nicht validiert sind. Man bezeichnet sie als "Tips".

Wenn man eine Transaktion in den Tangle einfügen möchte, muss sie einen Proof-of-Work erfüllen, bei dem allerdings die Schwierigkeit immer gleichbleibend ist. Es ist bedeutend weniger Rechenaufwand als bei Bitcoin nötig. Weiterhin muss die neue Transaktion zwei Tips im Tangle validieren. Das bedeutet: Die validierte Transaktion hat ein gültiges Proof-of-Work, validiert ebenfalls zwei weitere Transaktionen, und keine der referenzierten Transaktionen (und deren referenzierte Transaktionen und so weiter) gibt IOTAs zweimal aus (Double Spending) oder versucht andere Arten des Betrugs.

Eine Transaktion im Tangle kann durchaus mehrmals eine Validierung erhalten, entweder direkt oder indirekt. Wenn das geschieht, steigt der Score der Transaktion. Das ist ein Wert, der besagt, wie wahrscheinlich es ist, dass die Transaktion valide ist.

Wie kommt der Konsens im Tangle zustande?

Der Konsens in dem Tangle wird durch den Score erreicht. Der Teil des Tangles, der den höchsten Score hat, wird als valide angesehen. Dadurch kann es passieren, dass Transaktionen am Rande des Tangles verwaisen, weil es nicht genug Transaktionen gibt, die sie validieren. Die Transaktionen können dann erneut in den Tangle eingebracht werden und, falls sie valide sind, erfolgt früher oder später eine Integration in den Tangle.

Tangle mit verwaisten Transaktionen (Abb. 3) (Bild: IOTA (https://www.iota.org/get-started/faqs))

Vor- und Nachteile von IOTA

Vorteile der Architektur

Die Architektur bietet eine hohe Skalierbarkeit. Jeder Client, der eine Transaktion einfügen will, muss zwei weitere validieren. Das bedeutet, dass die Transaktionsrate mit jedem Client, der am Netzwerk teilnimmt, skaliert. Es gibt keine künstlich eingeführten Grenzen der Transaktionsrate. Durch die festgelegte Schwierigkeit des Proof-of-Works benötigen einzelne Clients keine große Rechenleistung. Das reduziert den Energiehunger von IOTA.

Um die Größe des Tangles zu reduzieren, gibt es das sogenannte Snapshotting. Es entfernt alle Konten, die keine IOTAs besitzen. Außerdem rechnet es die Transaktionen zusammen, um den jeweiligen aktuellen Kontostand zu errechnen. Die Historie ist dadurch überflüssig. Der Coordinator erledigt die Aufgabe im Moment noch zentral, in Zukunft soll es aber jede Node lokal selbst erledigen.

IOTA kennt das Konzept von Miner Fees nicht. Das heißt, eine Transaktion ist, abgesehen von der Rechenleistung des (geringen) Proof-of-Works, kostenlos. Das macht es für Micropayments interessant.

Es gibt weiterhin keine Trennung zwischen Benutzern des Systems (die damit Transaktionen durchführen wollen) und den Minern (die die Integrität des Systems sicherstellen). Das hat in der Vergangenheit bei Bitcoin zu Spannungen geführt, denn Miner haben gegensätzliche Ziele zu Nutzern. Letztere wollen ein schnelles System mit minimalen Transaktionskosten, Miner hingegen profitieren von hohen Transaktionskosten, da sie direkt in die eigene Tasche wandern. Da bei IOTA jeder Benutzer Miner ist, entsteht der Interessenskonflikt nicht.

Nachteile von IOTA

In der Implementierung von IOTA wurden nach Ansicht des Autors ein paar seltsame Entscheidungen getroffen. Das Zahlensystem, das intern Verwendung findet, basiert auf "balanced ternary". Statt 0 und 1, wie in der restlichen Informatik, rechnet es mit -1, 0 und 1. Das reflektiert die maximale Anzahl an IOTAs, denn die größte 33-stellige Zahl auf Basis 3, als Signed Integer interpretiert, spiegelt die 2.779.530.283 existierenden MIOTAs wider.

Am Anfang hat das Team, anstatt auf verfügbare und sichere Hash-Funktionen zurückzugreifen, eine eigene Hashfunktion implementiert. Das Forscherteam der Boston University und des MIT Media Lab hat die Hash-Funktion gebrochen, woraufhin IOTA-Mitbegründer Sergey Ivancheglo rechtliche Schritte angedroht hat. Das hat viele Kryptografen verständlicherweise dermaßen verärgert, dass sie nun nichts mehr mit IOTA zu tun haben wollen. Allerdings hat IOTA mittlerweile auf die Kritik reagiert und verwendet nun SHA-3, eine Hash-Funktion, die als sicher gilt. Zu den geleakten Emails hat die IOTA Foundation ihre Sicht der Dinge niedergeschrieben.

Im Moment ist zur Validierung einer Transaktion noch der gesamte Tangle nötig, der viel Speicherplatz belegt. Das Snapshotting, also das Verkleinern des Tangles, übernimmt derzeit noch der Coordinator. Er ist eine zentrale Instanz im IOTA-Netzwerk. Sobald genügend Clients am Tangle teilnehmen, soll er abgeschaltet werden. Er ist also so etwas wie das Stützrad des Systems. Im Moment betreibt die IOTA Foundation den Coordinator noch als vertrauenswürdige Instanz – hoffentlich finden die Private Keys niemals an das Licht der Öffentlichkeit. Der Coordinator verifiziert Transaktionen, in dem er sie digital unterschreibt. Die IOTA Foundation selbst sagt: "It is recommended for other nodes to not consider a transaction confirmed until referenced directly or indirectly by the Coordinator's milestone transactions."

Die Zukunft von IOTA

Die IOTA Foundation bietet Entwicklern offizielle Bibliotheken für JavaScript und C an. Bibliotheken für Java, Python, C++ und Go hat die Community entwickelt. Damit können Systeme relativ einfach mit dem IOTA Tangle kommunizieren.

Zurzeit arbeitet man an einer verschlüsselten Kommunikation über den Tangle, zum Beispiel für die sichere Übermittlung von Sensordaten. Private Transaktionen, also Transaktionen, bei denen nicht jeder sehen kann, von wem sie ausgingen, an wen sie gingen und wie viele IOTA transferiert wurden, sind in einer frühen Entwicklungsphase. Ein Hardware-Prozessor namens JINN ist in Entwicklung. Mit dem soll es möglich sein, die Rechenoperationen für die Tangle-Integration in Hardware auszuführen.

Stresstests auf das IOTA Netzwerk sind geplant, um sicherzustellen, dass es ausreichend skaliert. In einem Labor haben Forscher schon 10.000 Transaktionen pro Sekunde erreicht. In Zukunft soll die zentrale Instanz, der Coordinator, abgeschaltet werden. Die IOTA Foundation hofft, dass das Ende 2018 geschieht, aber der Zeitpunkt kann sich durchaus nach hinten verschieben.

Anwendungsfälle für IOTA

Nun stellt sich die Frage, welche realen Anforderungen IOTA lösen kann. Ein oft genanntes Problem ist das Absichern von Lieferketten. Bei global verteilten Lieferanten gibt es öfters Transparenzschwierigkeiten, zum Beispiel kann es zu Fälschungen bei Teilen kommen. Wenn jeder Hersteller in der Lieferkette den aktuellen Fortschritt im Tangle (oder einer Blockchain) speichert, könnten Kunden jederzeit die Lieferkette überprüfen. Dadurch könnten Unternehmen sicherstellen, dass das Teil mit der Seriennummer X zum Zeitpunkt T1 die Fabrik verlassen hat und zum Zeitpunkt T2 an einem anderen Ort von einer anderen Firma in das Auto mit der VIN V verbaut wurde.

Auch Sensornetze könnte man in den IOTA-Tangle einflechten. Dazu schreibt jeder Sensor seine aktuellen Messwerte in den Tangle. Dadurch sind sie fälschungssicher abgespeichert und Nutzer können die aktuellen Werte in Echtzeit auslesen. Darauf aufbauend ist ein Pay-per-Use Modell denkbar: Jeder Interessent könnte per IOTA den aktuellen Kryptoschlüssel eines Sensors kaufen und dann erst dessen Sensordaten lesen.

Ebenfalls denkbar ist eine digitale Patientenakte. Anstatt wie bisher die Patientendaten an verschiedenen Stellen zu verwalten und sie fehleranfällig zwischen verschiedenen Ärzten zu transferieren, könnte man die Patientendaten verschlüsselt im Tangle speichern. Ein Arzt kann nach Autorisierung durch den Patienten die Daten einsehen und neue Daten an die Patientenakte hinzufügen.

Alle genannten Anwendungsfälle müssen den Datenschutz wahren und das Missbrauchspotenzial verhindern. Dazu sei das Beispiel von demokratischen Wahlen über eine Blockchain angeführt – wie das Debakel mit den Wahlcomputern eindrucksvoll gezeigt hat, ist es nicht immer eine gute Idee etwas zu tun, nur weil es technisch möglich ist.

Fazit

IOTA ist ein technisch interessantes Projekt, das die Probleme existierender Blockchain-Technologien erkannt hat und an einer möglichen Lösung arbeitet. Zwar hat die Foundation in der Vergangenheit technisch und auch für die Außenwirkung fragwürdige Entscheidungen getroffen, aber das hat sich in letzter Zeit gebessert. Mit den Kooperationen großer Firmen könnte der Tangle ein vielversprechendes Konzept zur fälschungssicheren Speicherung von Daten (zum Beispiel Absichern von Lieferketten) oder Micropayments werden. (bbo)

[Update, 07.11.2018, 10:00]: Der Autor hat eine Verbesserung im Abschnitt bezüglich der existierenden MIOATAs vorgenommen. Darüber hinaus hat die IOTA Foundation nach dem Erscheinen des Artikels den Autor kontaktiert und versichert, dass die Foundation keine rechtlichen Schritte gegen die Forschung einleiten wird: „At the IOTA Foundation we encourage public research. It is the key essence needed to progress on this young technology. I would like to reassure you that the IOTA Foundation would not condone any litigation against an academic institute undertaking research on IOTA.“

Moritz Kammerer
ist Softwarearchitekt bei der QAware GmbH. Er begeistert sich für fast jede Anwendung von Kryptografie und beschäftigt sich im Moment mit Blockchains und deren Einsatzgebieten. Nebenbei ist er Autor diverser Open-Source-Projekte.