Blockchain Solana: Absturz wegen Spam-Angriff
Am Wochenende fiel die Smart-Contract-Blockchain Solana (SOL) einem ungeheuren Spam-Angriff zum Opfer. Die Blockproduzenten verloren den Konsens, die Blockchain stürzte ab und blieb für rund 7 Stunden offline.
Es fing so gut an, und es endete so übel. Gerade hatten NFTs auf Solana Fuß gefasst, da stürzte die Blockchain über das, was ihre größte Stärke sein sollte – die Skalierbarkeit.
Solana ist eine Smart-Contract-Blockchain, die dank eines zwar zur Zentralisierung neigenden, aber sehr kapazitätsstarken Konsens-Systems besonders gut skalieren soll. Unter den sogenannten “Ethereum-Killern” sticht Solara durch ein innovatives Design und eine starke Community heraus.
Gerade im NFT-Bereich begannen viele Token-Schöpfer auf die Solana-Blockchain auszuweichen, nachdem die Gebühren auf Ethereum kaum mehr tragfähig geworden waren. Als schließlich auch der dominante NFT-Marktplatz OpenSea Token auf Solana aufnahm, schien sich die Blockchain auf diesem Markt etabliert zu haben.
Doch am Wochenende erfuhren viele Solana-User, dass der Erfolg seinen Preis hat. Die Blockchain wurde angegriffen. Eine Flut an Transaktionen, angeblich bis zu vier Millionen je Sekunde, strömte ins Netz, das auf einmal mehr als 100 Gigabyte je Sekunde zu verarbeiten hatte.
Solana Mainnet Beta lost consensus after an enormous amount of inbound transactions (4m per second) flooded the network, surpassing 100gbps. Engineers are still investigating why the network was unable to recover, and validator operators prepare for a restart.
— Solana Status (@SolanaStatus) May 1, 2022
Die schiere Masse war offenbar zu viel. Die Blockproduzenten und Validatoren – das sind die wichtigsten Knoten im Solana-Netzwerk – gerieten unter Druck. Zuerst stieg der Bedarf an Arbeitsspeicher ins Unermessliche. 100, 200, 300, 350 Gigabyte. Dann verloren die Knoten die Einheit – den Konsens. Sie waren sich nicht mehr einig, welche Transaktionen in welcher Reihenfolge eingegangen waren. Die Knoten versuchten, den Konsens wieder zu finden, scheiterten aber.
Das Netzwerk fragmentierte. Die Blockproduzenten produzierten keine Blöcke mehr, die Validatoren validierten keine Blöcke mehr. Solana hielt an. Die Blockchain war, erklärt Austin Federa von der Solana-Foundation, abgestürzt, so wie ein Computer, der seinen Arbeitsspeicher in einer Endlosanwendung entleert.
it wasn't "paused" or "halted" – better to say it "crashed"
— Austin Federa (@Austin_Federa) May 1, 2022
Die vielleicht entscheidende Frage bleibt weiterhin unbeantwortet: Weshalb legte die Transaktionsflut Solana lahm? Dass man vier Millionen Transaktionen oder 100 Gigabyte Daten je Sekunde braucht, um Solana zu überfluten, ist beeindruckend. So gut wie alle – wenn nicht buchstäblich alle – Blockchains wären schon viel früher kollabiert. Dennoch wäre es interessant zu wissen, was der Flaschenhals war, wegen dem das Netzwerk den Konsens verloren hat.
Was man hingegen weiß, ist die etwas praktischere Ursache des Vorfalls. Es waren eine Unmenge an Transaktionen, und ein nicht geringer Teil nutzte die Candy Machine von Metaplex, ein Werkzeug, um NFTs auf Solana zu generieren. Wenn man automatisch “schwere” NFT-Transaktionen bilden und versenden kann, könnte dies zu einem scharfen Schwert für einen Spam-Angriff werden.
Today #Solana mainnet-beta went down partially due to botting on the Metaplex Candy Machine program. To combat this, we have merged and will soon deploy a botting penalty to the program as part of a broader effort to stabilize the network. https://t.co/QaAZT3VxXz
— Metaplex (@metaplex) May 1, 2022
Die Metaplex-Entwickler versuchen, solche Angriffe zu verhindern, indem sie eine Art Strafgebühr für ungültige Transaktionen einführt, was wohl typischerweise passiert, wenn blinde Bots versuchen, mit der Candy Machine NFTs zu bilden.
Wichtiger war es aber, die Blockchain wieder online zu bekommen. Dazu mussten die Blockproduzenten und Validatoren wieder einen Konsens erreichen.
Die Entwickler und Betrieber der Knoten tauschten sich über Discord aus und bereiteten einen Neustart des Netzwerks vor. Dazu versandte eine Art freie Genossenschaft der Validatoren Instruktionen an alle.
Hudson Jameson, der als Mitglied der Ethereum-Foundation nicht eben wohlwollend-neutral auf den Konkurrenten blickt, spottet über den Inhalt der Instruktionen: “Vergesst nicht, ihr müsst das Netzwerk nur so lange zensieren, bis es stabil wirkt, so dass wir unser Gesicht behalten.”
Oh fuck. Solana Foundation published beta cluster restart instructions that include instructions to block NFT minting bots manually at the L1 layer.
🫣
"Don't forget, only censor the network until it looks steady again so we can start saving face with an online network." https://t.co/LDpSuunbzt pic.twitter.com/BF6wuZDE9I
— Hudson Jameson (@hudsonjameson) May 1, 2022
Die Validatoren forderten die Knoten auf, nanuell IP-Adressen und bestimmte Arten von Transaktionen zu blockieren, sollten sich die Angriffe der NFT-prägenden Bots wieder einstellen. Dafür gibt das Dokument für die Validatoren auch einen konkreten Befehl vor, und erinnert daran, die Blockade unbedingt wieder aufzuheben, sobald dies sicher möglich ist. Eine dauerhafte Lösung außer “ewiger Wachsamkeit” scheint derzeit nicht in Sicht zu sein.
Rund sieben Stunden nach dem Vorfall scheint das Netzwerk wieder online zu sein. Danach wurden Apps und Anwendungen von anderen, etwa von Börsen, ebenfalls wieder hochgefahren. Geld wurde bei dem Vorfall nicht verloren.
Gewonnen hingegen wurde, einmal mehr, Erfahrung. Solana ist nicht zum ersten Mal platt, es passiert ein bis zwei Mal im Jahr. Dies ist offenbar der Preis der Skalierbarkeit, der dem einen oder anderen unangenehm im Magen liegen dürfte, da er das Netzwerk weniger zuverlässig, aber dafür abhängig von Absprachen der Validatoren macht, also quasi von einem Kartell.
Andererseits ist ein solcher Kollaps der Worst Case – und bleibt, abgesehen von einer 7-stündigen Pause, relativ folgenlos. Eventuell lässt sich gar nicht so schlecht damit leben, dass eine hochskalierbare Blockchain auch mal für einige wenige Stunden ausfällt?
Und man muss auch einräumen, dass die Menge an Transaktionen, die nötig war, um Solana auszuknocken, mit 4 Millionen je Sekunde beachtlich hoch ist. Das ist etwa so viel, wie Ethereum in 4 Tagen und Bitcoin in einer Woche verarbeitet. Es handelt sich also um etwa das 350.000-fache Volumen, das für Ethereum üblich ist. Bei einer solchen Last dürfen einem auch mal die Kniee wegbrechen, oder?
Dennoch zeigt der Vorfall, dass der Widerspruch zwischen Sicherheit und Skalierbarkeit nicht einfach so unter den Teppich zu kehren ist. Sicherheit und Dezentralisierung, wie wir sie von Bitcoin und, etwas schwächer, auch von Ethereum kennen, kommt mit dem Preis einer geringeren Skalierbarkeit daher. Und eine höhere Skalierbarkeit, wie bei Solana, geht auf Kosten der Sicherheit und Stabilität.
Die Google & Amazon Cloud dürfte ähnlich dezentralisiert sein und bekommt das besser hin.
Sobald man sich einmal in Zensur begibt, hat man einen Präzedenzfall geschaffen und den Behörden wird das nicht entgangen sein. Sobald Solana irgendwann für Sanktionen relevant werden sollte, wird man wissen, wo man anklopfen muss.
Das halte ich immer noch für ein Gerücht und die offiziellen Explorer geben das auch nicht her. Die Zahlen sollte man also mit Vorsicht genießen und auch wenn 100Gbps “nur” etwas mehr als 10GB/s sind, eine 100Gbit Anbindung bekommt man nicht mal eben so und muss mehrere Peerings dafür organisieren. Wenn man das auf seinem Netzwerk für eine Fee unter 0,001$ zulässt, dann gehört einem der Scheiss auch um die Ohren geschlagen. Aber entweder hat man die ganzen Transaktionen einfach nicht validiert oder es waren deutlich weniger. Wenn man Transaktionen eben nicht validiert, dann bekommt das Bitcoin auch hin…
https://analytics.solscan.io/public/dashboard/8d888828-baae-47b9-948b-d087e5de1411?select_report_period=past7days
Interessant, danke für die guten Hinweise. Habe mich ehrlich gesagt niemals genügend mit Solana beschäftigt …