Eine Einführung in DLT-Konzepte und warum ich denke, dass IOTAs Tangle den Blockchains überlegen ist

Disclaimer: Dies ist die deutsche Übersetzung meines Originalartikels und ich werde die englischen Fachbegriffe beibehalten. Nichts in diesem Artikel sollte als Anlageberatung angesehen werden.
Das Ziel dieses Artikels ist es, Neulingen im Bereich der Kryptowährungen oder allen, die mit der Technologie dahinter nicht vertraut sind, zu helfen zu verstehen, was Distributed Ledger Technologies (DLTs) sind und warum wir sie brauchen. Daher werde ich versuchen, nicht zu tief in die technischen Details von DLTs zu gehen, sondern eher einen Überblick über die verwendeten Prinzipien zu geben. Ich weiß, dass dies ein langer Artikel ist, aber ich wollte alles in einem Dokument erklären, damit man nicht an verschiedenen Stellen nachschauen muss, um ein grundlegendes Verständnis der Technologie zu erlangen. Fühlen Sie sich frei, Teile, die Sie bereits kennen, zu überspringen. Es ist wichtig zu beachten, dass ich nicht alle möglichen Angriffsvektoren oder jedes technische Detail besprechen werde. Dieser Artikel soll nur eine Einführung in das Thema sein und Sie dazu einladen tiefer zu graben, wenn er Ihr Interesse weckt.
Ich werde hauptsächlich über Kryptowährungen sprechen, weil sie ein leicht zu verstehendes Beispiel sind, aber es gibt eine Menge anderer spannender Anwendungsfälle für DLTs.
Die Abschnitte über Blockchains und den Tangle haben am Anfang einen kurzen TLDR-Absatz, der einen knappen Überblick über die verwendete Technologie gibt. Wenn Sie den ganzen Artikel lesen, können Sie diese TLDR-Abschnitte überspringen, da alles danach ausführlicher erklärt wird. Wenn Sie Fragen zu diesem Artikel haben, können Sie diese gerne in den Kommentaren stellen.
Um zu verstehen, warum Kryptowährungen überhaupt geschaffen wurden, lassen Sie uns einen kurzen Blick darauf werfen, wie sich Währungen in der Vergangenheit entwickelt haben und wie das aktuelle Geldsystem funktioniert.
Was ist Geld und warum benutzen wir es?
Bevor das Konzept des Geldes geschaffen wurde, tauschten die Menschen bereits Waren durch Tauschhandel aus. Unter den richtigen Umständen kann der Tauschhandel sehr einfach und effektiv sein. Nehmen wir an, Alice möchte einige Äpfel gegen ein Paar Schuhe tauschen. Wenn sie jemanden finden kann, der Schuhe gegen Äpfel tauschen möchte, funktioniert dieses System perfekt. Eine Herausforderung ergibt sich, wenn Alice Schuhe von Bob möchte, Bob aber keine Äpfel mag und stattdessen um etwas Brot bittet. In diesem Fall muss Alice zuerst jemanden finden, der Brot gegen Äpfel tauschen möchte, und dann dieses Brot gegen die Schuhe tauschen. Das kann sehr komplex werden und erfordert eine Menge Koordination zwischen verschiedenen Personen. Der Tauschhandel kann also einfach und direkt sein, aber um das zu bekommen, was Sie wollen, kann eine Koordination zwischen vielen Personen erforderlich sein.
Eine Lösung für dieses Problem ist ein gemeinsames Tauschmittel, das es allen erlaubt, direkt miteinander zu handeln. Geld ist dieses gemeinsame Tauschmittel. Frühe Formen von Geld besaßen unabhängig von ihrem Währungsstatus einen Wert, wie z. B. Scheffel Gerste. Das sorgte für Vertrauen in die Währung, da sie jeder benutzen konnte und ein Wertverlust dadurch unwahrscheinlich war. Ein weiterer Vorteil von Scheffeln Gerste ist, dass sie nicht leicht voneinander zu unterscheiden sind und daher den gleichen Wert haben. Allerdings hatte diese Form des Geldes auch einige offensichtliche Nachteile, da die Scheffel schlecht zu transportieren waren und verdarben, wenn sie nicht verarbeitet oder relativ schnell weiter getauscht wurden.
Um diese Nachteile zu beheben, wurde neues Geld in Form von Edelmetallen, insbesondere Gold, entwickelt. Diese neue Form des Geldes war sehr bequem zu transportieren (zumindest die für den täglichen Gebrauch benötigte Menge) und verdarb nicht mit der Zeit. Im Vergleich zu Scheffeln Gerste erforderte es jedoch viel mehr Vertrauen, da Gold, abgesehen von seiner Verwendung als Währung oder Schmuck, keinen Wert hatte. Da es unpraktisch war, Gold in sehr kleine Mengen für Einkäufe wie einen Laib Brot aufzuteilen, entstanden Banken, die anboten, das Gold für Sie im Austausch gegen Schuldscheine zu lagern. Diese Schuldscheine konnten nun für Einkäufe verwendet oder zur Bank gebracht werden, um wieder in Gold getauscht zu werden. Dies war die Geburtsstunde des Papiergeldes.
Seit der Abschaffung des Goldstandards sind Währungen heute nicht mehr durch etwas physisches gedeckt, sondern durch das Versprechen der Staaten, das Geldsystem am Laufen zu halten. Dadurch wurde die Macht über das Geldsystem in die Hände der währungsausgebenden Stellen (der Zentralbanken) zentralisiert. Daher muss jeder, der diese Währungen verwendet, den Zentralbanken vertrauen, denn theoretisch könnten sie so viel Geld aus dem Nichts erschaffen, wie sie wollen, und damit die Ersparnisse aller, die die Währung verwenden, entwerten. Eine andere Sache, die sich geändert hat, ist, dass heutzutage die meisten Transaktionen online und nicht persönlich durchgeführt werden.
Wie funktionieren diese Online-Transaktionen?
Angenommen, Sie möchten mit Bob etwas Geld tauschen, ohne ihn persönlich zu treffen und es in bar zu übergeben. Derzeit verwenden Sie dafür wahrscheinlich eine Banküberweisung oder andere Unternehmen wie Paypal. Im Prinzip arbeiten diese Drittanbieter alle auf die gleiche Weise: Sie haben eine große zentrale Datenbank, in der sie ihre Benutzerdaten wie Namen und Kontostände speichern. Wenn Sie 20 $ an Bob senden möchten, senden Sie diese Anfrage an den Drittanbieter und dieser zieht 20 $ von Ihrem Guthaben ab und fügt 20 $ zu Bobs Guthaben in der Datenbank hinzu.

Dieser ganze Prozess funktioniert sehr gut, solange die zentrale Datenbank geschützt ist und das Unternehmen ehrlich ist und keine Fehler macht. Wenn jedoch nur eine dieser drei Voraussetzungen nicht erfüllt ist, ist Ihr Geld in Gefahr. Wenn sich ein Hacker irgendwie Zugang zu dieser Datenbank verschafft, könnte er sie nach Belieben manipulieren, z.B. ein paar Nullen zu seinem Guthaben hinzufügen oder Ihr Guthaben auf Null setzen. Das Gleiche gilt für alle Mitarbeiter des Unternehmens, die Zugriff auf die Datenbank haben. Sie müssen also dem Drittanbieter vertrauen, dass alles korrekt gehandhabt wird, und außerdem müssen Sie eine Gebühr für dessen Dienstleistung bezahlen.
Wenn Sie die Notwendigkeit einer vertrauenswürdigen dritten Partei (in diesem Beispiel Banken oder Paypal) eliminieren wollen, müssen Sie einen dezentralen Weg finden, um eine Datenbank zu aktualisieren und zu sichern, die alle relevanten Informationen speichert. DLTs können Ihnen genau diese Funktionalität bieten, da sie die Anforderung nach Vertrauen von Unternehmen auf Mathematik und Algorithmen verlagern.
Welches Problem wollen DLTs lösen?
Um verstehen zu können, warum eine bestimmte Technologie besser ist als eine andere, muss man zunächst das Problem verstehen, das sie lösen soll. Das Ziel jeder Distributed Ledger Technology (DLT) ist es, Daten auf vertrauenswürdige Weise zu verarbeiten, zu speichern und auszutauschen, ohne dass Vermittler notwendig sind. Diese Daten können alles Mögliche sein, aber um die in Blockchains und dem Tangle verwendeten Prinzipien zu veranschaulichen, konzentrieren wir uns in diesem Artikel auf Währungen als beispielhaften Anwendungsfall.
Was ist eine Blockchain und wie löst sie das Problem?
TLDR:
Eine Blockchain ist genau das, was der Name sagt: eine Kette von Blöcken. Jeder Block besteht aus einer Liste von Transaktionen. Die Blöcke werden mithilfe einer kryptografischen Hash-Funktion aneinander gekettet, die sicherstellt, dass die Transaktionen nicht verändert werden können. Diese Blockchain wird dann öffentlich geteilt, so dass jeder eine Kopie herunterladen kann. Um neue Transaktionen aufzunehmen und die Blockchain zu aktualisieren, wird ein temporärer Anführer vom Netzwerk ausgewählt, der einen neuen Block erstellen darf. Diese Anführer-Rolle sollte so oft wie möglich zu verschiedenen Personen wechseln, um sicherzustellen, dass man keinem von ihnen vertrauen muss.
Welche Eigenschaften muss eine Kryptowährung haben?
Um besser zu verstehen, warum die verwendeten Prinzipien eingeführt wurden und notwendig sind, werden wir uns ansehen, wie wir unsere eigene Kryptowährung mithilfe einer Blockchain aufbauen könnten. Um als Währung nutzbar zu sein, sollte unser System:
☐ alle benötigten Daten sicher speichern
☐ Transaktionen senden und empfangen
☐ sicherstellen, dass alle Transaktionen gültig sind
☐ sicherstellen, dass sich alle im Netzwerk über den Zustand des Ledgers einig sind (wer welchen Kontostand hat), d. h. einen Konsens erreichen
Wenn es uns gelingt, ein solches System zu entwerfen, haben wir unser Ziel erreicht, ein System zu schaffen, das in der Lage ist, Daten auf vertrauenswürdige Art und Weise zu verarbeiten, zu speichern und auszutauschen, ohne dass es dazu Zwischenhändler braucht.
Die erste Frage, die wir beantworten werden, ist, wie man alle benötigten Daten mit einer Blockchain sicher speichern kann.
Was ist eine Blockchain?
Eine Blockchain ist genau das, was der Name sagt: eine Kette von Blöcken. Jeder Block besteht aus einer Liste von Aussagen. Diese Aussagen können alles Mögliche sein, aber in unserem Beispiel werden es Transaktionen in der Form “Alice zahlt Bob 20¢” sein. Ein einzelner Block sieht also etwa so aus:

Nach einer vordefinierten Zeitspanne wird ein neuer Block erstellt und alle neuen Transaktionen werden in diesen neuen Block geschrieben. Zusätzlich zu den Transaktionen werden ein Hash-Pointer (wird gleich erklärt) auf den vorherigen Block und eine Nonce (mehr dazu später) in diesen neuen Block geschrieben.
Das Bild unten zeigt, wie eine Blockchain aussieht. Beachten Sie, dass ich Namen anstelle von public keys verwende (wird später erklärt), um es leichter lesbar zu machen. Die Transaktionen in echten Blockchains sehen anders aus, aber das Prinzip bleibt das gleiche. Machen Sie sich keine Sorgen, wenn Sie noch nicht alles auf dem Bild verstehen, ich werde alle Details davon erklären.

