Einführung in IOTA
In dieser Blogserie geben wir einen tieferen Einblick in die Themen IOTA und Hashgraph und die dahinter liegenden Konzepte:
- Teil 1: IOTA – Einführung
- Teil 2: IOTA – Praktische Beispiele
- Teil 3: Hashgraph – Einführung
- Teil 4: Hashgraph – Praktische Beispiele
Blockchain ist aktuell in aller Munde, dabei sind in der näheren Vergangenheit immer mehr skeptische Stimmen zu vernehmen. Ein vertiefendener Einblick in das Thema ist im Blog „Wie funktioniert eigentlich die Blockchain“ zu finden.
Bekannte Schwächen der Blockchain wie zum Beispiel hohe Energiekosten, beschränkte Skalierbarkeit und die beschränkte Einsatzfähigkeit für Micropayments sollen durch neue Konsensmechanismen verbessert oder gelöst werden. Ob und wie sich diese beiden Technologien (bei IOTA das Tangle) durchsetzen werden, wird die Zukunft zeigen.
Inhalt:
- Was ist IOTA?
- Welche Anwendungsfälle gibt es für IOTA?
- Was ist Tangle?
- Wie erfolgt die Konsensfindung im Tangle?
- Welche Rolle spielen Nodes?
- Welche Rolle spielt der Koordinator?
- Was sind Transaktionen?
- Was sind Transaktions-Bundle?
Was ist IOTA?
IOTA basiert nicht auf der herkömmlichen Blockchain-Technologie, sondern auf einer neuen Distributed-Ledger-Technologie, dem Tangle. Mit dieser Technologie möchte IOTA die Probleme der klassischen Blockchain-Technologie wie Transkationsgebühren, hoher Energieverbrauch für das Mining, den geringen Durchsatz sowie die stetig steigende Größe der Kette lösen.
(M)IOTA beziehungsweise ein Token/Coin ist eine Kryptowährung, die aktuell auf Platz 12 der digitalen Währungen im Bezug auf die Marktkapitalisierung rangiert.
IOTA selbst versteht sich als sicheres Kommunikations- und Zahlungsmedium für das Internet of Things (IoT). Dabei wird davon ausgegangen, dass die Distributed-Ledger-Technologie eine zentrale Rolle im IoT spielen wird. Die Technologie bietet einige Vorteile gegenüber den heute existierenden zentralisierten Plattformlösungen. Dazu zählen die Themen Unveränderbarkeit, Privatsphäre, Dezentralisierung und Transparenz.
Unveränderbarkeit: Alle Teilnehmer eines Distributed-Ledger-Systems fungieren als Kontrollinstanz. Werden Daten in das System eingetragen, müssen die Teilnehmer zu einem Konsens kommen. Im Anschluss werden die Daten auf allen beteiligten Nodes unabhängig abgespeichert. Damit ist eine spätere Änderung oder Fälschung schwer möglich und erfordert die Kontrolle über die Mehrheit der Knoten im Netz.
Privatsphäre: Die gesamte Technologie des Distributed-Ledger basiert auf Kryptographie. Alleine durch die Erstellung eines Private Keys kann man an dem Netzwerk teilnehmen.
Dezentralisierung: Für den Datenabgleich werden im Distributed-Ledger keine vertrauenswürdigen Institutionen mehr benötigt, denen alle Teilnehmer vertrauen. Eine solche Rolle erfüllen heute beispielsweise die klassischen Banken für die Zahlungsabwicklung zwischen zwei Personen.
Transparenz: Mithilfe der Distributed-Ledger-Technologien wird es möglich, Daten für viele Nutzer verfügbar zu machen. Für jeden ist es dann möglich, genau nachzuvollziehen, wem welche Informationen, zu welchem Zeitpunkt zur Verfügung gestellt wurden.
Hinter IOTA steht heute die IOTA Foundation, die 2017 als Stiftung nach deutschem Recht gegründet wurde. Die Gründer sind Dominik Schiener, David Sønstebø, Sergey lvancheglo und Serguei Popov, die die Idee hinter IOTA und die Tangle-Architektur entwickelt haben.
Welche Anwendungsfälle gibt es für IOTA?
Für IOTA wird eine Vielzahl von Anwendungsfällen propagiert. Welche sich durchsetzen werden, bzw. ob sich IOTA dafür durchsetzt, wird die Zukunft zeigen.
Absicherung von Lieferketten:
Global verteilte Lieferanten kämpfen zunehmend mit Transparenzschwierigkeiten. Immer wieder tauchen Fälschungen bei Zulieferteilen auf. Wenn jeder Hersteller in der Lieferkette den aktuellen Fortschritt im Tangle speichern würde, könnten alle Beteiligten jederzeit die Lieferkette überprüfen. Dadurch könnten Unternehmen sicherstellen, dass ein Teil mit der Seriennummer X zum Zeitpunkt T1 die Fabrik verlassen hat und zum Zeitpunkt T2 an einem anderen Ort von einer anderen Firma weiterverarbeitet wurde.
Sensornetze:
Schreibt jeder Sensor seine aktuellen Messwerte in den Tangle, 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.
E-Health:
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 zur Patientenakte hinzufügen.
Was ist Tangle?
IOTA basiert auf dem sogenannten Tangle. Beim Tangle handelt es sich um einen Directed Acyclic Graph (DAG).
Anders als die Blockchain, die alle Blöcke in einer Kette verknüpft, sind im Tangle eine Menge von Transaktionen über eine gerichtete Kante verknüpft.
Jeder Knoten in einem Tangle entspricht einer Transaktion, die beliebigen Payload enthalten kann. Beim Payload kann es sich zum Beispiel um eine Überweisung handeln, aber auch um Sensordaten. Die Kanten zwischen den Knoten zeigen eine Validierung. Eine neue Transaktion muss immer zwei vorherige Transaktionen bestätigen. In der nachfolgenden Abbildung 2 bestätigt die Transaktion [4] die Transaktionen [2] und [1], was über die gerichtete Kante dargestellt ist.
Die beiden Transaktionen [3] und [4] sind noch nicht validiert. Solche nicht validierten Transaktionen werden auch "Tips" genannt. Eine Transaktion kann über die Zeit auch von weiteren Tips validiert werden, was zu einem höheren Score führt. Mit der Höhe des Scores steigt die Wahrscheinlichkeit, dass die Transaktion valide ist. Dies zeigt die Abbildung 3, in der sich das Tangle weiterentwickelt hat.
Schaut man sich die Transaktion [3] in der Abbildung 3 an, kann man erkennen, dass diese von den Transaktionen [6], [7] und [8] direkt validiert wurden und von der Transaktion [9] indirekt.
Wie erfolgt die Konsensfindung im Tangle?
Der Konsens für eine Transaktion im Tangle ist erreicht, wenn alle Tips eine Transaktion indirekt bestätigen. Das heißt, alle Tips erreichen über den Pfad diese Transaktion. In der nachfolgenden Abbildung 4 sind die Transaktionen im grünen Rechteck mehrfach validiert und die im blauen Rechteck nur ausreichend oft. Die beiden Tips [7] und [8] erreichen die Transaktion [1] über einen Pfad. Die Transaktion [4] wird aber nur von Transaktion [8] erreicht.
Innerhalb des Tangle kann man als Nutzer das Bestätigungslevel frei bestimmen. Dieses Level ist ein Prozentwert, wie viele Tips die Transaktion bestätigen. Dieses Level wird durch die n-malige Ausführung der Monte-Carlo-Markov-Kette (MCMK) bestimmt.
Wenn man bei 100 Durchläufen 80 Tips erhält, die einen direkten Weg zur Transaktion haben, dann ist diese Transaktion zu 80% bestätigt.
Welche Rolle spielen Nodes?
Das Konzept von IOTA sieht vor, dass das Tangle in einem verteilten Netzwerk von IOTA Nodes arbeitet. Dabei gibt es Light-Nodes, Full-Nodes und Permanodes. Die beiden ersten existieren bereits, Permanodes gibt es aktuell noch nicht. Eine Übersicht der Funktionen der unterschiedlichen Nodes ist in Tabelle 1 zu finden.
Light-Nodes sind keine richtigen Knoten im Netzwerk. Sie greifen nur auf Full-Nodes zurück.
Auf Full-Nodes läuft die IOTA Reference Implementation (IRI). Jede Full-Node muss mit anderen Full-Nodes (sogenannten Nachbarn) verbunden sein, damit er Transaktionen verbreiten kann.
Welche Rolle spielt der Koordinator?
Aktuell funktioniert das IOTA-Netzwerk ausschließlich mit einem sogenannten Koordinator. Dieser wird durch die IOTA Foundation betrieben und sein Quellcode ist auch nicht einsehbar. Seine Adresse ist in der Referenzimplementierung (IRI) fest programmiert. Die Rolle des Koordinators ist es, das Netzwerk vor Angriffen zu schützen. In der Bitcoin Blockchain ist man zum Beispiel mit 51% der Rechenleistung in der Lage, Manipulationen vorzunehmen. Aufgrund der noch relativ kleinen Anzahl von Nodes im IOTA-Netzwerk, wäre die Hürde für einen Angreifer relativ gering, um mit eigenen Nodes bösartige Transaktionen zu erstellen.
Der Koordinator erstellt jede Minute sogenannte Milestones. Dies sind Transaktionen mit einer Unterschrift und alle Transaktionen, die direkt oder indirekt von diesem Milestone validiert wurden, gelten als bestätigt. Dieser Koordinator wird wiederum durch die im Netz beteiligten Nodes überwacht und kann keine neuen Token erschaffen oder vorhandene wiederverwenden.
Bei einer hinreichenden Größe soll dieser Koordinator aus dem IOTA-Netzwerk entfernt werden. Wann das konkret so sein wird, ist unklar. Im November 2018 wurde gemeldet, dass der Koordinator nun schrittweise entfernt werden soll.
Was sind Transaktionen?
Wie oben beschrieben besteht das Tangle aus Transaktionen. Dabei werden zwei unterschiedliche Transaktionen unterschieden:
- Value-Transaktionen (Übertragung eines IOTA Tokens, der Währung) und
- Zero-Value-Transaktionen (Übertragung von Daten)
Der Prozess, wie eine Transaktion verarbeitet wird, ist dabei immer identisch.
Eine Transaktion im IOTA-Netz hat einen definierten Aufbau. Die einzelnen Attribute der Transaktion sind in Tabelle 2 zu finden.
Im Falle einer Übertragung eines Tokens (Überweisung von IOTAs) ist es notwendig mehrere Transaktionen in einem Bundle zusammenzufassen.
Was sind Transaktions-Bundle?
Eine Übertragung von IOTAs ist ein Bündel aus vier einzelnen Transaktionen, die aus Ein- und Ausgangstransaktionen bestehen. Dabei ist es aber so, dass das Bündel eine atomare Transaktion darstellt. Das bedeutet, dass alle Einzeltransaktionen auch bestätigt werden müssen.
IOTA nutzt in seiner Plattform ein UTXO (Unspent Transaction Output) ähnliches Schema. UTXO wird zum Beispiel bei Bitcoin eingesetzt.
Die Bundle-Struktur zeigt die nachfolgende Tabelle.
Im zweiten Teil der Blogserie zeigen wir einige Umsetzungsbeispiele basierend auf der angebotenen JAVA Client Bibliothek unter Verwendung des IOTA Devnet.
Noch Fragen?
Wie können Sie Chancen und mögliche Einsatzfelder von Blockchain-Lösungen identifizieren und diese in Ihrer Organisation umsetzen? Erfahren Sie, wie wir Sie beim Thema Blockchain unterstützen können:
Nico Heinze - ist Projektmanager bei der iteratec GmbH in München. In den vergangenen Jahren setzten sein Team und er immer wieder völlig neuartige Anwendungen um.