/ Buch

Tangle statt Blockchain: Wie IOTA funktioniert

tl:dr IOTA macht seit längerem in der Krypto-Welt Furore: Kryptogeld soll auch ganz ohne Blockchain möglich sein und dann gleich effizient und skalierbar. Hier gibt es einen Eindruck in die Technologie hinter IOTA und deren claim to faim.

Bevor du wieder mit deinen ausschweifenden Erklärungen davongaloppierst: Gib deinen Lesern doch noch mal eine Einführung “Kryptogeld in zwei Sätzen”. So können die auch verstehen, warum du überhaupt IOTA vorstellst

Gerne!

Kryptogeld — konkret Bitcoin damals — hat versprochen, dass man Unabhängigkeit vom Finanzsektor haben kann, ohne dafür auf Tauschwirtschaft zurückfallen zu müssen. Außerdem ist ein kostenloses, globales Bezahlsystem dank Internet eigentlich längst überfällig — dank moderner Kryptographie ist das jetzt alles erreichbar.

Gut. Hat Bitcoin diese Versprechen letztlich einlösen können?

Leider nur teilweise. Man ist bei Bitcoin nicht anonym, Transaktionen kosten Geld und schnell ist auch was anderes. Deshalb gibt es ja die Altcoins, also konkurrierende Konzepte, die Bitcoins Schwächen ausbügeln sollen.

Viele verbinden mit Bitcoin und umso mehr mit Altcoins in erster Linie immer noch Scams und falsche Versprechungen, wo nur die Gründer reich werden

Das ist nicht unberechtigt. Deshalb hat sich der Begriff Shitcoineingebürgert für “Innovationen” im Bereich Kryptogeld, die ohne fundierte technische Konzepte Marketing-Hype machen.

Wer bei Kryptogeld dabei sein will, muss den Shitcoin sehen und meiden! Selbst wenn man den offensichtlichsten Shitcoins erfolgreich aus dem Weg geht, bleibt noch die Schwierigkeit neue technische Konzepte zu beurteilen. Bitcoin kann auf siebenjähriges Bestehen zurückblicken. Altcoins müssen sich dagegen irgendwie erfolgreich beweisen. Mit diesem Gedanken im Hinterkopf stelle ich hier Altcoins vor.

Zuletzt hatten wir NXT — ein Exot, weil NXT auf proof-of-stake beruht statt auf proof-of-work. IOTA ist noch exotischer, weil es noch nicht einmal eine Blockchain gibt sondern ein sogenanntes Tangle, was eigentlich nur ein Netz von Transaktionen bezeichnet. Siehe dazu auch das Bild.

Gerade Blockchain verstanden, proof-of-work, proof-of-stake, und jetzt also das Tängel. Ich hol mir mal nen Kaffee …

Bring mir einen mit! IOTAs value proposition geht so:

  • Bezahlsystem für das Internet of Things
  • Es gibt keine Transaktionskosten und Mikrotransaktionen sind also möglich
  • Skalierung ist bereits gelöst und kein Problem
  • Wem es was bedeutet: IOTA wird durch die deutsche IOTA-Stiftung betrieben

*rödel* Hab ich gerade Internet of things gehört? Diese Smart-Fridge-Scheiße?

DARAUF KOMME ICH AM ENDE NOCH MAL ZU SPRECHEN

Ein dezentrales Netzwerk ohne Miner

IOTA läuft genauso wie Bitcoin auf einem peer-to-peer Netzwerk, d.h. es gibt nur die gleichberechtigten Nodes. Als Besonderheit gibt es aber in dem Netzwerk noch nicht einmal Miner. Was die Miner sonst machen würden, macht also der User jetzt:

Mal angenommen ich will eine Transaktion abschicken. Der Miner würde die validieren und für seinen Service Geld nehmen. Stattdessen muss ich jetzt selber ran: Um meine Transaktion abzuschicken, muss ich selber zwei ausstehende Transaktionen auswählen und diese validieren. Meine Transaktion wird gleichermaßen dann vom nächsten User validiert, der seinerseits eine Transaktion losschicken will.