Die Blockchain wird die Rolle der zentralen Datenbank von Unternehmen spielen, in der die Transaktionen eines jeden Nutzers gespeichert werden.
Was ist ein Hash-Pointer?
Ein Pointer ist einfach ein Pfeil, der uns irgendwo hinführt (in diesem Fall zum vorherigen Block). Das Ergebnis einer Hash-Funktion wird als Hash bezeichnet. Hash-Funktionen haben die folgenden Eigenschaften:
- eine gleiche Eingabe führt immer zur gleichen Ausgabe
- kann eine Eingabe beliebiger Länge annehmen und eine Ausgabe fester Länge erzeugen
- kleine Änderungen an der Eingabe führen zu großen Änderungen an der Ausgabe
- man kann die Ausgabe der Funktion nicht verwenden, um die Eingabe zu berechnen
- die Wahrscheinlichkeit, dass verschiedene Eingaben zur gleichen Ausgabe führen, ist sehr sehr klein
Das Bild unten zeigt, dass Hash-Funktionen verwendet werden können, um zu prüfen, ob der Inhalt einer Datei nach ihrer Erstellung geändert wurde. Ich habe SHA256 (Secure Hash Algorithm, sicherer Hash Algorithmus) als Beispiel verwendet und Sie können Online-Konverter wie diesen verwenden, um es selbst zu überprüfen:

Der Hash-Pointer ist also im Grunde eine Datenstruktur, die es uns ermöglicht, zu wissen, wo der vorherige Block gespeichert ist und ob sich sein Inhalt seit seiner Erstellung geändert hat. Da die Blöcke mithilfe der Hash-Pointer aneinandergekettet werden, wird die resultierende Datenstruktur Blockchain genannt. Die Blockchain wird die Rolle der zentralen Datenbank von Unternehmen spielen, in der die Transaktionen der einzelnen Benutzer gespeichert werden. Also haben wir jetzt eine Möglichkeit, die relevanten Daten zu speichern und sicherzustellen, dass niemand den Inhalt eines Blocks nach seiner Erstellung ändern kann, ohne dass es alle merken.
Aber es gibt noch eine Menge offener Fragen, die beantwortet werden müssen, bevor wir eine Blockchain-basierte Währung verwenden können. Die erste ist:
Ist die Blockchain nicht ein zentraler Angriffspunkt, genau wie die zentrale Datenbank der Banken?
Ein wesentlicher Unterschied zu einer zentralen Datenbank ist, dass die Blockchain dezentralisiert (öffentlich geteilt) ist, sodass jeder eine Kopie herunterladen und überprüfen kann, ob alle Transaktionen gültig sind (mehr dazu später). Computer, die die Blockchain herunterladen und validieren, werden “Nodes” genannt. Die Dezentralisierung beseitigt das Problem, dass die Datenbank ein zentraler Angriffspunkt im System ist. Wenn die Blockchain auf einem Computer beschädigt/falsch ist, bedeutet das nicht, dass die Gelder von irgendjemandem in Gefahr sind. Es bedeutet nur, dass diese Kopie der Blockchain von allen Nodes als ungültig erkannt wird (weil der Hash des Hash-Pointers einen anderen Wert hat) und daher verworfen wird. Sie können eine neue Kopie der gültigen Blockchain herunterladen, um dieses Problem zu beheben.
Jetzt ist unser System in der Lage:
☑ alle benötigten Daten sicher zu speichern
Wie können wir Geld senden und empfangen?
Um am Netzwerk teilzunehmen, benötigt jeder Benutzer einen private Key (privaten Schlüssel) und einen public Key (öffentlicher Schlüssel). Der private Key ist im Grunde eine sehr lange Zahl und Sie können ihn als das Passwort zu Ihrem Geld betrachten. Sie benötigen Ihren private Key, um ausgehende Transaktionen zu signieren. Das heißt, dass jeder, der Zugriff auf Ihren privaten Schlüssel hat, die Kontrolle über Ihr Geld hat. Es ist sehr wichtig, dass Sie Ihren private Key sicher mit einem Zufallszahlengenerator generieren (verwenden Sie dafür NICHT einen Online-Generator!) und ihn niemals an andere Personen weitergeben (die nicht in der Lage sein sollen, Ihre Gelder zu transferieren). Sie sollten auch sicherstellen, dass Sie diesen private Key sicher aufbewahren, denn wenn Sie ihn verlieren, sind auch alle Ihre Gelder verloren. Der private Key ist die wichtigste Information für einen Benutzer des Netzwerks und kann nicht wie ein Passwort zurückgesetzt werden. Ich kann das nicht genug betonen: Passen Sie gut auf Ihren private Key auf und teilen Sie ihn mit niemandem!
Nun werden Sie sich vielleicht fragen, wenn Ihr private Key nur eine Zahl ist, die von einem Zufallszahlengenerator erzeugt wurde und so wichtig ist, was würde passieren, wenn jemand zufällig denselben private Key erzeugt. Wenn das tatsächlich passieren würde, hätte diese Person vollen Zugriff auf alle Ihre Gelder. Die Zahl Ihres private Keys ist jedoch so lang, dass die Chance, dass dies passiert, unendlich klein ist. 3Blue1Brown hat dazu ein hervorragendes Video (leider auf Englisch) gemacht, das versucht zu veranschaulichen, wie gering diese Chance ist. Solange Sie also eine wirklich zufällige Zahl als Ihren private Key wählen, können Sie sich sehr sicher sein, dass niemand denselben private Key generieren wird.
Der private Key wird als Eingabe für eine kryptografische Funktion (z. B. eine Hash-Funktion) verwendet, um Ihren public Key zu erzeugen. Sie können sich Ihren public Key wie eine Kontonummer vorstellen. Sie können diese Informationen mit anderen teilen, damit diese wissen, wohin sie das Geld schicken müssen, wenn sie eine Transaktion an Sie veranlassen wollen. Wenn Sie Ihren public Key verlieren, können Sie ihn mit Ihrem private Key wiederherstellen, aber es ist unmöglich, Ihren private Key mit Ihrem public Key zu berechnen.
Zusammenfassend lässt sich sagen, dass der private Key zum Senden von Transaktionen erforderlich ist. Sie verwenden ihn, um Transaktionen zu signieren. Das ist nötig um sicherzustellen, dass es wirklich Sie sind, der das Geld sendet. Andere Benutzer des Netzwerks können die Gültigkeit Ihrer Signatur überprüfen, ohne dass Sie Ihren private Key preisgeben müssen (ich werde in diesem Artikel nicht auf die technischen Details eingehen, wie das funktioniert). Ihr public Key wird benötigt, um Transaktionen zu empfangen, da er verwendet wird, um Ihre Wallet-Adresse (Kontonummer) zu generieren.
Sie haben vielleicht schon gehört, dass Blockchains anonym sind. Tatsächlich sind die meisten von ihnen nur pseudonym, weil jeder die public Keys von jedem sehen kann. Wenn jemand in der Lage ist, einen public Key mit einer bestimmten Person zu verknüpfen, kann er alle ihre Einkäufe nachverfolgen. Um Ihre Privatsphäre zu schützen, können Sie für jede Transaktion einen neuen public Key verwenden.
Jetzt haben wir einen Weg gefunden, um:
☑ Transaktionen zu senden und zu empfangen
Wie können wir sicherstellen, dass alle Transaktionen gültig sind?
Mit der Blockchain haben wir eine Datenstruktur eingeführt, die Transaktionen sicher speichern und Manipulationen verhindern kann, nachdem die Transaktionen erstellt wurden. Aber wie stellen wir sicher, dass Transaktionen zu dem Zeitpunkt gültig sind, an dem sie erstellt werden, d. h. wenn sie in den Block geschrieben werden?
Eine Transaktion ist gültig, wenn:
- Eingabebetrag = Ausgabebetrag
- Eingabe-Token (Münzen) nicht bereits irgendwo anders ausgegeben wurden
- der Sender die Transaktion mit seinem privaten Schlüssel signiert hat
Schauen wir uns ein paar Beispiele an:

Die zweite Transaktion ist ungültig, weil Alice sie nicht signiert hat. Die dritte Transaktion ist ungültig, weil Bob sie nicht signiert hat. Die vierte Transaktion ist ungültig, weil Alice nach der ersten Transaktion nicht über genügend Geld verfügt. Die fünfte Transaktion ist gültig, weil Bob sie signiert hat und er bei der ersten Transaktion auch 200¢ von Alice erhalten hat, sodass er über genügend Geld verfügt.
Ein Block ist gültig, wenn:
- alle Transaktionen in diesem Block gültig sind
- er den korrekten Hash-Pointer auf den vorherigen Block enthält
- er die korrekte Blockbelohnung (mehr dazu später) enthält
- in Proof-of-Work-Systemen (POW): enthält Nonce mit korrekter Difficulty (Schwierigkeit, mehr dazu später)
Alle Nodes im Netzwerk prüfen jeden neuen Block auf seine Gültigkeit. Wenn sie einen ungültigen Block entdecken, ignorieren sie ihn. Dadurch wird sichergestellt, dass nur gültige Blöcke (und damit gültige Transaktionen) zur Blockchain hinzugefügt werden können.
Dieses Vorgehensweise ermöglicht es uns:
☑ sicherzustellen, dass alle Transaktionen gültig sind
Wie entscheiden wir, wer einen neuen Block erstellen darf?
In einem verteilten System wie diesem, in dem mehrere Nodes die gleichen Daten speichern, brauchen wir einen Weg, um zu entscheiden, wer die Blockchain aktualisieren darf. Andernfalls würde jede Node seine eigene Blockchain auf potenziell unterschiedliche Weise aktualisieren, was zu einer Menge unterschiedlicher Blockchains führen würde. Wir müssen also einen Weg finden, um sicherzustellen, dass alle Nodes ihre Kopie der Blockchain auf die gleiche Weise aktualisieren, um einen Konsens über die Daten zu erreichen. Blockchains tun dies, indem sie einen einzigen Anführer auswählen, der den neuen Block erstellen und über seinen Inhalt entscheiden darf. Wenn der neue Block gültig ist, akzeptieren ihn alle Nodes und hängen ihn an ihre lokale Kopie der Blockchain an, wodurch sichergestellt wird, dass alle Kopien der Blockchain gleich aussehen. Aber wie wählen wir den Anführer aus?
Um unser Netzwerk dezentral zu halten, müssen wir sicherstellen, dass der ausgewählte Anführer nicht immer dieselbe Person ist (oder, genauer gesagt, eine Node dieser Person). Ansonsten müssen wir dieser Person vertrauen und unsere Blockchain hätte keinen Vorteil gegenüber dem Bankensystem. Je dezentraler unser System also ist, d. h. je mehr verschiedene Personen als Anführer gewählt werden, desto besser, da jeder Anführer weniger Macht über das Netzwerk hat, wenn die Anführerrolle sehr oft wechselt.
Die intuitivste Idee wäre vielleicht, einfach eine Node des Netzwerks zufällig auszuwählen und sie den neuen Block erstellen zu lassen. Diese Idee hat jedoch einige Probleme. Da das Betreiben einer Node sehr billig ist, könnte ein Benutzer des Netzwerks Hunderte oder Tausende Nodes erstellen, um die Wahrscheinlichkeit zu erhöhen, für die Blockerstellung ausgewählt zu werden, ohne viele Ressourcen zu verbrauchen. Dieser Vorgang wird Sybil-Attacke genannt und würde zu einer Zentralisierung unseres Systems führen und wir haben gerade besprochen, warum das schlecht ist. Wir können das Betreiben einer Node auch nicht teuer machen, um dieses Problem zu lösen, denn das würde dazu führen, dass weniger Leute Nodes betreiben und somit unser System zentralisieren. Also müssen wir einen komplexeren Weg für unsere Anführer-Auswahl finden.
Da praktisch alle aktuellen Blockchains entweder Proof of Work (POW) oder Proof of Stake (POS) für ihre Anführer-Auswahl verwenden, werde ich beide Konzepte kurz erklären:
Proof of Work
Wie der Name Proof of Work (Arbeitsnachweis) schon sagt, muss man Arbeit leisten, um als Anführer in Frage zu kommen. Diese Arbeit besteht darin, ein kryptografisches Rätsel immer und immer wieder zu versuchen, bis Sie Glück haben und es lösen. Die Computer, die versuchen, dieses Rätsel zu lösen, werden “Miner” genannt. Der erste Miner, der ein Rätsel löst, wird als Anführer ausgewählt und darf einen neuen Block im Netzwerk veröffentlichen. Wenn dieser Block gültig ist, fügen ihn alle Nodes an ihre Kopie der Blockchain an und die Miner beginnen, ein neues Rätsel für den nächsten Block zu lösen.
Da wir bereits über Hash-Funktionen und ihre Eigenschaften gesprochen haben, können wir näher auf die Funktionsweise dieses Rätsels eingehen. Miner fügen dem neuen Block die Transaktionen hinzu, die sie aufnehmen wollen, und berechnen dann den Hash dieses Blocks. Um gültig zu sein, muss dieser Hash mit einer vordefinierten Anzahl von Nullen beginnen, was als Difficulty (Schwierigkeit) bezeichnet wird. Da man die Ausgabe der Hash-Funktion nicht dazu verwenden kann, die notwendige Eingabe zu berechnen, und eine kleine Änderung der Eingabe zu einer großen Änderung der Ausgabe führt, hat man keine andere Möglichkeit, dieses Rätsel zu lösen, als einfach verschiedene Eingaben auszuprobieren und auf das Beste zu hoffen. Um die Eingabe der Hash-Funktion variieren zu können, ohne die Transaktionen zu verändern, fügt man eine Nonce in den Block ein. Diese Nonce ist nur eine Zahl, und man versucht, den richtigen Wert für diese Zahl zu finden, damit der Hash des Blocks mit der richtigen Anzahl von Nullen beginnt. Man kann die Chance, einen Hash mit einer Difficulty von 30 (der Hash muss mit 30 Nullen beginnen) zu treffen, berechnen:

Sie benötigen also etwa 1 Milliarde Versuche, um bei dieser Difficulty die richtige Nonce zu finden. Wenn man die Difficulty erhöht, benötigen man mehr Versuche, um einen gültigen Block zu finden. Das bedeutet, dass die Difficulty auch verwendet werden kann, um die durchschnittliche Zeit zwischen neuen Blöcken festzulegen. Wenn die Hash-Rate (Anzahl der Hashes, die pro Sekunde berechnet werden können) des Netzwerks steigt, weil neue Miner dem Netzwerk beitreten, kann man die Difficulty erhöhen, so dass die Zeit zwischen den Blöcken gleich bleibt, und wenn Miner das Netzwerk verlassen, kann man die Difficulty verringern.
Die Arbeit in POW-Systemen besteht also darin, die richtige Nonce zu finden. Da Miner diese Nonce mit dem Block veröffentlichen, können alle Nodes leicht validieren, dass sie tatsächlich die Arbeit gemacht haben, ohne selbst die gleiche Arbeit zu machen, indem sie den Hash des Blocks berechnen und prüfen, ob er mit genügend Nullen beginnt.
Die Chance, dass man als Anführer ausgewählt wird, ist gleich dem Anteil der eigenen Hash-Rate im Vergleich zur Hash-Rate des gesamten Netzwerks. Je mehr Rechenleistung man zum Lösen des Rätsels verwenden, desto höher ist die Chance, ausgewählt zu werden. Allerdings ist die Erhöhung der Rechenleistung sehr teuer, da man für die Hardware und den Strom bezahlen muss. Dieses Konzept der Anführer-Auswahl ist daher besser als die zufällige Auswahl eines Nodes als Anführer, da man die Chance, ausgewählt zu werden, nicht einfach erhöhen kann, ohne viel Geld dafür zu bezahlen.
Aber was passiert, wenn 2 Miner zufällig das Rätsel zur gleichen Zeit lösen? Das bedeutet, sie würden beide einen neuen Block erstellen und ihn im Netzwerk veröffentlichen. Wenn beide Blöcke gültig sind, müssen die Nodes entscheiden, welcher Block akzeptiert werden soll. In diesem Fall nimmt jede Node den Block an, den sie zuerst gesehen hat. Das bedeutet, dass wir möglicherweise 2 verschiedene Zustände in unserem Netzwerk haben, was ein Problem ist, das wir lösen müssen. Aber es gibt eine einfache Lösung: Wir warten auf den nächsten Block und schauen, an welchen der 2 sich widersprechenden Blöcke dieser neue Block angehängt wird. Dies wird der Block sein, der vom gesamten Netzwerk akzeptiert wird, und jede Node, die den falschen Block zuerst gesehen hat, muss diesen Block verwerfen und die 2 neuen Blöcke zu ihrer Kopie der Blockchain hinzufügen. Die Regel ist also, dass die längste Kette immer gewinnt (auch Nakamoto-Konsens genannt). Im Bild unten ist B die längste Kette, also werden die 2 Blöcke von A verworfen.

Das bedeutet auch, dass Sie nicht jede Transaktion in dem Moment akzeptieren sollten, in dem sie der Blockchain hinzugefügt wird, weil es möglich ist, dass der Block, der diese Transaktion enthält, verworfen wird. Je größer also die Transaktionen sind, desto mehr Blöcke sollten Sie warten, um das Risiko zu minimieren, dass Ihre Transaktion in einem Teil der Blockchain ist, der verworfen wird, weil eine andere, längere Blockchain gefunden wird.
Proof of Stake
Proof of Stake (Anteilsnachweis) basiert auf der Annahme, dass Nutzer, die viel Geld in einem Netzwerk haben, diesem nicht schaden wollen, weil ihr Geld dann weniger wert wäre. Mit Proof of Stake können Benutzer eine Node verwenden, um einen Teil oder ihr gesamtes Guthaben zu “locken” (einschließen). Diese gelockten Gelder sind gesperrt und die Chance, dass sie als Anführer ausgewählt werden, ist gleich dem Anteil ihres Einsatzes im Vergleich zum Einsatz des gesamten Netzwerks. Als Anführer können sie, genau wie bei POW, entscheiden, welche Transaktionen in den neuen Block aufgenommen werden. Alle Nodes werden den Block neuen Block auf seine Gültigkeit überprüfen und dann validieren. POS scheint ein viel einfacheres Konzept zu sein und benötigt im Vergleich zu POW weniger Energie, ist aber schwieriger zu Implementieren. Beide Systeme haben Vor- und Nachteile und führen zu unterschiedlichen Verhaltensweisen des Netzwerks, welche wir später besprechen werden.
Was sind die Anreize, dem Netzwerk als Miner/Staker Ressourcen zur Verfügung zu stellen?
Um diese Frage zu beantworten, wird die letzte Komponente eines gültigen Blocks relevant: der Blockreward (Blockbelohnung). Wenn Sie einen neuen Block erstellen, dürfen Sie auch eine vordefinierte Menge an neuen Token erstellen und diese zu einer beliebigen Adresse hinzufügen. Diese Blockbelohnung ist die Art und Weise, wie Blockproduzenten (d.h. Miner/Staker) Geld verdienen und auch der Grund, warum Miner so genannt werden: Sie “schürfen” neue Token.
Zusätzlich können Sie wählen, ob Sie eine Transaktionsgebühr zahlen möchten, wenn Sie eine Transaktion erstellen, um sicherzustellen, dass der Blockproduzent Ihre Transaktion in den Block aufnimmt. Wenn es mehr neue Transaktionen gibt, als Platz im Block vorhanden ist (Nachfrage > Angebot), nehmen die meisten Blockproduzenten nur die Transaktionen mit den höchsten Transaktionsgebühren auf, da sie so ihr Einkommen erhöhen. Das kann in Zeiten der Überlastung zu explodierenden Transaktionsgebühren führen. Beliebte Blockchains wie Bitcoin und Ethereum befinden sich ständig in diesem überlasteten Zustand (mehr neue Transaktionen als Platz im Block). Klicken Sie hier für eine Visualisierung, wie viele Transaktionen derzeit darauf warten, in Bitcoin und Ethereum verarbeitet zu werden und hier für ein Diagramm ihrer historischen Transaktionsgebühren.
Mit einer Möglichkeit, einen Anführer auszuwählen, der neue Blöcke erstellen darf, ist unser System nun in der Lage, sicherzustellen, dass alle Nodes ihre Blockchain-Kopien auf die gleiche Weise aktualisieren, d.h. einen Konsens erreichen. Mit anderen Worten kann unser System :
☑ sicherstellen, dass sich alle im Netzwerk über den Ledger-Status einig sind (wer welchen Kontostand hat), d. h. Konsens erreichen.
Da wir alle Anforderungen, die wir zu Beginn genannt haben, erreicht haben
☑ alle erforderlichen Daten sicher speichern
☑ Transaktionen senden und empfangen
☑ sicherstellen, dass alle Transaktionen gültig sind
☑ sicherstellen, dass sich alle im Netzwerk über den Zustand des Ledgers einig sind (wer welchen Kontostand hat), d. h. einen Konsens erreichen
ist unser vorgeschlagenes System nun als Währung verwendbar.
Bis jetzt haben wir jedoch angenommen, dass die Nodes und Blockproduzenten ehrlich handeln. Das ist eine sehr unrealistische Annahme, daher müssen wir sicherstellen, dass nichts Schlimmes passiert, wenn es einige unehrliche Teilnehmer im Netzwerk gibt. Es ist sehr schwer (vielleicht unmöglich) zu garantieren, dass es keine theoretische Möglichkeit gibt, unser Netzwerk anzugreifen, aber wir können sicherstellen, dass ehrliches Verhalten gefördert und unehrliches Verhalten bestraft wird. Unser Ziel ist es also, sicherzustellen, dass ein betrügerischer Teilnehmer keinen Vorteil dafür erhält, dass er unehrlich ist.
Da Nodes und Blockproduzenten die einzigen Teilnehmer im Netzwerk sind, schauen wir uns an, was passiert, wenn sie betrügerisch handeln.
Warum sollte ein Blockproduzent ehrlich sein und was passiert, wenn er unehrlich ist?
Miner/Staker sind die Blockproduzenten in unserem Netzwerk. Sie können versuchen, auf verschiedene Weise zu betrügen:
- widersprüchliche/ungültige Transaktion zum Block hinzufügen
- keine Transaktionen zum Block hinzufügen
- sich selbst eine größere Blockbelohnung geben (mehr neue Token erzeugen, als erlaubt sind)
- einen “Doublespend” versuchen (versuchen, die eigenen Token mehrfach auszugeben), indem sie heimlich die längste Kette erstellen
Wenn die Blockproduzenten eine ungültige/widersprüchliche Transaktion zum Block hinzufügen oder mehr Token generieren, als erlaubt sind, wird dass von den Nodes erkannt, wenn sie den neuen Block auf seine Gültigkeit prüfen und der Block wird einfach ignoriert. Das bedeutet, dass der Blockproduzent seine normale Blockbelohnung nicht erhält und somit Geld verliert, weil er Ressourcen verschwendet und keine Belohnung erhält. In einem POS-System könnte man den Staker noch mehr bestrafen, indem man ihm die eingeschlossenen Token wegnimmt, wenn die Nodes betrügerisches Verhalten erkennen.
Das Erzeugen leerer Blöcke ohne Transaktionen ist ein weiterer Angriffsvektor. Wenn jeder Blockproduzent so handeln würde, wäre das Netzwerk nutzlos, da es unmöglich wäre, Transaktionen zu senden/empfangen, wenn sie nie in einem Block enthalten sind. Dieses Problem kann durch das Hinzufügen von Transaktionsgebühren gelöst werden. Transaktionsgebühren schaffen Anreize für ehrliches Verhalten, da Blockproduzenten, die Ihre Transaktionen zu ihrem Block hinzufügen, mehr Geld verdienen. Daher ist es sehr unwahrscheinlich (aber nicht unmöglich), dass alle Blockproduzenten Ihre Transaktion ignorieren werden, wenn Sie eine ausreichend hohe Transaktionsgebühr hinzufügen. Wenn es zumindest einige ehrliche Blockproduzenten gibt, wird das Netzwerk immer noch funktionsfähig sein, wenn auch ein bisschen langsamer.
Aufgrund der “die längste Kette gewinnt” Regel wäre es möglich, dass ein böswilliger Blockproduzent versucht, die längste Blockchain zu erstellen, ohne die Blöcke sofort im Netzwerk zu veröffentlichen.

