Ethereum: Grandiose Geschäfte im Kriegsgebiet

Ethereum wird erneut von heftigen Angriffen geplagt. Seit der devcon2 wird die Blockchain fast ununterbrochen attackiert. Bisher hält sie den Angriffen einigermaßen stand, auch wenn es zu Verzögerungen kommt. Dem Hype um den Vorverkauf von Coins – Initial Coin Distribution, ICO – tut dies keinen Abbruch.
Es ist schwer zu sagen, was genau passiert auf der Ethereum-Blockchain. Tatsache ist jedoch, dass jemand die Blockchain angreift, indem er einen Exploit nach dem anderen ausbeutet, während zur selben Zeit immer mehr Token auf der Blockchain per Crowdsale verkauft werden. Ein wenig wirkt es so, als würde man einen Lastwagen, der sowieso schon einen Platten hat, fortlaufend weiter beladen.
Im DoS-Fegefeuer
Sämtliche Angriffe fallen unter die Kategorie DoS: Denial of Service oder, zu deutsch: “Überlastungsangriff”. Das Prinzip ist leicht erklärt – man flutet ein System mit so vielen Daten, dass es überlastet ist und seinen eigentlichen Funktionen nicht mehr nachkommen kann. Oft benutzen die Angreifer dafür Netze aus Computern, die sie mit Malware fernsteuern, sogenannte Botnetze, wodurch DoS zu DDoS wird, zu “distributed denial of service”, also einem verteilten Überlastungsangriff. In letzter Zeit kam der Trend auf, dass DDoS-Gangs Schutzgeld von Webseiten und Plattformen dafür verlangen, keinen Angriff auszuführen.
Bei Ethereum läuft ein DoS-Angriff ein wenig anders. Er kommt nicht von außen, sondern von innen. Jemand schreibt einen sehr speziellen Vertrag, der alle Knoten im Ethereum-Netzwerk dazu zwingt, etwas zu tun. Beispielsweise eine Berechnung durchzuführen. Der Angreifer konstruiert Transaktionen, Verträge und Ketten von Transaktionen und Verträge, die das Netzwerk fluten, indem sie neue Verträge serialisiert erschaffen, diese andere Verträge auslösen lassen, sich selbst ausschalten, und so weiter.
An sich ist Ethereum auf genau so ein Szenario vorbereitet. Dazu dient das Gas, das man als eine Gebühr verstehen kann. Jede Aktion auf der Blockchain kostet Gas, abhängig davon, wie viel Platz und Rechenleistung sie verlangt. Je komplexer ein Vertrag ist, desto mehr Gas muss man bezahlen. Richtig konfiguriert, sollte das System sich eigentlich selbst regulieren.
Allerdings muss Ethereum offenbar noch an der Konfiguration feilen. Der Angreifer nutzt derzeit Fehler in der Gasberechnung aus, die es ihm erlauben, durch viel zu wenig Gebühren den Knoten viel zu viel Arbeit zu machen. Betroffen ist davon insbesondere der Go-Client geth, der aufgrund seiner Architektur anfälliger ist gegenüber DoS-Angriffen als etwa die Clients Parity oder EthereumJ.
In den vergangenen Wochen wiederholte sich dementsprechend ein Muster. Es gibt einen Angriff, Geth-Knoten stürzen ab oder werden langsamer, die geth-Entwickler veröffentlichen ein Update, die Miner passen das Gas-Limit an, es folgt ein neuer Angriff, Geth-Knoten stürzen ab, und so weiter. Parity hat die meiste Zeit sehr stabil funktioniert, während Geth zeitweise nicht benutzbar war und auch jetzt noch scheinbar endlos braucht, um zu synchronisieren.
Der Angreifer muss, natürlich, eine Menge dafür bezahlen, um die Ethereum-Blockchain permanent zu fluten. Allerdings gibt es Vermutungen, dass er dadurch profitiert, indem er entweder Ether shortet oder selbst leere Blöcke mined (und durch die Angriffe gleichzeitig die anderen Miner behindert). Solange es Lücken gibt, wird Ethereum angegriffen. Der Kriegszustand wird vermutlich andauern.
Die ICO-Maschine brummt
Die Crowdsales von Token auf der Ethereum-Blockchain gehen unterdessen munter weiter. Merkwürdigerweise tut der fortlaufende Angriff auf Ethereum der Begeisterung um die neuen Coins keinerlei Abbruch. Auch in dieser Woche haben Startups durch ICO (Initial Coin Distribution) mehrere Millionen Euro eingenommen.
Am grellsten leuchtet SingularDTV. Die “Netflix-ähnliche” Ethereum-basierende Plattform für die Produktion und Distribution von Filmen soll die Urheberrechtsverträge als Smart Contract verwalten. Das Startup vereint mehrere Projekte, die von der Produktion einer eigenen Sci-Fi-Serie (“Singular”) bis hin zum Video-on-Demand-Portal reichen. SingularDTV hat insgesamt eine Milliarde SNGLS-Token erschaffen, davon 500 Millionen zu einem Preis von 1-2 Tausendstel Ether verkauft und so rund 7,5 Millionen Dollar eingenommen. Eigentlich läuft die ICO noch, doch alle verfügbaren Token sind bereits verkauft.
Bis zum 10. November läuft hingegen der Sale der Kibo-Token. Kibo ist “das erste dezentrale Lotto” auf Basis von Smart-Contracts in der Ethereum-Blockchain. Damit soll Lotto fair sein und transparent. Wenn man bedenkt, dass rund die Hälfte der Weltbevölkerung Lotto spielt und nur die Hälfte von dem, was die Leute einzahlen, an die Gewinner ausbezahlt wird, sollte hierin ein Riesengeschäft liegen. Zwar ist Kibo, die Firma, nicht wirklich transparent – laut FAQ besteht das Team aus “einigen Dutzend erfahrener Experten”, die jedoch namentlich nicht genannt werden – doch für die Investoren scheint das Konzept attraktiv zu sein. Die ICO hat bereits mehr als 200.000 Ether und damit fast 3 Millionen Dollar in die Kassen von Kibo gespült.
Beendet wurde dagegen der Crowdsale der REP-Token von Augur bereits am 1. Oktober vor einem Jahr. Der dezentrale Prediction-Market auf Basis der Ethereum-Blockchain hat rund 5 Millionen Dollar in Bitcoin und Ethereum eingenommen. Seit gestern oder vorgestern werden die REP-Token nun auf Märkten wie Poloniex gehandelt – zu einem deutlich höheren Preis als beim Verkauf, wodurch Augur derzeit eine Marktkapitalisierung von rund 100 Millionen Dollar bekommt. Und damit zu einem der Top-10-Kryptocoins überhaupt wird.
Ist das Irrsinn oder erleben wir gerade – endlich! – den Durchbruch des Crowdfundings? Und droht das ganze ein ganz böses Ende zu nehmen, wenn die Ethereum-Blockchain unter der Last der vielen Token einbricht?
Die DoS Attacke is richtig beschrieben, aber der Satz “wenn die Ethereum-Blockchain unter der Last der vielen Token einbricht” ist völlig falsch. Die Tokensales selber nutzen natürlich das Netz mehr oder weniger intensiv, aber die Token zu “halten” stellt kaum eine Last dar.
Wie richtig von Erik Voorhees angemerkt: https://twitter.com/ErikVoorhees/status/783407818011398144 , machen Angriffe das System nur stärker. Wir sehen gerade wieviel es wert ist, nicht eine Implementierung als Referenz zu haben (cpp bitcoin client), sondern stattdessen nur eine schriftliche Spezifiaktion des Protokolls, und mehrere Implementiereung (in c++, Go, Python, Rust, Java, Ruby, JS, Haskell). Klar gibt es bessere und schlechtere Implementierungen des Protokolls, aber die multi-client Lösung hat gezeigt dass das Netzwerk dadurch sehr robust gegen diesen Angriffen ist.
Hallo Christoph, danke für die Anmerkung. Erfordern die Contracts für die Token denn nicht einiges an Rechenleistung von den Knoten? Auf jeden Fall wünsche ich euch sehr, dass ihr aus den ganzen Angriffen gestärkt hervorgeht!
“die Token zu “halten” stellt kaum eine Last dar.”
Für die Rechner nicht, nur “smart contracts” sind eine Belastung für sie und für diese Belastung muss man nur den Gaspreis entsprechend fair anpassen.
Aber für die Benutzer stellen die ganzen DAPs und DAOs eine Last dar.
Dass “smart contract” ein Oxymoron ist, kommt vielen Ethereum-Nutzern gar nicht in den Sinn. Eine (bisher theoretische) Lotto-DAP ist ein schönes Beispiel, um dies zu verdeutlichen. Ein “smart contract” ist deterministisch und kann damit nur eine pseudo-zufällige Zahl erzeugen. Wenn ich mir den “smart contract” durchlese, sehe ich, wie diese Zahl bestimmt wird und kann darauf mein Tipp anpassen.
Ich kann den Run nicht nachvollziehen. Für mich sieht dieses Prinzip wie ein Paradies für Unternehmen a la “Prokon” aus. Vielleicht bin ich zu pessimistisch, aber mir steigt so ein fischiger Geruch in die Nase..