Kleiner klarstellender Einschub: Auch bei IOTA fällt der Begriff proof-of-work. Das hängt damit zusammen, dass ich tatsächlich beim Validieren von Transaktionen ein kleines Rätsel lösen muss. IOTAs proof-of-work hier dient aber in der aktuellen Version dem Schutz vor Spam und spielt für die Konvergenz des Netzwerks nicht die entscheidende Rolle. IOTA basiert anders als Bitcoin nicht zentral auf proof-of-work und hat auch kein analoges Konzept wie NXTs proof-of-stake.

Durch dieses Validieren von zwei Transaktionen entsteht jetzt ein Graph.

Mach doch bitte ein Bild

Ich kopier mal dieses hier aus der offiziellen Dokumentation.

Die jüngsten Transaktionen sind ganz rechts. Jede Transaktion zeigt auf zwei ältere Transaktionen — wir nennen diese mal die “Eltern”. Mathematisch gesprochen sehen wir einen gerichteten Graphen ohne Zirkel. Die Kinder zeigen auf ihre Eltern.

Die grauen Transaktionen haben keine Kinder, wurden also noch nicht validiert. Diese nicht validierten Transaktionen werden Tips genannt (Tip = Spitze). Die roten Transaktionen wurden bereits validiert, haben also mindestens ein Kind. Nun zu den grünen Transaktionen:

Eine Transaktion ist grün, wenn von jedem Tip — grau — ein Weg zu dieser Transaktion existiert.

Warum spielt das eine Rolle? Wenn ich eine Transaktion validiere, prüfe ich diese auf Richtigkeit. Um aber ultimativ die Richtigkeit einer Transaktion zu prüfen, muss ich auch prüfen, ob die Eltern, auf die Transaktion zeigt richtig sind!

Die Kinder haften für ihre Eltern

So ist es. Für die grünen Transaktionen können wir also sagen: Alleaktuellen Transaktionen sind sich einig, dass diese valide sind.

Ist das ein analoges Sicherheitskriterium wie Bitcoins sechs Bestätigungen?

Das ist bei IOTA anders, darauf muss ich noch einmal zurückkommen. Wir versuchen jetzt, eine Intuition für dieses Tangle zu entwickeln und gucken, was das so kann.

Eigenschaften des Tangles

Erst einmal vorab: Tatsächlich ist das Tangel IOTAs Art und Weise alle Herausforderungen zu lösen, die Bitcoin mit der Blockchain und proof-of-work löst. Und der zentrale Punkt ist eben, dass jede Transaktion auf zwei Eltern zeigt.

Du meintest vorhin: eine Transaktion prüft die Korrektheit der Eltern und folglich die Korrektheit deren Eltern usw. Wie geht denn das praktisch?

Es fängt ganz einfach an. Am Anfang gab es die Genesis-Transaktion — die ist per Definition korrekt. Darauf folgende Transaktionen müssen natürlich die naheliegenden Kriterien erfüllen

  • es wird nicht mehr IOTA ausgegeben als verfügbar ist
  • die Transaktion ist vom rechtmäßigen Besitzer signiert

Das kann ich für alle Transaktionen ausgehend von meinen Eltern prüfen — also für meinen gesamten Stammbaum bis Adam und Eva. Mit jedem Schritt in Richtung Vergangenheit verdoppelt sich die Anzahl der Transaktionen, die ich prüfen muss erst einmal.
Tatsächlich gibt es dann aber einen Punkt in der Vergangenheit, wo alle existierenden Transaktionen die Großgroßgroß…großeltern jeder einzelnen heutigen Transaktion sind (mit Ausnahme von Stämmen von Transaktionen, die irgendwann verwaist sind und die wir ignorieren können).

Das ist analog zur Menschheitsgeschichte. Egal wen ich auf der Straße anspreche, geh ich nur lange genug in seinem Stammbaum zurück, sind irgendwann immer alle lebenden Menschen seine Vorfahren — mit Ausnahme von Geschlechtern, die ausgestorben sind.