Dies würde ihm erlauben, alle Transaktionen in den verworfenen Blöcken rückgängig zu machen, einschließlich seiner eigenen. Mit anderen Worten: Er könnte sein Geld wieder ausgeben. Um erfolgreich zu sein, bräuchte der böswillige Blockproduzent mehr als 50 % der Hash-Rate/der eingeschlossenen Tokens des gesamten Netzwerks. In Netzwerken, die bereits viel Hash-Rate/eingeschlossene Token haben, ist es sehr schwer und teuer, so viel Hash-Rate/Token zu bekommen, und daher ist dieser Angriff sehr unwahrscheinlich, wenn die Ressourcen richtig verteilt sind.
Was passiert, wenn die Nodes unehrlich sind?
Nodes sind für das Speichern und Aktualisieren der Blockchain verantwortlich. Eine böswillige Node könnte versuchen, das Netzwerk anzugreifen, indem sie Transaktionen ändert, die bereits in der Blockchain gespeichert sind. Andere Nodes würden dieses unehrliche Verhalten erkennen, weil sich der Hash dieses Blocks ebenfalls ändern würde, wenn man eine Transaktion ändert. Daher würden alle ehrlichen Nodes die böswillige Node einfach ignorieren und ihre eigene (gültige) Kopie der Blockchain behalten. Dadurch würden 2 Versionen der Blockchain entstehen, die ehrliche Version und die Version des Angreifers. Wenn es 2 Versionen einer Blockchain gibt, nennt man das einen “Fork ”und jeder Teilnehmer des Netzwerks kann sich aussuchen, welche Node er nutzen möchte und somit welche Version des Netzwerks er nutzen möchte. Da jeder sehen kann, dass die böswillige Node betrogen hat, werden ehrliche Teilnehmer des Netzwerks immer den ehrliche Fork der Blockchain wählen und somit ist das Netzwerk funktionsfähig, solange es zumindest einige ehrliche Nodes gibt.
Dies bedeutet, dass das vorgeschlagene System nicht nur in der Lage ist
☑ alle benötigten Daten sicher zu speichern
☑ Transaktionen zu senden und zu empfangen
☑ sicherzustellen, dass alle Transaktionen gültig sind
☑ sicherzustellen, dass sich alle im Netzwerk über den Zustand des Ledgers einig sind (wer welchen Kontostand hat), d.h. einen Konsens erreichen
sondern stellt zusätzlich sicher, dass
☑ Sie keinen Zwischenhändlern vertrauen müssen
Daher lösen Blockchains erfolgreich das Problem der Verarbeitung, Speicherung und des Austauschs von Daten auf vertrauenswürdige Art und Weise ohne die Notwendigkeit von Zwischenhändlern. Nachdem wir nun verstanden haben, wie Blockchains funktionieren, lassen Sie uns einen Blick auf ihre Eigenschaften werfen:
Vorteile von Blockchains im Vergleich zu zentralisierten Lösungen:
- Der größte und wichtigste Vorteil von Blockchains ist, dass man Zwischenhändlern oder Vermittlern nicht vertrauen muss.
- Wenn die Ressourcen (Hash-Rate oder eingeschlossene Gelder) richtig verteilt und hoch genug sind, dass ein Akteur nicht einfach die Mehrheit bekommen kann, sind Blockchains sehr sicher.
- Währungsspezifisch: Sie haben eine vordefinierte Geldpolitik (Inflations-/Deflationsraten etc.), die sich später nur sehr schwer (unmöglich, wenn sich die Nodes nicht einigen) ändern lässt. So können die Benutzer einem Netzwerk mit ihrer bevorzugten Geldpolitik beitreten und sicher sein, dass sie sich nicht plötzlich ändert.
Nachteile von Blockchains im Vergleich zu zentralisierten Lösungen:
- Da Blockchains ein verteiltes Netzwerk sind, muss jede Node die gleichen Informationen speichern. Dies ist im Vergleich zu einer zentralen Datenbank sehr ineffizient.
- Aufgrund der begrenzten Blockgröße und der vordefinierten Zeitintervalle für neue Blöcke sind Blockchains nicht sehr skalierbar und teuer. Große Blöcke führen zu einer Zentralisierung der Nodes, da es teuer wäre, Nodes zu betreiben. Zu kurze Zeitintervalle zwischen den Blöcken führen ebenfalls zu einer Node-Zentralisierung, da man eine schnelle Internetverbindung und viel Rechenleistung (zur Validierung der Blöcke) benötigt, wenn neue Blöcke sehr schnell erstellt werden. Wie wir bereits besprochen haben, ist eine Zentralisierung schlecht, weil man den verbleibenden Nodes vertrauen muss. Und wenn man jedem vertrauen muss, hat man den Hauptvorteil der Blockchain verloren und es bleiben nur noch ihre Nachteile. Es gibt viele “second Layer” Lösungen, die versuchen, das Problem der Skalierbarkeit zu lösen, dabei aber neue Kompromisse einführen (z. B. sind sie unsicherer oder zentralisierter als die Blockchain).
- Blockchains haben mit der Einführung von Transaktionsgebühren einen Interessenkonflikt zwischen Blockproduzenten und Nutzern des Netzwerks geschaffen. Blockproduzenten wollen hohe Gebühren, um mehr Einkommen zu generieren, während Nutzer niedrige Gebühren wollen, um Geld zu sparen. Blockproduzenten könnten versuchen, die Gebühren zu erhöhen, indem sie Transaktionen mit niedrigen Gebühren nicht in einen Block aufnehmen. Sie können auch die Reihenfolge der Transaktionen in einem Block diktieren, wodurch sie eine für sie günstige und für den Benutzer ungünstige Reihenfolge wählen können. Dieser Prozess wird Miner Extractable Value (MEV) genannt, falls Sie mehr darüber lesen wollen.
- Wenn die Ressourcen (Hash-Rate oder eingeschlossene Gelder) schlecht verteilt sind, d. h. zentralisiert oder zu klein, sind Blockchains entweder nicht sehr sicher oder man muss sich auf Dritte verlassen, was die Blockchain unbrauchbar machen würde.
- POW-spezifisch: Verschwendung von Ressourcen. Der Mining-Prozess verbraucht eine Menge Energie zum lösen nutzloser Rätsel, um sich auf einen Anführer (Blockproduzenten) zu einigen. Die Energie ist nicht komplett verschwendet, da sie zur Sicherung des Netzwerks verwendet wird, aber wenn man eine andere Lösung finden kann, die genauso sicher ist und nicht so viel Energie benötigt, wäre diese Lösung viel besser.
- POS-spezifisch: Zentralisierungsrisiko aufgrund der Blockbelohnung. In diesem System werden die Reichen immer reicher (wenn sie ihre Token einschließen), weil sie einen höheren Anteil an den eingeschlossenen Token haben und daher eine höhere Wahrscheinlichkeit haben, die Anführer-Auswahl zu gewinnen und die Blockbelohnung zu erhalten. Wenn sie als Anführer ausgewählt wurden, können sie die Blockbelohnung erneut einschließen, was ihre Wahrscheinlichkeit, die Anführer-Auswahl zu gewinnen und die Blockbelohnung zu erhalten, weiter erhöht.
Blockchain Fazit
Wenn Sie eine Blockchain verwenden, müssen Sie sich nicht auf Zwischenhändler verlassen, verlieren aber Effizienz und niedrige Betriebskosten. Dieser Kompromiss kann sich für einige Anwendungsfälle lohnen, in denen Sie wirklich keiner zentralen Partei vertrauen wollen, aber Sie sollten sorgfältig abwägen, was Sie brauchen, bevor Sie sich für eine Blockchain entscheiden.
Die meisten Nachteile (3. — 6.) resultieren aus der Anführer-Auswahl. Nachteil 2. ergibt sich aus der linearen Natur der Transaktionsverarbeitung und der begrenzten Blockgröße. Nachteil 1. kann nicht gelöst werden, weil die einmalige Speicherung von Daten in einer zentralen Datenbank immer effizienter (und unsicherer) sein wird als die Speicherung in mehreren verteilten Datenbanken.
Wenn wir einen Weg finden können, Transaktionen asynchron zu verarbeiten und neue Transaktionen zu unserer Datenstruktur hinzuzufügen, ohne dafür einen Anführer wählen zu müssen, können wir so ziemlich alle Probleme (2. — 6.) von Blockchains lösen. Das ist genau das, was IOTA mit dem Tangle macht.
Was ist IOTAs Tangle, und wie löst es die Nachteile von Blockchains?
Wir werden über die dezentrale Version von IOTA und ihre Funktionsweise im aktuellen Testnetz sprechen. Zum Zeitpunkt des Schreibens dieses Artikels läuft das Mainnet noch mit einem zentralen Koordinator (kontrolliert von der IOTA Foundation) und ist daher nicht dezentralisiert. Allerdings ist die Macht des Koordinators begrenzter als viele denken. Der Koordinator kann KEINE ungültigen Transaktionen erstellen oder Transaktionen nach ihrer Erstellung manipulieren. Das einzige, was er tun könnte, ist, bestimmte Transaktionen nicht zu genehmigen und somit das Netzwerk zu zensieren. Ich persönlich bezweifle, dass die IOTA Foundation so etwas tun würde, da es ihrer Reputations viel zu viel schaden würde. Jedoch bleibt die Tatsache bestehen, dass sie es tun könnten, solange der Koordinator existiert. Aber da wir über die dezentrale Version von IOTA sprechen, möchte ich nicht mehr Zeit damit verbringen, über den Koordinator zu sprechen.
TLDR:
Der Tangle ist die zugrunde liegende Datenstruktur einer Kryptowährung namens IOTA. Er verwendet die Struktur eines gerichteten azyklischen Graphen (Directed Acyclic Graph, DAG) anstelle einer Blockchain, um die Ineffizienzen der aktuellen Blockchain-Designs zu überwinden und führt eine neue Art der Konsensfindung ein. Jede Transaktion wird als ein Knoten im Graphen dargestellt. Die Knoten sind durch eine kryptografischen Hash-Funktion miteinander verbunden, die sicherstellt, dass die Transaktionen nicht verändert werden können. Diese Verbindungen zwischen den Knotenpunkten werden als Kanten bezeichnet. Um eine neue Transaktion zu erstellen, muss man 2–8 unbestätigte Transaktionen (Tips genannt) auf ihre Gültigkeit prüfen und kann dann die neue Transaktion an diese Transaktionen anhängen, wodurch 2–8 neue Kanten zum DAG hinzugefügt werden. Diese neu angehängte Transaktion ist nun selbst ein Tip und kann von anderen, die eine Transaktion senden wollen, validiert werden. Da es jedem erlaubt ist, neue Transaktionen anzuhängen und somit die DAG zu aktualisieren, löst dieser Ansatz alle Nachteile von Blockchains, die sich aus der Anführer-Auswahl ergeben, da es nicht notwendig ist, überhaupt einen Anführer auszuwählen. Außerdem können gleichzeitig viele verschiedene Transaktionen angehängt werden. Diese asynchrone Art der Verarbeitung von Transaktionen führt zu einem viel skalierbarerem System. Der resultierende DAG wird öffentlich geteilt, sodass jeder am Netzwerk teilnehmen und die Gültigkeit der Transaktionen überprüfen kann.
Was ist der Tangle?
Der Tangle ist die zugrunde liegende Datenstruktur einer Kryptowährung namens IOTA. Er verwendet die Struktur eines gerichteten azyklischen Graphen (Directed Acyclic Graph, DAG) anstelle einer Blockchain, um die Ineffizienzen der aktuellen Blockchain-Designs zu überwinden. Ein DAG ist ein Graph, der aus Knoten besteht, die durch Kanten verbunden sind. Kanten sind gerichtet, d.h. sie können nur in eine Richtung gehen. Azyklisch bedeutet, dass es keine geschlossenen Schleifen im Graphen gibt, wenn man der Richtung der Kanten folgt.

