Transaktionshistorie

Problem: Bei IOTA würde ohne gespeicherte Transaktionshistorie bis zur Genesis Transaktion 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. Alle Full-Nodes im Netzwerk sind synchronisiert und es besteht Konsens. Jeder Token auf einer Adresse ist eindeutig identifizierbar und jede Ausgabe benennt genau den Token, der bewegt werden soll. 



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 (IOTA 2.0) 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. 

Bei IOTA wird keine Historie alle Transaktionen benötigt, um zu überprüfen, ob irgendwo Token aus dem Nichts (hypothetischer Inflations-bug) hinzugekommen sind. Das limitierte Guthaben ist komplett im Umlauf und allen synchronisierten Nodes bekannt und bevor Nodes IOTA-Token versenden können, müssen sie immer verifizieren, ob die Anzahl an IOTA-Token stimmt, dabei wird jede Änderung des Ledgers von allen synchronisierten Nodes validiert (Konsistenzprüfung des Ledgers), daher ist es sehr einfach, die existierende Gesamtmenge an limitierten IOTA-Token zu überprüfen. Alle Nodes halten eine Liste und prüfen, ob die Anzahl mit jeder Transaktion konsistent bleibt. Es ist unmöglich, die Menge an IOTA-Token zu ändern, ohne bei allen Nodes die Software (Hartkodiert) zu ändern, was ein zwingend zerstörendes Update wäre. Ein solches Update funktioniert natürlich nicht ohne die Unterstützung der gesamten Community und könnte bei Uneinigkeit sogar zu einer Spaltung des Netzwerks führen (erfordert bei IOTA 1.x einen zusätzlichen Koordinator, dem man vertrauen kann).

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"


Nodes die nicht synchronisiert sind, bekommen lediglich eine Fehlermeldung und können nicht am Netzwerk teilnehmen. Wenn ein Full-Node online geht, nachdem er offline war, muss er  das Netzwerk abhören und alles herunterladen, um den Status des Ledgers zu sehen, er wird sich den Konsens ansehen und dabei auch den Status der hohen Mana-Nodes berücksichtigen. Die Wiederinbetriebnahme einer Node, ist ähnlich wie das Starten einer neuen Node von Grund auf.


Mit dem Abschluss des Chrysalis Update 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 Daten-Transaktionen (0-Value) könnte die Historie im Laufe der Zeit verloren gehen, neue Transaktionen werden vom Netzwerk nur verbreitet, bestätigt und sind direkt notarisiert. 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. Mithilfe der „Notarisierung“ kann bewiesen werden, dass ein elektronisches Dokument in einer bestimmten Form zu einem bestimmten Zeitpunkt existiert hat und seit der Erstellung nicht verändert wurde. Bei der Erstellung einer Notarisierung wird ein eindeutiger Hash (Fingerabdruck) eines Dokumentes berechnet und gemeinsam mit einem Zeitstempel im IOTA-Ledger (Tangle) unveränderbar gespeichert. Falls zu einem späteren Zeitpunkt verifiziert werden soll, dass das betreffende Dokument zum behaupteten Zeitpunkt existiert hat und/oder nicht verändert wurde, werden die Daten aus dem Tangle abgerufen und mit den vorliegenden Informationen verglichen.

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 IOTA Basis-Layer stehen Leistung, Durchsatz und Sicherheit im Vordergrund und nicht der Aufbau einer globalen Datenbank.




Zuletzt bearbeitet 20.01.2021