Praktisch bedeutet das, ich muss gar nicht immer bis zur Genesis-Transaktion zurückgehen. Wenn ich die Korrektheit von alten Transaktionen genau einmal prüfe und mir dann merke, kann ich diese Information für die Validierung neuer Transaktion immer wieder verwenden.

Ich behaupte mal, das hab ich einigermaßen verstanden

Was wir aber noch nicht angesprochen haben, ist das komplexere Szenario, wenn jede Transaktion für sich zwar valide ist, aber zwei Transaktionen sich gegenseitig widersprechen.

Das gute alte …

… Double-Spending-Problem.

Die Lösung von IOTA geht so: Ich will also selber eine Transaktion absenden, hab dafür zwei Eltern ausgewählt und prüfe jetzt also deren Korrektheit und gucke dabei prinzipiell den gesamten Stammbaum an Transaktionen an.

Und, Gott bewahre!, da gibt ein Besitzer von IOTA seine coins zweimal aus in zwei verschiedenen Transaktionen. Wie bei Bitcoin können wir das Problem jetzt auf die Frage reduzieren: Was ist das objektive Kriterium für die “richtige” Transaktion? Und wie bei Bitcoin ist für die Stabilität des Netzwerks ausschlaggebend, wie schnell alle Nodes sich auf eine richtige Transaktion einigen.

Ein ehrlicher IOTA-Node macht das jetzt so: Ich hab bei der Auswahl meiner Eltern ja die Wahl. Die Prozedur der Elternwahl heißt bei IOTA der Tip-Selektions-Algorithmus. Egal welchen Tip-Selektions-Algorithmus ich anwende: ich lasse den jetzt nicht einmal sondern 100mal laufen und gucke jeweils hypothetisch das resultierende Elternpaar und den restlichen Stammbaum an. Der Witz ist jetzt: eine der beiden widersprüchlichen Transaktionen kommt in den Stammbäumen häufiger vor als die andere. Und zwar desto mehr, je mehr Kinder sie hat. “Kinder” sind nichts anderes als Validierungen. Wenn eine der widersprüchlichen Transaktion ein Tip ist, hat sie überhaupt keine Kinder!

Ich kann also zählen, wie oft eine Transaktion in meinen 100 hypothetischen Stammbäumen vorkommt und wähle im Konfliktfall zwischen zwei Transaktionen diejenige, …

… die am häufigsten vorkommt, genau. Wir haben also ein objektives Kriterium für die richtige Transaktion.

Und gibt es jetzt noch einen Haken, wie das bei NXT der Fall war?

Darauf muss ich am Schluss noch mal eingehen. Grob könnte das erst einmal alles so funktionieren. Schauen wir uns dazu mal die Anreizstruktur eines ehrlichen Nodes an. Was passiert, wenn ich nicht wie oben vorgehe und die “falsche” Transaktion wähle.

Dann bekommt die falsche Transaktion anstelle der richtigen eine weitere Bestätigung

Aber was passiert mit meiner Transaktion, die ich abschicken wollte? In ihrem Stammbaum ist jetzt die falsche Transaktion drin. Das heißt die ehrlichen Nodes werden meine Transaktion vermeiden, wenn sie für ihre zukünftigen Transaktionen Eltern auswählen. Wenn aber kein Kind meine Transaktion als Vater oder Mutter wählt, …

… bleibt meine Transaktion kinderlos und unbestätigt im Abseits

Ja! Wenn ich also will, dass meine Transaktion schnell bestätigt wird, spiele ich lieber ehrlich und mein Egoismus dient dem Gemeinwohl.

Ich glaub, du provozierst hier mit diesem Spruch niemanden. Viel wichtiger ist doch die Frage: Skaliert das denn auch?

Das ist eine geradezu wundersame Eigenschaft des Tangles: Es skaliert 1A. Je mehr Transaktionen eingespielt werden, desto mehr werden auch bestätigt. Ab einem bestimmten Aktivitätslevel im Netzwerk sind instantane Transaktionen zu erwarten, wo die Geschwindigkeit nur durch die Latenz im Netzwerk beschränkt ist, wie beim Absenden einer E-Mail.