Im Tangle besteht jeder Knoten des Graphen aus einer einzelnen Nachricht. Diese Nachricht kann entweder eine Transaktion in Form von “Alice zahlt Bob 20¢” oder beliebige andere Daten enthalten. Ähnlich wie im Abschnitt über Blockchains werden wir nur über Transaktionsnachrichten sprechen, daher werde ich sie für den Rest des Artikels einfach Transaktionen nennen. Die Kanten im Tangle sind Hash-Pointer(mehr dazu hier, falls Sie den Blockchain-Teil übersprungen haben), was sicherstellt, dass die Transaktionen nicht verändert werden können. Jede Transaktion ist mit 2–8 älteren Transaktionen verbunden. Die Transaktionen, an die Sie Ihre neue Transaktion anhängen, werden Parents (Eltern) genannt. Der Tangle beginnt mit einer einzigen Transaktion, die Genesis-Transaktion genannt wird. Diese Genesis-Transaktion hat den gesamten Token-Bestand von IOTA erstellt (es werden nie neue Token erstellt) und ist die einzige Transaktion, die keine Parents hat.
Das Bild unten zeigt, wie das Tangle aussieht, wenn jede Transaktion mit 2 Parents verbunden ist.

Wenn Sie eine Live-Visualisierung des wachsenden Tangles sehen möchten, klicken Sie hier.
Wie kann man Geld senden und empfangen?
IOTA verwendet auch private Keys und public Keys, um Geld zu senden und zu empfangen. Wenn Sie den Blockchain-Abschnitt übersprungen haben, werden private und public Keys hier erklärt. Nur um es noch einmal zu wiederholen: Bewahren Sie Ihren privaten Key (bei IOTA auch Seed genannt) immer sicher auf und teilen Sie ihn mit niemandem! Ohne ihn verlieren Sie den Zugriff auf Ihr Guthaben und wenn Sie ihn teilen, erhält die Person, mit der Sie ihn geteilt haben, Zugriff auf Ihr Guthaben.
Sie benötigen Ihren private Key, um ausgehende Transaktionen zu signieren, und Sie verwenden Ihren public Key als Adresse, an die andere Ihnen Geld senden können.
Um eine neue Transaktion auszustellen, müssen Sie 2–8 (vorzugsweise) unbestätigte Transaktionen, sogenannte Tips, auf ihre Gültigkeit prüfen und können dann Ihre neue Transaktion an diese Transaktionen anhängen, wodurch dem DAG 2–8 neue Kanten hinzugefügt werden. Zusätzlich müssen Sie eine gewisse Menge an Adaptive Proof of Work (APOW, später genauer erklärt) durchführen.
Diese neu angehängte Transaktion ist nun selbst ein Tip und kann von anderen, die eine Transaktion senden möchten, validiert werden. Im Tangle dürfen alle gleichzeitig Transaktionen anhängen (wenn sie genügend Zugriffsmana haben, dazu später mehr). Diese asynchrone Art der Transaktionsverarbeitung führt zu einem sehr skalierbaren System. Da es jedem erlaubt ist, Transaktionen anzuhängen und somit den Tangle zu aktualisieren, braucht man keine Miner/Staker. Der Wegfall der zentralen Blockproduzenten bedeutet auch, dass man die Transaktionsgebühren loswerden kann, weil man sie nicht als Anreiz für die Blockproduzenten braucht. Der Anreiz, andere Transaktionen zu validieren, besteht darin, dass man es tun muss, um seine eigene Transaktion zu senden.
Wie können wir sicherstellen, dass alle Transaktionen gültig sind?
In IOTA werden alle Transaktionen im Tangle von allen Nodes, die am Netzwerk teilnehmen, auf ihre Gültigkeit geprüft.
Eine Transaktion ist gültig, wenn:
- Eingabebetrag = Ausgabebetrag
- Eingabe-Token nicht bereits irgendwo anders ausgegeben wurden
- der Ersteller die Transaktion mit seinem private Key signiert hat
- enthält mindestens 1 starken Parent und 2–8 Parents in Summe
- enthält Nonce mit korrekter Difficulty
- enthält einen Zeitstempel, der die Altersprüfung der Parents besteht
Diese Liste hat einige neue Konzepte eingeführt, über die wir sprechen müssen. Beginnen wir mit den Arten von Parents. Ein Parent kann entweder stark oder schwach sein. Parents sind als stark gekennzeichnet, wenn Sie alle Transaktionen in ihrem Past Cone (Vergangenheitskegel) mögen (d.h. als gültig betrachten). Der Vergangenheits-Kegel einer Transaktion umfasst alle Transaktionen vor ihr, die direkt oder indirekt (über die Parents der Transaktion und deren Parents, etc.) mit ihr verbunden sind. Analog dazu umfasst der future cone (Zukunftskegel) einer Transaktion alle Transaktionen nach ihr, die direkt oder indirekt mit ihr verbunden sind. Parents werden als schwach markiert, wenn es eine oder mehrere Transaktionen in ihrem Vergangenheitskegel gibt, die Sie nicht mögen (d. h. als ungültig betrachten). Die Anforderung, mindestens einen starken Parent zu haben, stellt sicher, dass die Transaktion eine konsistente Historie ohne Konflikte hat.
Das folgende Bild zeigt ein Beispiel für einen Tangle mit starken und schwachen Parents. Beachten Sie, dass nicht alle Parents der einzelnen Transaktionen angezeigt werden. Transaktion D wird vom Protokoll abgelehnt, aber erst, nachdem E und F sie bereits referenziert haben. E und F sind beide gültig, also werden sie von G und H aufgegriffen, allerdings als schwache Parents, da G und H beide den vergangenen Kegel von E und F nicht mögen.

