Modul 6B - Congestion Control (Überlastungssteuerung)

Eine Überlastung tritt auf, wenn ein Netzwerk mehr Datenverkehr hat, als es bewältigen kann. Ohne eine geeignete Überlastungskontrolle kann das Netzwerk übersättigt werden und nicht mehr funktionieren, da die Knoten ihre Nachbarn mit mehr Nachrichten überfordern, als ein einzelner Knoten bewältigen kann. Durch die Entscheidung, welche Messages weitergeleitet werden sollen, wird ein Überlastungskontrollalgorithmus eingesetzt, um diese Übersättigung zu verhindern. Daher ist der Gesamtdurchsatz des Netzwerks (informell als Transaktionen pro Sekunde bezeichnet) letztlich durch die verfügbaren Ressourcen wie Internetverbindung, Geräteverarbeitung und Speicherkapazität begrenzt.

Da ein Überlastungskontrollalgorithmus entscheidet, welche Nachrichten geklatscht werden, bestimmt er im Wesentlichen, wer Zugang zum Netzwerk hat; der Überlastungskontrollalgorithmus hat einen tiefgreifenden Einfluss auf die Anwendererfahrung. Im Gegensatz zu den meisten Netzwerken haben DLTs sehr strenge Anforderungen, die die Überlastungskontrolle zu einem besonders schwierig zu lösenden Problem machen. Insbesondere müssen die folgenden Anforderungen erfüllt werden:

  • Fairer Zugang: Der Netzwerkzugang muss proportional zu einer "knappen Ressource" gewährt werden.
  • Angriffsresistenz: böswillige Nodes können das Netzwerk nicht stören.
  • Konsistenz: alle Nodes müssen die gleichen Messages in ihr lokales Ledger schreiben.


Blockchains lösen die Überlastungskontrolle, indem sie einige Mechanismen verwenden, um Anführer für das Mining von Blöcken zu wählen. Da IOTA gebührenfrei ist und keine Miner hat, müssen wir eine alternative Lösung finden. Unsere Überlastungskontrolle besteht aus den folgenden zwei Hauptkomponenten:

  • Scheduler: er wählt aus, welche Messages bereit sind, in das lokale Tangle geschrieben und an die Nachbarn des Nodes weitergeleitet zu werden. Die Nachrichten werden mit einer konstanten Rate eingeplant, die proportional zur Mana des abgebenden Nodes ist. Dieser Mechanismus stellt sicher, dass keiner der Nodes überlastet wird.
  • Rate setter: Jede Node verwendet spezifische Regeln (AIMD, inspiriert von TCP), um seine Ausgaberate als Reaktion auf Überlastungsereignisse zu aktualisieren. Da in DLTs der Datenverkehr durch alle Nodes läuft, reicht eine lokale Überlastung an einem Node aus, um eine Überlastung anderswo im Netzwerk anzuzeigen. Diese Beobachtung ist entscheidend, da sie eine Möglichkeit für einen Algorithmus zur Überlastungskontrolle darstellt, der ausschließlich auf lokalem Datenverkehr basiert.


Was passiert, wenn ein Angreifer versucht, das Netzwerk anzugreifen, indem er Transaktionen mit einer hohen Rate ausgibt? Auf lokaler Ebene werden die Nodes die Messages des Angreifers nicht schneller als ihre erlaubte Rate verarbeiten. Daher werden sich die Messages des Angreifers anhäufen und seine Warteschlange wird wachsen. Eine zu große Warteschlange zeigt an, dass der Angreifer den Rateneinsteller umgeht: Folglich werden die Nodes dies erkennen und den Angreifer aus dem Netzwerk verbannen.


Die Animation unten zeigt, wie sich Mana auf die Fähigkeit einer Message auswirkt, in das Tangle zu gelangen.


Nodes mit mehr Mana (die größeren Sechsecke) treten in Zeiten der Überlastung häufiger in den Tangle ein.