Instantan? Also nicht wie bei Bitcoin sechs Bestätigungen?

Naja, haben wir ja oben gesehen: Ich muss den Tip-Selektions-Algorithmus 100 mal laufen lassen und bekomme dann beispielsweise als Ergebnis “67 von 100 Tips resultieren in Stammbäume mit meiner Transaktion”. Ob jetzt 50/100 schon sicher ist oder erst 99/100 oder gar 100/100 muss sich wohl in der Praxis zeigen.

Kaufen oder nicht kaufen?

Kommen wir erst einmal zur

Bewertung der Technologie

Was ich persönlich aussichtsreich finde:

  • IOTA ist möglicherweise Bitcoins ursprünglicher Version näher: ein sicheres, dezentrales, schnelles, kostenloses, globales Bezahlsystem
  • Nach allem, was ich verstehe, könnte das Tangle funktionieren
  • Es ist noch kein fundamentaler Nachteil wie bei NXTs proof-of-stake sichtbar
  • Die Platzierung als Nr. 7 nach Marktkapitalisierung ist ganz ansehnlich für technisch derart neues Konzept
  • Des weiteren gibt es eine aktive Community und einen Slack-Channel, wo man alles fragen kann

Was ich dagegen nicht verstehe:

  • IOTA vermarktet sich über das Internet of Things
  • Die kritische Analyse der Technologie läuft noch

Ja, IOTA ist wohl anders als Bitcoin für Machine-to-Machine-Payments geeignet. Problem ist nur, dass das Internet of Things nicht existiert. Ich hab keinen Smart Fridge und weiß nicht, ob da wirklich eine Revolution auf uns wartet.

Warum vermarkten die sich nicht als generelle Kryptogeld-Alternative und stellen entsprechende Software bereit, damit ich eines Tages mit IOTA im Darknet shoppen gehen kann?

Gut, Vermarktung eben. Das soll ja bei Altcoins zunehmend wichtig sein. Mich interessiert aber immer noch, ob es an der Technologie einen Haken gibt. Sag da bitte noch was zu

Ich bin da hin und her gerissen. IOTA hat harsche Kritik bekommen. Leute, die gerade verstanden haben, wie die Blockchain funktioniert, behaupten es kann gar nicht ohne Blockchain gehen. So kategorische Ablehnung kommt mir nicht sinnvoll vor.

Auf der anderen Seite beobachte ich IOTA nun schon ein Weilchen und die Kommunikation der Entwickler läuft aus meiner Sicht nicht optimal. Bei Interesse zitier ich mal ein paar Eseleien aus dem White Paper. Ärgerlicher ist dabei eigentlich, dass das White Paper gar nicht den aktuellen Entwicklungsstand von IOTA dokumentiert. Wer offiziell informieren will, geht in den IOTA-Slack-Channel bzw. liest die Diskussionen mit den Entwicklern dort — normalsterbliche können da aber in der Regel nicht folgen.

Was ich sehe: Die Entwickler können weder theoretisch noch praktisch belegen, dass das Tangle funktioniert (= gegen Double Spending sicher ist). Aktuell wird das Test-IOTA noch durch einen sogenannten “Coordinator” überwacht — letztlich ist das ein zentraler Server.

Oh, der zentrale Server … die Krypto-Todsünde!

Mach dich nur lustig. Ich hab hier erklärt, worum es mir bei Kryptogeld geht. Wer behauptet, er würde ein dezentrales Bezahlsystem umsetzen, muss das auch konsequent tun. Sonst finde ich das witzlos.

Liebe Leser

Danke fürs Lesen! Falls jemand hier auch schon einen Eindruck von IOTAs Technologie gewonnen habt: Teil gerne deine Einschätzung!

Weiterlesen Eine dezentrale Anwendung: Namecoin

Du bist hier Tangle statt Blockchain: Wie IOTA funktioniert

Voriger Artikel Bitcoin (e)skaliert: Die Blocksize-Debatte

Zurück zur Inhaltsübersicht