
Spam QUICk eindämmen: Alles, was du über Solana und QUIC wissen musst
Worum geht es in diesem Artikel?
Solana ist derzeit die schnellste und am besten skalierbare Blockchain auf dem Markt. Sie ist für ihre hohen Transaktionsgeschwindigkeiten bekannt und eignet sich daher ideal für zahlreiche Anwendungsfälle. Trotz dieser Erfolge gab es rund um das Solana-Netzwerk Angst, Unsicherheit und Zweifel – umgangssprachlich als FUD abgekürzt – wegen früherer Ausfälle. Dieser FUD war in der Vergangenheit zwar berechtigt, ist heute aber unbegründet. Warum? Die Engineers bei Solana Labs haben im vergangenen Jahr an verschiedenen Netzwerk-Upgrades gearbeitet. Besonders wichtig war dabei, Solanas eigenes, auf Raw UDP basierendes Protokoll zur Annahme von Transaktionen durch QUIC zu ersetzen.
In diesem Artikel untersuchen wir die Funktionsweise von Netzwerkprotokollen sowie TCP und UDP. Anschließend sehen wir uns an, wie QUIC beide verbessert. Danach richten wir den Blick auf Solana und besprechen die konkreten Vorteile. Der Artikel soll dir umfassend vermitteln, warum dieses Netzwerk-Upgrade einen bedeutenden technischen Meilenstein für Solana darstellt.
Upgrades des Solana-Netzwerks
Am 13. Dezember 2022 veröffentlichte die Solana Foundation einen Artikel mit dem Titel „Upgrades des Solana-Netzwerks“. Darin stellte sie mehrere Upgrades für das Netzwerk und deren jeweiligen Fortschritt vor. Die Upgrades sind:
QUIC
- Derzeit auf Mainnet-beta aktiv
Stake-gewichtete QoS
- Derzeit auf Mainnet-beta aktiv
Gebührenmärkte
- Derzeit auf Mainnet-beta aktiv, RPC- und Wallet-Unterstützung folgen in Kürze
- Den Fortschritt kannst du hier verfolgen
Erhöhung der Transaktionsgröße
- Derzeit in Entwicklung
Kompakter Abstimmungsstatus
- Derzeit auf Testnet aktiv
Spam war einer der Hauptgründe dafür, dass Solana in der Vergangenheit Ausfälle verzeichnete. Einige Beispiele:
- Der Grape-IDO-Spam am 14. September 2021
- DDoS-Angriffe vom 6. bis 12. Januar 2022
- NFT-Mint-Spam vom 30. April bis 1. Mai 2022
Seit der Einführung von QUIC wurde bei Solana kein durch Spam verursachter Ausfall mehr gemeldet. Damit ist QUIC ein Meilenstein für die Verbesserung des Netzwerkverkehrs und der Datenaufnahme bei Solana. Bevor wir uns mit QUIC beschäftigen, müssen wir zunächst die Funktionsweise von Netzwerkprotokollen betrachten. Mit einem besseren Verständnis der Netzwerkgrundlagen können wir die tatsächlichen Auswirkungen von QUIC auf das Solana-Netzwerk erkennen.
Was ist ein Netzwerkprotokoll?
Ein Netzwerkprotokoll ist ein festgelegter Satz von Regeln dafür, wie Daten zwischen Geräten im selben Netzwerk übertragen werden. Netzwerkprotokolle ermöglichen es verbundenen Geräten, unabhängig von ihrem Innenleben, ihrer Struktur oder ihrem Design problemlos miteinander zu kommunizieren.
Stell dir vor, du sitzt deinem Freund in einem Restaurant in Paris gegenüber. Ihr entscheidet euch beide, Französisch zu sprechen, und könnt euch dadurch reibungslos unterhalten. Eure gemeinsame Entscheidung für Französisch ist eine Einigung auf grammatische Regeln, einen Wortschatz und eine Aussprache, die ihr beide versteht.
Netzwerkprotokolle funktionieren bei verbundenen Netzwerkgeräten ähnlich – so wie Französisch als „Protokoll“ für euer Gespräch im Pariser Restaurant dient. Mit der Entscheidung für TCP, UDP oder QUIC einigt ihr euch auf feste Regeln und Konventionen für den Informationsaustausch. Ein bestimmtes Netzwerkprotokoll stellt sicher, dass sich verbundene Geräte ohne Missverständnisse verstehen.
Was ist TCP?
Das Transmission Control Protocol (TCP) ist eine standardisierte Kommunikationsschnittstelle, mit der Datenströme zwischen zwei Endpunkten in einem Netzwerk übertragen werden. Vint Cerf und Bob Kahn entwickelten das Transmission Control Program, ein monolithisches Protokoll, das später in eine modulare Architektur aus TCP und dem Internet Protocol (IP) aufgeteilt wurde. Die gesamte Protokollfamilie wird als TCP/IP bezeichnet. Wenn ich hier die Abkürzung TCP verwende, meine ich das Transmission Control Protocol und nicht die gesamte Protokollfamilie.
TCP ist verbindungsorientiert. Bevor Daten übertragen werden, muss eine Verbindung zwischen Client und Server bestehen. TCP stellt diese Verbindung mit einem dreistufigen Handshake her: Synchronize (SYN), Synchronize-Acknowledge (SYN-ACK) und Acknowledge (ACK). Stell dir SYN so vor, als würdest du jemandem zur Begrüßung die Hand reichen und fragen, ob die Person zum Gespräch bereit ist. Bei SYN-ACK ergreift die andere Person deine Hand, bestätigt ihre Gesprächsbereitschaft und fragt, ob du fortfahren möchtest. Bei ACK erwiderst du den Händedruck und bestätigst, dass du weiterreden möchtest. Damit ist eine Sitzung hergestellt. Beide Parteien wissen, dass sie miteinander verbunden sind, und erklären sich zum Informationsaustausch bereit.
TCP zerlegt Daten in Pakete, die über das Netzwerk übertragen werden. Jedem Paket werden kleine zusätzliche Datenmengen hinzugefügt. Dazu gehören eine Sequenznummer, mit der verlorene oder falsch angeordnete Pakete erkannt werden, sowie eine Prüfsumme, mit der sich Fehler in einem Paket erkennen lassen.
Wenn ein Gespräch unterbrochen wird, bitten wir die andere Person, sich zu wiederholen, damit wir sicher sein können, sie richtig verstanden zu haben. TCP behandelt Unterbrechungen ähnlich und verwendet dafür Automatic Repeat Request (ARQ). Tritt ein Problem auf, weist ARQ den Absender an, das beschädigte oder verlorene Paket erneut zu senden. Anschließend fordert TCP den Benutzer auf, die Datenübertragungsrate zu senken, und begrenzt die Anzahl unbestätigter Pakete, die gleichzeitig übertragen werden dürfen. Sobald der Fehler behoben ist, verhindert TCP mit verschiedenen Mechanismen eine Überlastung und erhöht die Geschwindigkeit schrittweise.
TCP ist nicht für jeden Anwendungsfall das richtige Protokoll, da es den gesamten Datenverkehr sequenziert. Geht also ein Teil der Daten verloren oder wird beschädigt, müssen alle nachfolgenden Pakete warten. Aber was wäre, wenn wir nicht warten müssten?
Was ist UDP?
Das User Datagram Protocol (UDP) ist eine standardisierte Kommunikationsschnittstelle zur Übertragung von Daten über ein Netzwerk. Anders als TCP arbeitet UDP verbindungslos und garantiert weder die Zustellung noch die Reihenfolge oder Duplizierung von Datenpaketen. UDP verwendet keine Handshake-Dialoge. Dadurch ist die Datenübertragung für jede Unzuverlässigkeit des zugrunde liegenden Netzwerks anfällig. UDP ist deshalb schneller als andere Protokolle, da es keine Zeit für den Aufbau einer Verbindung zum Ziel aufwendet. Allerdings wird das Protokoll deswegen auch als „Unreliable Datagram Protocol“ bezeichnet.
UDP überträgt Datagramme über das Netzwerk. Datagramme sind in sich geschlossene Dateneinheiten, die Informationen für das Routing von der Quelle zum Ziel enthalten. Aufgrund dieser Informationen sind sie beim Routing nicht von anderen Datagrammen abhängig. Diese Datagramme bestehen aus einem Header und Daten. Der Header enthält vier jeweils 16 Bit lange Felder: einen optionalen Quellport, einen Zielport, eine Länge und eine optionale Prüfsumme. Der Sendevorgang läuft so ab:
- Die sendende Anwendung erstellt einen UDP-Socket
- Die sendende Anwendung schreibt die zu übertragenden Daten in ein UDP-Datagramm, dessen Header den Zielport und alle weiteren relevanten Informationen enthält
- Das Datagramm wird für Routing und Zustellung an die IP-Schicht gesendet
- Die IP-Schicht übernimmt das Datagramm, überträgt es an die UDP-Schicht und entfernt seinen Header
- Das Datagramm wird an die Anwendung gesendet, die am angegebenen Port lauscht
Stell dir UDP wie ein Gespräch mit jemandem am anderen Ende eines vollen Raums vor. Du rufst der Person etwas zu, ohne dich darum zu kümmern, ob sie dich gehört hat, und wartest nicht auf ihre Antwort. Du willst deine Nachricht schnell übermitteln, ohne ein längeres Gespräch zu führen. Das ist riskant, weil die Person möglicherweise nicht alles gehört hat. Es kann aber sehr effektiv sein.
Warum solltest du ein verbindungsloses Kommunikationsprotokoll wie UDP verwenden, wenn mit TCP etwas Zuverlässigeres verfügbar ist? UDP eignet sich hervorragend für zeitkritische Anwendungen oder Fälle, in denen ein gewisser Datenverlust akzeptabel ist. Beim Spielen mit Freunden ein paar Frames zu verlieren, ist weitaus besser als ständiges Pausieren und Puffern. UDP wird außerdem für VoIP-Anrufe, Abfragen des Domain Name System (DNS), Monitoring und Logging verwendet.
QUIC: Effizienz und Zuverlässigkeit im Gleichgewicht
QUIC ist ein modernes Protokoll der Transportschicht, das Jim Roskind 2013 bei Google entwickelte. Es kombiniert die Zuverlässigkeit von TCP mit der geringen Latenz von UDP und schafft so eine optimierte Umgebung für schnelle und sichere asynchrone Kommunikation. QUIC hebt sich ab, indem es sichere Sitzungen und fortschrittliche Strategien zur Flusskontrolle, wie sie für TCP typisch sind, in das flexiblere und schnellere Framework von UDP integriert.
QUIC vereinfacht den Verbindungsaufbau, indem es den Austausch kryptografischer Schlüssel und Protokolldetails in den ersten Handshake integriert. Dieser wird mit Transport Layer Security (TLS) stets sicher verschlüsselt. Das Protokoll ermöglicht gemultiplexte Verbindungen über UDP. Dadurch können mehrere unabhängige Datenströme ihre Endpunkte erreichen, ohne sich gegenseitig zu beeinträchtigen. QUIC steuert den Fluss jedes Datenstroms unabhängig. Selbst wenn in einem Datenstrom Fehler auftreten, werden die anderen nicht blockiert. Das verhindert Head-of-Line-Blocking, bei dem das erste Paket eine Reihe nachfolgender Pakete in einer Warteschlange aufhält. TCP-Verbindungen leiden häufig unter diesem Problem.
Geht ein Paket verloren oder wird es beschädigt, überträgt QUIC die Daten intelligent erneut und wahrt so die Integrität und Kontinuität der Kommunikation. Darüber hinaus ist QUIC robust gegenüber Veränderungen der Netzwerkumgebung. Jedes Paket enthält eine Verbindungskennung, die die Verbindung zum Server unabhängig von der Quelle eindeutig identifiziert. Die Verbindung kann daher durch das Senden eines weiteren Pakets wiederhergestellt werden. Da jedes Paket diese ID enthält, bleibt die ursprüngliche Verbindung gültig. Bildlich gesprochen bedeutet das: Wenn du in einen anderen Raum gehst, wird dein Gespräch nicht unterbrochen, sondern nahtlos fortgesetzt.
Stell dir noch einmal vor, du versuchst in diesem vollen Raum mit deinem Freund zu sprechen. Dieses Mal habt ihr verschlüsselte Funkgeräte und könnt euch sicher und klar verständigen. Während ihr über verschiedene Themen sprecht, bestätigt dein Freund jede Nachricht mit einem erhobenen Daumen. Ein verwirrter Blick signalisiert dir, eine missverstandene Nachricht zu wiederholen. So geht bei der Übermittlung nichts verloren. Und wenn du oder dein Freund in einen anderen Raum geht, läuft das Gespräch ohne Unterbrechung weiter. Das ist der Kern von QUIC: robuste, anpassungsfähige und effiziente Kommunikation.
So implementiert Solana QUIC
QUIC bietet Solana mehrere Vorteile:
- Kürzere Verbindungsaufbauzeit: Durch die Optimierung des Handshakes minimiert QUIC die Latenz
- Multiplexing und effiziente Paketverwaltung: QUIC kann mehrere Datenströme gleichzeitig und ohne Head-of-Line-Blocking verarbeiten. Das verbessert den Transaktionsdurchsatz und die Effizienz
- Anpassungsfähigkeit und Resilienz: Das Protokoll passt sich an veränderte Netzwerkbedingungen an. Das ist für ein verteiltes, dezentrales System wie Solana unerlässlich
- Anpassung zur Netzwerkoptimierung: Dank der Flexibilität von QUIC lassen sich maßgeschneiderte Implementierungen wie die von Solana entwickeln, die konkrete Ziele bei Netzwerkleistung und Sicherheit erfüllen
QUIC wurde den Ports hinzugefügt, die Benutzertransaktionen annehmen. So lässt sich der Datenverkehr einzelner Akteure begrenzen, damit sich das Netzwerk auf die Verarbeitung echter Transaktionen konzentrieren kann. QUIC ist auf Solana aktiv und wurde mit Release 1.13.4 vollständig auf Mainnet-beta eingeführt. Seit der Integration verzeichnet das Netzwerk deutliche Verbesserungen bei Stabilität und Durchsatz.
Trotz dieser Fortschritte hat die jüngste Netzwerküberlastung eine Debatte über die Recheneffizienz von QUIC im Vergleich zu Solanas vorheriger UDP-Implementierung ausgelöst. Kritiker merken an, dass Validatoren mit dem Raw-UDP-Ansatz ausschließlich Transaktionen verarbeiten konnten, statt Handshake-Spam und Verschlüsselung zu verwalten. Zudem gehören Austausch und Überprüfung der Schlüssel in Solanas Implementierung nicht zum ersten Handshake. Solana nutzt die QUIC-Option, ein „Challenge-Paket“ zu senden, um IP-Adressen zu überprüfen. Diese Challenge soll die Zertifikatsprüfung im ersten Schritt des Handshakes vermeiden. Sie erfolgt stattdessen im zweiten Teil des Handshakes nach der IP-Validierung. Ob Solana Ausfälle durch Spam oder DDoS-Angriffe erlebt hat, bleibt umstritten, da der jüngste Netzwerkausfall von Solana im Februar als Denial-of-Service betrachtet werden könnte.
Während sich das Netzwerk weiterentwickelt, müssen seine Implementierungen kontinuierlich überprüft und verbessert werden. QUIC soll viele Probleme von TCP und UDP lösen. Rückblickend bleibt seine Effektivität jedoch umstritten. Wichtig ist auch, wie eine Lösung auf Hardware funktioniert. Aufgrund seiner Einfachheit funktioniert TCP auf Hardware deutlich besser als QUIC. Mit einem AES-Befehlssatz könnte ein TCP-basiertes Protokoll durchaus einen höheren Durchsatz als QUIC erreichen und bei TPS effizienter sein.
Insbesondere das Team von Jump Crypto verschiebt die Grenzen von QUIC. Während der Entwicklung von Firedancer, einem neuen Validator-Client für Solana, erstellte das Team eine eigene robuste und skalierbare Implementierung. Das Netzwerkdesign von Firedancer wurde von Grund auf für Receive-Side Scaling entwickelt, eine Form des hardwarebeschleunigten Lastausgleichs. Mit dieser parallelen Architektur kann jeder CPU-Kern einen Teil des eingehenden Datenverkehrs effizient verarbeiten. Das Team twitterte:
Eine Demo und ein Thread zum technischen QUIC-Meilenstein von Firedancer findest du hier.
Fazit
Glückwunsch! In diesem Artikel haben wir die Grundlagen von Netzwerkprotokollen untersucht. Dabei standen die Rollen von TCP und UDP sowie ihre Weiterentwicklung zu QUIC im Mittelpunkt. Außerdem haben wir Solanas Implementierung von QUIC betrachtet und hervorgehoben, wie entscheidend sie für die Verbesserung des Netzwerks ist. QUIC hat Solanas Widerstandsfähigkeit gegen Spam und DDoS-Angriffe erhöht. Das Wachstum des Netzwerks hat jedoch Herausforderungen und Debatten rund um die Recheneffizienz und Details der Implementierung offengelegt.
QUIC verkörpert Solanas Kernziel: ein Netzwerk mit hohem Durchsatz und geringer Latenz zu ermöglichen. Durch Multiplexing und die Wiederherstellung bei Paketverlusten steht Solana bei Diskussionen über Performance und Skalierbarkeit an vorderster Stelle. Die Implementierung des Firedancer-Teams zeigt die Anpassungsfähigkeit von QUIC und damit das Potenzial maßgeschneiderter Optimierungen für die wechselnden Anforderungen des Netzwerks.
Wenn du QUIC als Solana-Entwickler verstehst, kannst du fundiertere Entscheidungen treffen – von Anwendungsarchitekturen bis hin zu Transaktionsfehlern. Solana entwickelt sich ständig weiter, genau wie QUIC. Wenn du über die neuesten Änderungen am Netzwerk informiert bleibst, kannst du am besten performante Anwendungen auf Solana entwickeln. Selbst wenn du kein Entwickler bist, hilft dir ein tieferes technisches Verständnis von QUIC dabei zu verstehen, warum Solana eine performante Blockchain ist, die für ihre Geschwindigkeit und Skalierbarkeit bekannt ist.
Wenn du bis hierhin gelesen hast, anon: Danke! Gib unten deine E-Mail-Adresse ein, damit du keine Neuigkeiten zu Solana verpasst. Möchtest du tiefer einsteigen? Entdecke noch heute die neuesten Artikel im Helius-Blog und setze deine Reise mit Solana fort.
Zusätzliche Ressourcen und weiterführende Literatur
Ähnliche Artikel
Helius abonnieren
Bleib bei der Solana-Entwicklung auf dem Laufenden und erhalte Updates, wenn wir neue Beiträge veröffentlichen


