Transaktionshistorie

Problem: Bei IOTA würde ohne gespeicherte Transaktionshistorie ein hypothetischer Inflations-bug nicht auffallen.

Antwort: Selbstverständlich fällt das auf, IOTA ist eine Distributed-Ledger-Technologie und schafft damit eine einzige Quelle der Wahrheit, auf die alle Teilnehmer vertrauen können.


Bei IOTA müssen Werte- und Datentransaktionen grundsätzlich unterschiedlich betrachtet werden.

Der Tangle (DAG) ist die zugrunde liegende Technologie des IOTA-Kommunikationsprotokolls, er ist nur das "Kommunikationsmedium" zwischen den Nodes und muss nicht alles speichern. In diesem Tangle verbirgt sich  auf einer zweiten Ebene der sogenannte UTXO DAG (Ledger), der über die Historie Buch führt, diese Zahlungshistorie wird über einen viel größeren Zeitraum aufbewahrt als der eigentlich Tangle. Mit dem Ledger ist das limitierte Guthaben auf allen Adressen (Konten) immer verfügbar und allen synchronisierten Nodes  bekannt. Bevor Nodes IOTA-Token versenden können, müssen sie immer verifizieren, ob die Anzahl an IOTA-Token stimmt, dies wird zur Ausgabe benötigt und wird möglich, weil bereits alle IOTA-Token im Umlauf sind, nach der Ausgabe speichern die Nodes den aktuellen Stand des Ledgers (eine Liste mit den Balances aller Adressen).

Nodes die nicht synchronisiert sind, bekommen lediglich eine Fehlermeldung und können nicht am Netzwerk teilnehmen. Bei IOTA wird keine Historie alle Transaktionen benötigt, um zu überprüfen, ob irgendwo Token aus dem Nichts (hypothetischer Inflations-bug) hinzugekommen sind, jede Änderung des Ledgers wird von allen Nodes validiert (Konsistenzprüfung des Ledgers). Ein derartiger Inflations-bug würde auch durch die Funktionen auffallen, die zur Ausführung der Transaktionen zuständig sind, diese prüfen regelmäßig ob sich der Gesamtbestand an IOTA-Token (hardcoded in the Node software) verändert hat und stoppen falls dies jemals geschehen sollte.

Zitat Hans Moog, Entwickler, IOTA Foundation: "Wenn mehr als 50% der Nodebetreiber beschließen nach einem Bug ihre Nodes manuell zurückzusetzen, dann geht das theoretisch. Inwiefern das in der Praxis tatsächlich funktioniert kommt wohl darauf an wie schwerwiegend das Problem ist. Als bei Bitcoin durch einen Fehler 184 Milliarden Bitcoins aus dem nichts erschaffen wurden, haben sich jedenfalls alle Miner gemeinsam dazu entschieden das Netzwerk zurückzusetzen. Aber das läuft dann über "social consensus" in der echten Welt und ist nicht Teil des Protokoll"


Mit dem Chrysalis Update (Step2 10/11‘2020) wird ein neuer Ledger-Zustand implementiert (eine erweiterte Version des UTXO-Modells), dieser neue Ledger-Zustand basiert auf dem Prinzip der Parallel-Realität, dadurch entkoppelt sich der Konsens von der Saldenverfolgung. Dies ermöglicht hohe Flexibilität und reduziert die Komplexität der Nachrichten massiv, indem nur über Konflikte abgestimmt wird.

Des Weiteren wird es einfacher Guthaben zu verfolgen, jede Adresse wird nicht nur ihr Gesamtguthaben enthalten, sondern auch mehrere Unter-Guthaben, die mit einer Markierung versehen sind, welche anzeigt, durch welche Transaktion die Guthaben entstanden sind. Jeder Token auf einer Adresse ist daher eindeutig identifizierbar und jede Ausgabe würde genau den Token benennen, der bewegt werden soll.

Zudem wird man mit Merkle Proofs “Proofs of Inclusion” in der Lage sein, Beweise dafür zu erstellen, dass eine Transaktion indirekt von einer anderen Transaktion referenziert wurde, ohne die gesamte Kette der tatsächlichen Transaktionen zwischen beiden bereitstellen zu müssen.


Bei reinen Datentransaktionen (0-Value) könnte die Historie im Laufe der Zeit verloren gehen, neue Transaktionen werden vom Netzwerk nur verbreitet, verifiziert und bestätigt. Die Nodes speichern nicht jede Transaktion, die jemals stattgefunden hat. Genau wie das Internet, speichert auch das IOTA-Protokoll keine Daten oder anders ausgedrückt, der Tangle ist kein Datenspeicher.

Falls jemand die Historie der Transaktionen dezentral speichern möchte, kann er dafür selbst ein Second-Layer Lösung bauen, eine (Selektiv)Perma-Node betreiben oder dritte für eine Speicherung bezahlen. Für den Basis-Layer stehen bei IOTA Leistung, Durchsatz und Sicherheit im Vordergrund und nicht der Aufbau einer globalen Datenbank.




Zuletzt bearbeitet 11.08.2020