Der Grund, warum das Konzept der starken und schwachen Parents eingeführt wurde, wird später erklärt.
Die Altersprüfungen der Parents sind:
- Der Zeitstempel des Parents ist älter als der Zeitstempel der Transaktion, die Sie anhängen möchten.
- Der Zeitstempel des Parents ist nicht älter als ein Schwellenwert X.
Die erste Prüfung stellt sicher, dass die Transaktionen in der richtigen Reihenfolge verarbeitet werden, und die zweite Prüfung wird benötigt, um das Pruning zu ermöglichen (mehr zum Pruning später).
Was ist Mana?
Um zu verstehen, wie viele Komponenten des IOTA-Protokolls funktionieren, müssen wir zunächst ein neues Konzept namens Mana einführen. Mana ist der Sybil-Schutzmechanismus von IOTA, d.h. er verhindert, dass ein Angreifer unzulässigen Einfluss auf das Netzwerk erlangt, indem er mehrere Nodes erstellt (wie POW und POS in Blockchains). Wenn eine Werttransaktion verarbeitet wird, wird Mana an eine vom Token-Inhaber gewählten Node verpfändet. Die Menge des verpfändeten Manas ist proportional zur Menge der in der Transaktion übertragenen Token. Mana und die Token, die das Mana erzeugt haben, sind miteinander verbunden. Das Mana der Token kann jeweils nur an eine Node verpfändet werden.
Lassen Sie uns diesen Vorgang an einem Beispiel demonstrieren: Angenommen, Alice sendet eine Transaktion an Bob und verpfändet das Mana an Node A. Nun verwendet Bob die Token, die er von Alice erhalten hat, und sendet sie an Charles. Das bedeutet, dass das durch die Token erzeugte Mana von Node A entzogen und an einen anderen Node B (von Bob gewählt) verpfändet wird.
Die einzige Möglichkeit, Mana zu erhalten, besteht also darin, einen Token-Inhaber davon zu überzeugen, es Ihnen zu verpfänden oder selbst Token zu kaufen. Daher kann Mana als Delegated Proof of Token Ownership (delegierter Nachweis des Token-Besitzes) angesehen werden. Da Nodes Mana benötigen, um den Konsens zu beeinflussen, bietet es einen angemessenen Sybil-Schutz, da es schwer ist, Mana in beliebigen Mengen zu erwerben ist.
Es gibt 2 Arten von Mana, access Mana (Zugriffs-Mana) und consensus Mana (Konsens-Mana). Nodes benötigen access Mana, um Transaktionen durchführen zu können. Consensus Mana wird von den Nodes für viele verschiedene Aufgaben verwendet, z. B. für die Konsensfindung, die Suche nach geeigneten Nachbarn für Ihre Node und die Finalisierung von Transaktionen. Eine Transaktion gilt als finalisiert, wenn genügend neue Transaktionen direkt oder indirekt auf sie verweisen, so dass die Wahrscheinlichkeit, dass diese Transaktion verworfen wird, sehr gering ist. Um zu entscheiden, ob eine Transaktion finalisiert ist, wird eine Eigenschaft namens approval weight (Zustimmungsgewicht) gemessen. Das approval weight einer Transaktion ist proportional zum consensus Mana in ihrem future cone (Zukunftskegel). Das heißt, je mehr Transaktionen (gewichtet mit dem consensus Mana der ausstellenden Node) sich im Zukunftskegel einer Transaktion befinden, desto sicherer können Sie sein, dass Ihre Transaktion von allen Nodes akzeptiert wird.
Um eine maximale Flexibilität des Protokolls zu gewährleisten, ist es erlaubt, das access und consensus Mana einer Transaktion an zwei verschiedene Nodes zu verpfänden.
Wie beheben wir Konflikte?
Die Konfliktbehandlung im Tangle ist deutlich komplexer als in Blockchains. Der Grund dafür ist, dass Blockchains eine feste Reihenfolge der Transaktionen haben. Da Blöcke nacheinander hinzugefügt werden und der Blockproduzent die Reihenfolge der Transaktionen innerhalb eines Blocks vorgeben darf, sind sich alle über die Reihenfolge der Transaktionen einig. Wenn Sie in einem solchen System versuchen, Ihr Geld ein zweites Mal auszugeben, ist es für jeden im Netzwerk offensichtlich, welche Transaktion zuerst kam und somit gültig ist.
Der Tangle hat keine feste Reihenfolge der Transaktionen, so dass wir einen anderen Weg finden müssen, um Konflikte zu behandeln. Aber lassen Sie uns zunächst verstehen, warum der Tangle diese recht nützliche Eigenschaft nicht hat. Nodes in einem dezentralen Netzwerk sind per Definition räumlich getrennt (verteilt). Da mehrere Nodes gleichzeitig Transaktionen erstellen dürfen und Informationen nur mit einer maximalen Geschwindigkeit übertragen werden können, werden Nodes an verschiedenen Orten die Transaktionen in einer anderen Reihenfolge sehen. Wenn also ein böswilliger Akteur in zwei Transaktionen die selben Token zur gleichen Zeit über zwei verschiedene Nodes an unterschiedlichen Orten ausgibt, werden die Nodes des Netzwerks unterschiedliche Meinungen darüber haben, welche Transaktion zuerst kam. Wenn es zu Konflikten kommt, teilt sich der Tangle in verschiedene branches (Zweige). Das bedeutet, dass das IOTA-Protokoll in der Lage sein muss, 2 Dinge zu tun:
- Entscheiden, welche branches überleben werden (nur einer der kollidierenden branches kann überleben)
- Diese Entscheidung für neue Nodes, die dem Netzwerk später beitreten, festhalten
Dies wird durch einen Abstimmungsmechanismus namens On Tangle Voting (OTV) erreicht:
Die Nodes stimmen indirekt für einen branch, indem sie ihre Transaktion an diesen branch anhängen. Ehrliche Nodes werden ihre Transaktionen an den branch anhängen, den sie zuerst sehen, oder an den branch mit dem höchsten approval weight, wenn sie mehrere branches sehen. Wenn sie feststellen, dass es einen anderen branch gibt, der ein höheres approval weight hat als der branch, für den sie gestimmt haben, hängen sie eine neue Transaktion an diesen neuen branch an und ihr approval weight wird vom vorherigen branch abgezogen. Das approval weight eines branches ist im Wesentlichen die Menge an consensus Mana, die von den Nodes gehalten wird, die ihre letzte Transaktion an diesen branch angehängt haben. Wenn das approval weight eines branches um mehr als 66% über dem aller widersprüchlichen branches liegt, wird dieser branch als gültig und alle anderen branches als abgelehnt betrachtet. Nodes, die dem Netzwerk nach dem Konflikt beitreten, wissen anhand ihres approval weights, welcher branch gültig ist.
Gültige Transaktionen, die an einen abgelehnten branch angehängt wurden, können als weak parents in den Hauptbranch aufgenommen werden, sodass Sie diese Transaktionen nicht erneut ausstellen müssen.
Veranschaulichen wir diesen Vorgang anhand eines Beispiels: Alice hat 5 MIOTA. Zuerst sendet sie diese 5 MIOTA über Transaktion A an Bob. Dann sendet Alice versehentlich (oder absichtlich) dieselben 5 MIOTA in Transaktion B an Charles. Jetzt haben wir zwei widersprüchliche Transaktionen, A und B, und der Tangle teilt sich in drei branches: branch 1, der A enthält, branch 2, der B enthält, und der Hauptbranch, der alle bestätigten Transaktionen enthält.

Wenn die Nodes den Konflikt erkennen, stimmen sie für den branch, den sie bevorzugen, indem sie ihre Transaktion an diesen branch anhängen. In diesem Beispiel lehnt das Protokoll branch 1 ab und bestätigt branch 2. Das bedeutet, dass branch 2 in den Hauptbranch eingefügt wird, da es keine Konflikte mehr gibt.
Spam-Schutz
Jede DLT braucht eine Form von Spam-Schutz, sonst könnte ein böswilliger Akteur das gesamte Netzwerk mit nutzlosen Transaktionen überfluten und es für ehrliche Teilnehmer unbrauchbar machen. Blockchains haben einen impliziten Spam-Schutz, der durch die Transaktionsgebühren erzwungen wird.
Das IOTA-Protokoll hat keine Transaktionsgebühren und benötigt daher einen expliziten Spamschutz. IOTAs Spam-Schutz besteht aus einer Kombination von access Mana und Adaptive Proof of Work (APOW). Um eine neue Transaktion auszustellen, muss die ausstellende Node einen kleinen Proof of Work berechnen. Ähnlich wie bei Blockchains besteht der POW darin, eine Nonce zu finden, so dass der Hash der Transaktion mit einer durch die Difficulty bestimmten Anzahl von Nullen beginnt. Wenn eine Node versucht, in einem kurzen Zeitintervall viele aufeinanderfolgende Transaktionen auszugeben, muss sie ein zunehmend schwierigeres Rätsel lösen — was es unmöglich macht, eine Flut von Transaktionen zu erzeugen. Dieser Mechanismus dient als Notbremse bei Spam-Angriffen, indem er die Rate der Transaktionen, die eine Node erzeugen kann, verlangsamt. Die folgende Grafik zeigt, wie die APOW-Anforderung mit zunehmender Transaktionsmenge steigt und wie die Anforderung sinkt, wenn die Transaktionsmenge sinkt:

Um zu verstehen, wie gering der POW-Bedarf von IOTA ist, wenn Sie das Netzwerk nicht spammen, vergleichen wir es mit Bitcoin:
Zum Zeitpunkt der Erstellung dieses Artikels hat Bitcoin einen geschätzten jährlichen Energieverbrauch von 80,5 TWh (laut der University of Cambridge). Unter der Annahme von 7 TPS (Transaktionen pro Sekunde), würde das einen Verbrauch von 364kWh ≈ 1,3104 GJ (Gigajoule) für eine einzige Bitcoin-Transaktion bedeuten. Das bedeutet, dass eine einzige Bitcoin-Transaktion mehr Energie als ein durchschnittlicher Zwei-Personen-Haushalt in Deutschland in einem ganzen Monat (≈269 kWh, Quelle) verbraucht. Laut diesem Blogpost der IF beträgt der Energieverbrauch von einer IOTA-Transaktion mit einfachem POW ≈4 J (Joule). Das bedeutet, dass wir mit der Energie, die eine einzige Bitcoin-Transaktion verbraucht, 327 Millionen IOTA-Transaktionen versenden könnten. Dieser Vergleich wird oft kritisiert, weil Bitcoin nicht nur POW verwendet, um Transaktionen zu senden, sondern auch um das Netzwerk vor Angriffen zu schützen. Um den Vergleich realistischer zu machen, werde ich versuchen, den zusätzlichen Energieverbrauch des IOTA-Netzwerks zu berechnen. Um dies zu tun, muss ich einige Annahmen machen: Nehmen wir an, das IOTA-Netzwerk besteht aus 1000 Nodes, die auf einem VPS laufen und jeweils 10W verbrauchen, und die Netzwerklast beträgt 200 TPS. Dies führt zu einem zusätzlichen Energieverbrauch von 10*1000/200=50 J/Tx, d.h. das Netzwerk würde zusätzlich 50 J benötigen, um eine Transaktion zu validieren. Somit würde der Energieverbrauch des IOTA-Netzwerks zur Verarbeitung und Validierung einer Transaktion 54 J betragen. Diese Zahl würde mit der Anzahl der Nodes steigen und mit der TPS des Netzwerks sinken. Das IOTA-Protokoll würde also immer noch ≈24 Millionen Mal weniger Energie als Bitcoin benötigen, um eine Transaktion zu verarbeiten und das Netzwerk zu sichern.
Access Mana wird von IOTAs congestion control algorithm (Überlastungssteuerungsalgorithmus) verwendet. Eine Überlastung tritt auf, wenn mehr neue Transaktionen im Netzwerk veröffentlicht werden, als es bewältigen kann. Ohne eine angemessene Überlastungskontrolle kann das Netzwerk übersättigt werden und nicht mehr funktionieren, da die Nodes ihren Nachbarn mehr Transaktionen weiterleiten können, als von ihnen verarbeitet werden kann. Daher ist der Gesamtdurchsatz des Netzwerks (informell als Transaktionen pro Sekunde bezeichnet) letztlich durch die verfügbaren Ressourcen wie Internetverbindung, Rechenleistung und Speicherkapazität begrenzt. Um diese Übersättigung zu verhindern, entscheidet der congestion control algorithm, basierend auf dem access Mana der ausstellenden Node, welche Transaktionen weitergeleitet werden. Wenn eine Node mehr Transaktionen weiterleitet, als durch ihr access Mana erlaubt ist, werden seine Nachbarn diese trotzdem nicht schneller als die erlaubte Rate verarbeiten. Wenn Sie also einer Node access Mana verpfänden, stellen Sie ihr effektiv einen Teil der Netzwerkbandbreite zur Verfügung. Es ist wichtig zu beachten, dass dieser Algorithmus nur ins Spiel kommt, wenn das Netzwerk überlastet ist. Derzeit gibt es etwa 20–50 TPS auf IOTAs Mainnet und es kann 1000+ TPS verarbeiten, so dass dieser Algorithmus wahrscheinlich in der unmittelbaren Zukunft nicht benötigt wird.
Die folgende Animation zeigt, wie das access Mana die Fähigkeit einer Transaktion beeinflusst, in den Tangle aufgenommen zu werden. Transaktionen, die von Nodes mit mehr access Mana (die größeren Sechsecke) ausgegeben werden, gelangen in Zeiten der Überlastung schneller in den Tangle.

Was passiert, wenn ein Nodebetreiber bösartig ist?
Eine böswillige Node kann dem Netzwerk nicht wirklich schaden, solange sie weniger als 50 % des consensus Manas hält. Adaptives POW und der congestion control algorithm verhindern eine Übersättigung des Netzwerks und OTV stellt sicher, dass man sein Geld nicht doppelt ausgeben kann, wenn man weniger als 51% des consensus Manas hält. Da es in IOTA keine Mining-/Staking-Belohnungen gibt, ist es sehr unwahrscheinlich, dass jemals jemand in der Lage sein wird, so viel consensus Mana zu akkumulieren, da man dazu 51% aller Token (oder genügend Benutzer, die Ihnen ihr consensus Mana verpfänden) benötigen würde.
Was ein böswilliger Benutzer tun könnte, ist, das Netzwerk bis zu dem Punkt zu spammen, an dem der congestion control algorithm einsetzt, und dann zu versuchen, access Mana an Nodes zu verkaufen, die einige Transaktionen erstellen möchten, aber nicht genug access Mana haben. Für diesen Angriff bräuchte er eine Menge access Mana, denn je mehr access Mana eine Node hat, desto weniger steigt das APOW für jede Transaktion, wenn man das Netzwerk spammt. Die genaue Anzahl an access Manas, die man benötigt, um diesen Angriff erfolgreich durchzuführen, hängt von den Protokollparametern (die ich noch nicht gesehen habe) und der allgemeinen TPS des Netzwerks ab. Es ist auch wichtig zu bedenken, dass, selbst wenn dieser Angriff erfolgreich ist, ehrliche Benutzer immer noch Transaktionen durchführen können, solange sie access Mana haben. Wenn Sie 10 % des gesamten access Manas haben, haben Sie garantiert immer auf 10 % der Netzwerkbandbreite zugriff.
Wie verhindern wir die Zentralisierung von Nodes?
Der Mangel an Anreizen, eine Node im IOTA-Netzwerk zu betreiben, wird oft kritisiert und ich denke, dass das ein Missverständnis ist. Der Anreiz, eine Node in Blockchains und IOTA zu betreiben, ist genau derselbe: die Möglichkeit, auf das Netzwerk zuzugreifen und es zu nutzen. In Blockchains werden die Blockproduzenten mit Block-Belohnungen und Transaktionsgebühren belohnt, nicht die Nodebetreiber.
Allerdings gibt es eine berechtigte Sorge, die zu einer Zentralisierung der Nodes führen würde, wenn sie nicht angegangen wird: Da IOTA sehr viele Transaktionen sehr schnell verarbeiten kann, wächst auch der Tangle sehr schnell. All diese Daten müssen irgendwo gespeichert werden. Wenn eine Node alle Transaktionen bis zur Genesis-Transaktion aufbewahren müsste, würde sie sehr viel Speicherplatz benötigen und mit der Zeit teuer werden. Teure Nodes führen immer zu einer Zentralisierung. Aber es gibt eine Lösung für dieses Problem, die Pruning genannt wird.
Betrachten wir das folgende Beispiel: Nehmen wir an, Sie gehen in eine Bar und wollen ein Getränk für 5$ kaufen und Sie bezahlen in bar. Weder Sie noch der Barkeeper müssen wissen, wer diese 5 $ vor Ihnen hatte. Er kann sehen, dass es sich um eine gültige Banknote handelt und nimmt sie an.
Das Gleiche gilt für eine Kryptowährung. Da Sie das approval weight jeder Transaktion überprüfen können, wissen Sie, welche Transaktionen gültig sind. Daher könnten Sie jede Transaktion, deren Token bereits erneut ausgegeben wurde, löschen und müssen nur alle nicht ausgegebenen Transaktionen (wobei “nicht ausgegeben” bedeutet, dass Sie dieses Geld erhalten und noch nicht verwendet haben) im Tangle speichern. Und das ist im Grunde das, was Pruning macht. Sie können in der Node-Software einstellen, dass alle ausgegebenen Transaktionen, die älter als ein bestimmter Schwellenwert sind, gelöscht werden sollen. Das ist auch der Grund, warum parents nicht älter als ein bestimmter Schwellenwert sein dürfen, denn das würde das Pruning erschweren. Als Eigentümer einer Node können Sie auch entscheiden, nie etwas zu löschen und eine so genannte Permanode laufen zu lassen, aber das würde mit der Zeit teuer werden. Es ist auch möglich, mit einem proof of inclusion (Inklusionsnachweis) zu beweisen, dass eine bestimmte Transaktion im Tangle war, aber dieses Thema würde mehr Erklärung erfordern und ich möchte den Artikel nicht viel länger machen, als er ohnehin schon ist.
Einige Kritiker sagen, dass man, wenn man nicht die komplette Historie bis zur Genesis-Transaktion aufbewahrt, einen Inflationsfehler haben könnte, ohne dass es jemand merkt. Ich werde darüber im Abschnitt “meine persönliche Meinung” sprechen, da ich versuche, meine Meinung aus den Erklärungen herauszuhalten.
Jetzt haben wir gelernt, wie IOTA in der Lage ist
☑ alle benötigten Daten sicher zu speichern (Tangle)
☑ Transaktionen zu senden und zu empfangen
☑ sicherzustellen, dass alle Transaktionen gültig sind
☑ sicherzustellen, dass sich alle im Netzwerk über den Zustand des Ledgers einig sind (wer welchen Kontostand hat), d.h. einen Konsens erreichen
und trotzdem
☑ müssen Sie keinen Zwischenhändlern vertrauen
Werfen wir also einen Blick auf die Eigenschaften von IOTAs im Vergleich zu Blockchains.
Vorteile von IOTA gegenüber Blockchains:
- Die IOTA-Version, über die wir gesprochen haben, ist wirklich dezentralisiert. Jeder kann seine eigenen Transaktionen erstellen, wenn er möchte. Sie müssen nicht jedes Mal, wenn ein neuer Block erstellt wird, einen einzelnen Blockproduzenten wählen. Außerdem gibt es keine Mining-Belohnung, die in Zukunft zu einer Zentralisierung führen könnte.
- IOTA ist gebührenfrei. Das bedeutet, dass die Interessen aller Teilnehmer des Netzwerks gleichgerichtet sind, da es keine Miner/Staker gibt.
- IOTA ist viel besser skalierbar als Blockchains. Es können bereits 1000+ TPS mit sehr moderaten Nodeanforderungen verarbeitet werden und diese Zahl wird wahrscheinlich noch vor dem Sharding (eine Skalierungslösung, die praktisch unendliche TPS ermöglicht) steigen. Blockchains mit ähnlichen TPS-Zahlen sind viel zentralisierter und haben viel höhere Anforderungen, um eine Node zu betreiben. Blockchains können einfach nicht skalieren, wenn sie ihre Dezentralität behalten wollen, IOTA kann das.
- IOTAs APOW ist viel energieeffizienter als Blockchains, die auf POW basieren(für einen Vergleich mit Bitcoin klicken Sie hier) und hat nicht das Zentralisierungsproblem der POS-Systeme, da es keine Blockbelohnungen gibt.
Vorteile von Blockchains gegenüber IOTA:
- Blockchains sind kampferprobter. Die dezentrale Version von IOTA läuft bisher nur in einem Testnetzwerk und muss gründlich getestet werden, um sicherzustellen, dass sie wirklich funktioniert und es keine Angriffsvektoren gibt. Blockchains haben über viele Jahre bewiesen, dass sie sicher sind, wenn die Ressourcen richtig verteilt sind.
- Blockchain ist eine viel einfachere Technologie. Das bedeutet, dass sie leichter zu verstehen und zu implementieren ist, ohne Fehler einzuführen.
Fazit IOTA+Tangle
Durch die Verwendung von IOTA und dem Tangle erhalten Sie die gleichen Vorteile gegenüber zentralen Systemen wie Blockchains, aber ohne die meisten Nachteile. Die einzigen Nachteile, die bleiben, sind, dass der Tangle aufgrund seiner dezentralen Natur weniger effizient und skalierbar ist als eine zentrale Lösung. Mit Sharding könnte IOTA in Zukunft praktisch unendlich skalierbar werden, aber es wird nie effizienter als eine zentralisierte Lösung sein.
Aufgrund der Tatsache, dass die meisten Nodes höchstwahrscheinlich Pruning benutzen werden, ist IOTA eher ein Daten- und Wertübertragungsprotokoll als eine dezentrale Datenbank.
WENN IOTA keine Angriffsvektoren offen lässt, gibt es keine Vorteile von Blockchains gegenüber IOTA mehr und daher gäbe es keinen Anreiz, eine Blockchain anstelle des Tangles zu verwenden. Allerdings hätte IOTA eine Menge Vorteile gegenüber Blockchains und würde viele neue Anwendungsfälle ermöglichen.
Bis zu diesem Punkt habe ich versucht, in diesem Artikel nur Fakten zu nennen und meine persönliche Meinung so weit wie möglich herauszuhalten. Wenn Sie Fehler finden, lassen Sie es mich bitte in den Kommentaren wissen. Diejenigen, die nur an Fakten interessiert sind, können den letzten Abschnitt überspringen, da es hier nur um meine Meinung und nicht um Fakten geht.
Meine PERSÖNLICHE MEINUNG
Disclaimer: Ich habe etwas Geld in IOTA investiert, daher könnte meine Meinung voreingenommen sein.
Meine Gedanken zu Blockchains:
Die Blockchain-Technologie hat eine Geschichte von mehr als 10 Jahren und bewiesen, dass sie innerhalb ihrer begrenzten Anwendungsfälle funktioniert. Aber es gibt mehrere offensichtliche Probleme. Die beliebten Blockchains wie Bitcoin und Ethereum haben ihre Kapazitätsgrenze längst erreicht und die Transaktionsgebühren sind explodiert, obwohl sie von fast niemandem benutzt werden. Das zeigt, dass sie nicht skalierbar sind. Andere Blockchains sind besser skalierbar, aber zentralisiert (wie z.B. die Binance-Chain). Blockchains müssen immer Abstriche bei der Skalierbarkeit oder Dezentralität machen, daran führt einfach kein Weg vorbei. Und ja, ich bin mir bewusst, dass es second layer Lösungen gibt, die versuchen, die Probleme der Blockchain zu lösen. Allerdings bringen sie immer neue Kompromisse mit sich. Sie sind oft besser skalierbar, opfern aber die Dezentralität und Sicherheit.
Ich denke, die meisten Blockchains und DLTs im Allgemeinen tendieren heutzutage eher zu mehr Zentralität als zu weniger. Dafür gibt es mehrere Gründe, die Skalierbarkeit ist einer davon. Ein weiterer Grund ist, dass einige erkannt haben, dass das Verbrennen von verrückten Mengen an Energie in POW nicht die Lösung sein kann und steigen auf POS um. Das bedeutet, dass reiche Token-Inhaber ihre Token einsetzen können und mit größerer Wahrscheinlichkeit die Blockbelohnung erhalten, was sie noch reicher macht. Wenn sie so weitermachen, werden sich diese Projekte im Laufe der Jahre immer mehr zentralisieren. In POW-Systemen ist es kosteneffizienter, große Mining-Farmen zu betreiben und daher ist es wahrscheinlich, dass sich Mining-Pools bilden. Wenn es nur ein paar große Mining-Pools gibt, die das System sichern, würde ich das nicht als sehr dezentralisiert bezeichnen. Und selbst wenn man in der Lage ist, eine dezentrale Blockchain mit POW zu betreiben, benötigt sie so viel Energie, um sicher zu sein, dass ich nicht glaube, dass es sich in Zeiten einer Klimakrise lohnt, es sei denn, es handelt sich um 100% erneuerbare Energie. Und selbst dann denke ich, dass es bessere Lösungen gibt und die benötigte Energie in anderen Bereichen sinnvoller eingesetzt werden kann.
IOTA ist eines der wenigen Projekte im DLT-Bereich (von denen ich weiß), das sich eher in Richtung mehr Dezentralität entwickelt. Allerdings muss erst der Koordinator im Mainnet entfernt werden, um die Dezentralität zu erreichen.
Meine Gedanken zu IOTA und dem Tangle:
Zuerst möchte ich über einige Kritikpunkte sprechen, die ich oft über IOTA (oder jede andere Kryptowährung außer Bitcoin) höre und denke, dass sie unbegründet sind:
- “Alle Projekte mit Ausnahme von Bitcoin sind zentralisiert, weil sie von einer Stiftung, Firma oder einer kleinen Gruppe von Menschen entwickelt werden.” Ich stimme zu, dass die Entwicklung der meisten Kryptowährungen zentralisiert ist. Aber das bedeutet nicht, dass das Netzwerk selbst zentralisiert ist. Die Verteilung und Anzahl der Nodes (und Blockproduzenten) sind ein Indiz dafür, wie dezentralisiert eine Kryptowährung ist, da sie die Transaktionen validieren. Nodes könnten einfach jede Aktualisierung ablehnen. Das passiert noch nicht wirklich, da die meisten Kryptowährungen noch in der frühen Entwicklungsphase und häufig noch nicht wirklich funktionsfähig sind, also würde es keinen Sinn machen, Updates abzulehnen. Aber sobald das Netzwerk funktionsfähig ist, kann sich das ändern. Bitcoin hat in seinen Anfängen die gleiche Phase durchlaufen und gilt trotzdem noch als dezentralisiert. Die anderen Kryptowährungen sind nur in einem früheren Entwicklungsstadium, aber das bedeutet nicht, dass sie nicht am Ziel ankommen werden. Ich denke sogar, dass es vorteilhaft ist, eine zentralisierte Entwicklung zu haben, bis man ein funktionierendes Netzwerk hat, das seine Vision erreicht hat, weil die zentrale Entwicklung viel schneller ist. Und nach der ersten funktionierenden Version können die Nodes entscheiden, ob sie neue Updates mögen oder nicht.
- “Wenn man pruning erlaubt, könnte es einen unbemerkten Inflationsfehler in IOTA geben.” Da man bei jeder Transaktion überprüft, ob der Eingangsbetrag gleich dem Ausgangsbetrag ist und es kein Mining gibt, das neue Token erzeugt, halte ich diesen Fehler für unmöglich (oder zumindest seeeehr unwahrscheinlich). Aber selbst wenn wir in Betracht ziehen, dass es möglich wäre, denke ich, dass Pruning kein Problem ist, denn wenn man den Fehler nicht sehr schnell entdeckt, kann man sowieso nichts dagegen tun. Um besser zu verstehen, was ich meine, lassen Sie uns das folgende Beispiel betrachten: Wir entdecken einen Inflationsfehler in Bitcoin, der vor 6 Monaten passiert ist. Es gibt nichts, was wir dagegen tun können. Wir können nicht einfach die Transaktionen von 6 Monaten zurückrollen, weil alle Händler, die Bitcoin in dieser Zeitspanne akzeptiert haben, ihr Geld verlieren würden. Und selbst wenn wir nur die Transaktion zurücksetzen würden, bei der die Inflation aufgetreten ist, würde der Reputationsverlust höchstwahrscheinlich trotzdem zu enormem Wertverlust führen.
- “IOTA ist nicht wirklich gebührenfrei, weil man eine kleine Menge an POW leisten muss, um eine Transaktion auszustellen und das ist eine Gebühr!” Diese Argumentation macht für mich einfach überhaupt keinen Sinn. Wenn man etwas mit seinem Handy bezahlen will, muss das Handy eingeschaltet sein und verbraucht auch Energie, aber das betrachten wir nicht als Transaktionsgebühr. Wenn man jemandem 100 Iota schickt, bekommt er genau 100 Iota, also gibt es keine Transaktionsgebühr. Ja, jemand muss eine Node betreiben und ja, diese Node verbraucht Energie, aber nehmen wir an, Sie gehen in Ihre Lieblingsbar und der Barkeeper akzeptiert Iota als Bezahlung. Er betreibt eine IOTA-Node, um Transaktionen erstellen zu können, und wenn Sie Ihre Getränke bezahlen, benutzen Sie seine Node, um Ihre Transaktionen zu senden. Ja, seine Node muss etwas POW leisten und ja, er muss für den Strom bezahlen, aber Sie als Kunde müssen keine Gebühr bezahlen, d.h. es gibt keine Transaktionsgebühren. Nun werden Sie sich vielleicht fragen, warum er Ihnen erlauben sollte, eine Transaktion über seine Node kostenlos durchzuführen. Nun, die Antwort ist einfach: Die Kosten sind so gering, dass der Vorteil, Zugang zu einem wertvollen Netzwerk zu haben, diese bei weitem überwiegt. Die Opportunitätskosten für den Betrieb von Hardware sind keine Transaktionsgebühren.
In den frühen Tagen von IOTA gab es viel Hype um das Projekt und sehr wenig Technologie, die man vorzeigen konnte. Zu dieser Zeit hat die IOTA Foundation auch viel versprochen und nur sehr wenig davon gehalten, daher kann ich verstehen, wenn Sie Ihr Vertrauen in die Foundation und das Projekt verloren haben. Um ganz ehrlich zu sein, ich habe keine Ahnung, warum ich mein Vertrauen nicht verloren habe, nach all den Dingen, die passiert sind, aber ich bin froh darüber, weil der Weg, auf dem sie sich jetzt befinden, sehr vielversprechend aussieht. Sie sind einige problematische Leute losgeworden, hypen weniger und haben jetzt eine viel bessere Technologie. Wenn ich mit meinem Artikel etwas erreicht habe, dann hoffentlich, dass ich Ihr Interesse an der Technologie geweckt habe und Sie sie unvoreingenommen betrachten werden. Wenn Sie IOTA danach immer noch nicht mögen, ist das vollkommen in Ordnung.
IOTA ist viel komplexer als eine Blockchain, aber ich denke, um ihre Vision zu erreichen, ist es wert, die extra Meile zu gehen. Sie sollten im Hinterkopf behalten, dass der Tangle und viele andere Konzepte in IOTA neu und noch nicht sehr kampferprobt sind. Wenn also Sicherheit Ihr Hauptanliegen ist, Sie eine dezentralisierte Lösung brauchen und diese Lösung nicht sehr skalierbar sein muss, würde ich mich im Moment wahrscheinlich für eine Blockchain entscheiden. Aber ich denke, mit der Zeit wird sich das ändern, wenn IOTA die Chance hatte, sich zu beweisen. Und ja, es besteht die Möglichkeit, dass IOTA scheitert, aber wenn wir nur Dinge tun würden, von denen wir sicher sind, dass sie funktionieren, würde es nie einen Fortschritt geben.
Der Hauptvorteil, den ich für IOTA sehe, ist, dass es im Gegensatz zu Blockchains keine theoretischen Grenzen gibt (abgesehen von physikalischen Grenzen). Wenn die Entwickler die richtigen Design-Entscheidungen treffen, kann IOTA fast grenzenlose Anwendungsfälle ermöglichen. Es sind aktuell auch eine Menge aufregender Dinge in der Entwicklung, über die ich in diesem Artikel nicht gesprochen habe, wie Colored Coins, NFTs, Smart Contracts, etc. Ich glaube wirklich, dass IOTA eine glänzende Zukunft vor sich hat, wenn alles funktioniert und fertig ist. Und ich denke die Chancen dazu stehen sehr gut. Aber wie gesagt, die Technik ist ziemlich komplex und die Implementierungsdetails spielen eine große Rolle, also nehmen Sie mich nicht beim Wort, es kann alles passieren.
Allgemeine Gedanken über den DLT-Bereich:
Derzeit wird Ihre Meinung bei allen Konsensmechanismen (POW, POS, OTV, etc.) direkt oder indirekt durch die Menge an Geld, die Sie haben, gewichtet. Das bedeutet, dass Ihre Meinung mehr zählt wenn sie reich sind. Ich denke, es wäre großartig, eine Lösung zu finden, bei der dies nicht der Fall ist. In der realen Welt macht mehr Geld einen nicht vertrauenswürdiger. Ich vertraue den Menschen, die ich gut kenne, weil sie sich bei mir einen Ruf aufgebaut haben. Wenn wir einen Weg finden können, dieses Vertrauen aus der realen Welt in eine DLT einzubauen, wäre das der beste Konsensmechanismus, den ich mir vorstellen kann.
Was mir am DLT-Bereich im Moment nicht gefällt, ist das kultartige und irrationale Verhalten vieler Leute darin. Nur weil man etwas Geld in ein Projekt gesteckt hat, heißt das nicht, dass es die bessere Technik hat und alle anderen Projekte Scheiße sind. Es gibt eine Menge Maximalisten in diesem Bereich, die alles, was ein anderes Projekt macht, schlecht reden und sogar die Fehler/Nachteile ihres bevorzugten Projekts loben. Ich hoffe das ändert sich in der Zukunft und man konzentriert sich wieder mehr auf die Technik und die Probleme, die dadurch gelöst werden können. Ich weiß, dass sich das vielleicht komisch anhört, wenn es nach einem Artikel wie diesem von mir kommt, aber ich hoffe, ich konnte erklären, warum ich tatsächlich denke, dass IOTA die bessere Technologie ist. Wenn Sie Fehler in meiner Argumentation finden oder eine bessere Technologie kennen, lassen Sie es mich bitte in den Kommentaren wissen!
Der DLT-Bereich sollte nicht als “get rich quick scheme” betrachtet werden, sondern als Ermöglicher einer Vielzahl von bisher unmöglichen Anwendungsfällen. Es gibt viele Menschen, die durch DLTs zum ersten Mal Zugang zu einem globalen Geldsystem haben. Die Tatsache, dass ihr Geld möglicherweise mit der Zeit an Wert gewinnt, könnte dazu beitragen, die Wegwerfgesellschaft zu bekämpfen. DLTs können Lieferketten transparenter machen und lassen Kunden informierte Entscheidungen treffen, wie z.B. nur Produkte zu kaufen, die ethisch produziert wurden. Sie können Ihnen helfen, das Eigentum an Ihren Daten zurückzugewinnen und sie selbst zu monetarisieren, wenn Sie sich dafür entscheiden. Gebührenfreie Transaktionen ermöglichen Mikrotransaktionen und Pay-per-Use-Anwendungen. Die Technologie könnte helfen, eine grüne Revolution zu ermöglichen und die Klimakrise zu bekämpfen (und nein, ich glaube nicht, dass Bitcoins POW in seiner aktuellen Form ein Teil davon sein kann). Und so vieles mehr. DLTs können die Welt zum Besseren verändern und das ist ihr wahrer Wert, nicht irgendwelche Kontostände, die schnell in die Höhe schießen. Die meisten Leute die sich mit Kryptowährungen beschäftigen schauen nur aufs Geld. Sie schauen sich nicht einmal die Vision und die Technologie eines Projekts an und welche Vorteile es der Welt bringen könnte. Ich würde wirklich gerne sehen, dass sich das ändert, und wenn dieser Artikel ein wenig dazu beiträgt habe ich mein Ziel erreicht.
Hut ab, wenn Sie es tatsächlich durch den ganzen Artikel geschafft haben. Ich hoffe, es war Ihre Zeit wert, und wenn es Ihr Interesse an DLTs geweckt hat, viel Spaß auf dem Weg in den Kaninchenbau.
Wenn Sie mehr über IOTA erfahren wollen, sollten Sie dem offiziellen Discord beitreten oder im Wiki nachschauen.