Vitalik Buterin sorgt sich über Skalierbarkeit von Ethereum

Vitalik Buterin. Bild von TechCrunch via flickr.com. Lizenz: Creative Commons

Vitalik Buterin, der Mitgründer und Chefdenker von Ethereum, gibt sich auf Twitter pessimistisch über die Skalierbarkeit der Kryptowährung. Das Problem sei nicht onchain gelöst, und es offchain zu lösen sei sehr hart und habe seine Nachteile. Damit formuliert er als ein allgemeines Problem, was vor allem ein Problem von Ethereum ist.

Wie man Blockchains skaliert, ist eine der großen, seit Jahren kontrovers diskutierten Fragen in der Krypto-Szene. Vitalik Buterin war dabei eigentlich immer optimistisch; er hat versprochen, dass Ethereum vollständig dezentral bleiben wird, während es auf eine riesige Menge an Transaktionen skaliert. Dazu soll einerseits das Ethereum 2.0 oder Serenity genannte kommende Update beitragen, andererseits offchain-Lösungen wie Plasma. Die recht komplexe Roadmap, durch die Ethereum skalieren soll, wird seit Jahren beackert, ohne dass sie richtig vorwärts kommt.

Nun scheinen Vitalik selbst Zweifel am Erfolg des Vorhabens zu kommen. Das zeigt eine Twitter-Konversation, die mit einem Tweet von Chengpeng Zhao von Binance beginnt. Der hatte behauptet, dass neue Blockchains das Problem von Geschwindigkeit und Skalierbarkeit bereits gelöst haben. Er möge zwar Ethereum, aber andere seien bereits weiter. Ich nehme an, er spielt damit auch auf seine Binance-Chain an. Vitalik widerspricht dem energisch:

Es ist überhaupt nicht gelöst. Sogar die neuen, semi-zentralisierten Blockchains schaffen nur hunderte von Transaktionen je Sekunde; AFAIK hat EOS bereits seine Skalierbarkeits-Flaschenhälse erreicht.

Daraufhin fragt ihn jemand, was mit “Second-Layer-Lösungen” wie Lightning sei, die Blockchains skalieren sollen, indem sie die Transaktion von der Blockchain nehmen und offchain prozessieren. Vitalik antwortet darauf, er sehe solche Lösungen “mit der Zeit immer pessimistischer”:

Sie sind einfach nur schwierig zu bauen, verlangen nach zu vielen Bestimmungen von Anreizen für diese Anwendungen, und sind schwer zu generalisieren.

Das ist natürlich ein etwas nebulöser Satz. Daher wird Vitalik gefragt, was er konkret damit meint. Er erklärt: “Daten zurückzuhalten” – wie es das Kernprinzip von allen offchain-Lösungen ist — “ist das absolut größte Risiko, um darumherum Anreize zu kreieren.” Diese seien schwer zu generalisieren, “weil sie spezifische Überlegungen zu den Bevorteiligten brauchen”, etwa diejenigen, die das Recht haben, einen Smart Contract zu beenden. Dann nennt er noch einige weitere Probleme dabei, die Anreize, die derzeit die Smart Contracts regieren, offchain zu bringen.

Redet Vitalik von Kryptowährungen an sich – oder doch nur von Ethereum?

Es ist nicht ganz leicht, die Argumentation von Vitalik vollständig zu verstehen. Er schwankt zwischen Generalisierung und Konkretisierung. Auf der einen Seite sagt er, das Skalierungsproblem sei bei keiner Blockchain gelöst, auf der anderen Seite sind die Bedenken, die er gegen offchain-Lösungen vorträgt, sehr spezifisch für Ethereums Smart Contracts. Eventuell scheint er davon auszugehen, dass Blockchains, die ernstzunehmen sind, selbstverständlich solche Smart Contracts beherrschen müssen. Ob und wie weit seine Kritik auch auf Lightning zutrifft, sagt er nicht; man könnte eventuell feststellen, dass die festgestellten Probleme mit den Anreizen für Channel-Betreiber bei Lightning auch in die Richtung gehen, dass die Anreize problematisch sind.

Aber darum geht es hier nicht. Ethereum ist offenbar sehr viel schneller als erwartet an ein Skalierungslimit geraten. Die Hinweise sind eindeutig: Das Gas-Limit ist schon das ganze Jahr am Limit; es warten ständig 30.000 bis 40.000 Transaktionen darauf, in einen Block zu kommen; die Anzahl täglicher Transaktionen hat ihren Höhepunkt im Januar erreicht; und die Gebühren haben sich auf einem einigermaßen hohen Niveau festgesetzt, ohne allerdings explodiert zu sein.

Die Anzahl der täglichen Ethereum-Transaktionen laut Etherscan.io

Die Größe der Blöcke bei Ethereum. Quelle: ebenfalls Etherscan.io

Das Gaslimit nach Etherscan.io

Die Anzahl unbestätigter Transaktionen nach Etherscan.io

Viel mehr wird erstmal nicht gehen. Die durchschnittliche Größe der Blöcke bewegt sich seit ziemlich langer Zeit in einem Korridor zwischen 15 und 25 Kilobyte. Das ist übrigens interessant, um zu verstehen, weshalb Ethereum ein sehr eigenes Skalierungsproblem hat: Die Miner finden etwa alle 13 Sekunden einen Block. Wenn man das hochrechnet, sind das etwa 46 Blöcke in zehn Minuten. Geht man von einer Blockgröße von 20 Kilobyte aus, kommt man auf ein Datenvolumen von knapp einem Megabyte alle zehn Minuten. Das ist weniger als bei Bitcoin.

Ethereum hat also eine Art natürliches Skalierungslimit erreicht – und zwar bei einem Volumen, das Bitcoin seit langem ohne jede Probleme prozessiert. Woran liegt das?

Warum Ethereum seine speziellen Probleme mit der Skalierung hat

Es gibt zwei Antworten auf diese Frage. Erstens bemisst sich der Inhalt von Blöcken bei Ethereum nicht in der Größe in Byte, sondern im Rechenaufwand in “Gas”. Während in einem Bitcoin-Block nur “stumpfe” Transaktionen stecken, ist ein Ethereum-Block voller Rechenoperationen. Ein einfacher Bitcoin-Block würde vermutlich sehr viel weniger Gas verbrauchen als die 46 Ethereum-Blöcke, die im selben Zeitraum gefunden werden. Daher verlangt die Ethereum-Blockchain bei gleicher Größe sehr viel mehr Rechenleistung. Wer schon einmal versucht hat, einen Ethereum-Node zu synchronisieren, wird damit seine leidigen Erfahrungen gemacht haben.

Zweitens gibt es bei Ethereum mehrere Arten von Nodes. Etherscan zeigt den Festplattenspeicher, den ein “Default” und ein “Archive” Node brauchen. Während der Default-Node nicht ganz 200 Gigabyte braucht – und damit ein Stückchen kleiner ist als ein voller Bitcoin-Node – hat der Archive-Node einen unersättlichen Hunger nach Festplattenspeicher: Er braucht ungefähr drei Terabyte. Das ist machbar, geht aber schon ordentlich ins Geld, wenn man wie notwendig eine SSD-Festplatte benutzt; es dürfte auch ziemlich lange dauern, eine solche Blockchain zu schreiben und zu lesen. Zudem wächst sie mit ungefähr einem Terabyte je Halbjahr, was bedeutet, dass ein weiteres Skalieren dazu führen würde, dass die Datenlast schnell unbewältigbar wird. Schon jetzt.

Festplattenspeicher, den ein Archival Node laut Etherscan.io benötigt.

Weshalb braucht es bei Ethereum diese Nodes, die mehr als zehnmal so viel Festplattenspeicher verlangen wie die Blockchain groß ist? In unserem Interview mit Afri Schoedon, dem ehemaligen Release-Manager von Parity, sind wir dieser Frage auf den Grund gegangen. Es liegt, kurz gesagt, daran, dass man bei Ethereum an sich in der Lage sein sollte, jeden Zustand eines Smart Contracts zu rekonstruieren, um zu erkennen, ob er in der Vergangenheit korrekt gearbeitet hat. Dazu reicht es nicht, einfach die Transaktionen anzuschauen – wie bei Bitcoin – sondern man muss einen vergangenen State nachberechnen. Dies ist oft schwer bis gar nicht möglich, weshalb es “Full Archival Nodes” gibt, die jeden einzelnen State aufheben.

Man kann es sich so vorstellen, als würde ein Unternehmen nach jeder Transaktion – jeder verkauften Ware, jeder ausgeführten Gehaltszahlung – die komplette Bilanz neu ausrechnen und ausdrucken. Es ist recht offensichtlich, dass ein solcher Node ein Vielfaches an Speicher braucht im Vergleich zu einem Node, der nur die einfache Blockchain aufhebt. Ethereum würde zwar auch ohne diese Full Archival Nodes funktionieren. Aber eben nicht mehr so gut. Es würde sehr schwierig werden, die Historie vieler Smart Contracts zu rekonstruieren.

Onchain zu skalieren ist also auf Ethereum problematischer als bei Bitcoin und vermutlich auch anderen Kryptowährungen. Wie sieht es aber offchain aus? Hier wird es, natürlich, ebenfalls komplexer, wenn man einen Smart Contract offchain verarbeiten will. Dabei muss ja nicht nur ein Guthaben verarbeitet werden, sondern der gesamte State eines Smart Contracts. Dies verlangt, wie Vitalik Buterin erklärt, maßgeschneiderte Anreize, möglicherweise für jeden Smart Contract an sich.

Gilt dies auch für ganz normale Transaktionen? Eventuell wäre es möglich, dass Ethereum Transaktionen von Ether und Token offchain bringt, um dann die Blockchain für Smart Contracts zu reservieren. Mir fehlt hier der Einblick, um ein klares Urteil abzugeben, aber ich kann mir gut vorstellen, dass sich auch das verkompliziert. Zum einen, weil Ethereum ein Account- anstatt ein UTXO-System benutzt, zum anderen, weil jeder Offchain-Lösung ein Smart Contract unterliegt; es wäre denkbar, dass ein offchain-System auch bei diesem die vergangenen Zustände prüfen muss. Aber das weiß ich nicht genau.

Daher bleiben wir bei der Tatsache stehen, dass Ethereum an ein Skalierungs-Limit gestoßen ist und noch keine betriebsreife Lösung hat, um es zu überwinden. Bis dies soweit ist, kann Ethereum nur “nach innen” skalieren: Es kann nicht die Anzahl der Transaktionen steigern, sondern lediglich den mit ihr verbundenen Wert und Nutzen. Dies könnte mit Anwendungen der Dezentralen Finanzen funktionieren – hier gibt es noch viel Luft nach oben – aber es wäre recht anders, als das, was man von Ethereum einmal erwartet hat.

Über Christoph Bergmann (1629 Beiträge)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder. Christoph hat vor kurzem ein Buch geschrieben: Bitcoin: Die verrückte Geschichte vom Aufstieg eines neuen Geldes. Das Buch stellt Bitcoin in seiner ganzen Pracht dar. Ihr könnt es direkt auf der Webseite Bitcoin-Buch.org bestellen - natürlich auch mit Bitcoin - oder auch per Amazon. Natürlich freuen wir uns auch über Spenden in Bitcoin, Bitcoin Cash oder Bitcoin SV an die folgende Adresse: 1BergmanNpFqZwALMRe8GHJqGhtEFD3xMw. Wer will, kann uns auch Hier mit Lightning spenden. Tipps für Stories sind an christoph.bergmann@mailbox.org immer erwünscht. Wer dies privat machen möchte, sollte meinen PGP-Schlüssel verwenden.

7 Kommentare zu Vitalik Buterin sorgt sich über Skalierbarkeit von Ethereum

  1. Nicht nur ich habe hier seit dem Start von Ethereum meine Skepsis geäußert, einen Weltcompuber bauen zu wollen. Mittlerweile ist auch ein Vitalik scheinbar erwachsen geworden und hat nicht nur begriffen, dass PoS noch kein PoW ersetzen kann, aber auch Skalierbarkeit sich schwer mit komplexen Rechenoperationen verträgt…
    Experten, wie einen Howard Chu anzuziehen, die sich tatsächlich mit sowas auskennen, bleibt wahrscheinlich der “Secret Code” wahrer Open Source Projekte. Und das war Ethereum nie wirklich, es bleibt zentralisiert um Vitalik und hält viele Menschen aus dem wissenschaftlichen Bereich eher zurück. Und dabei wünsche ich Ethereum alles Beste, auch wenn ich nie von dem Projekt überzeugt war und ETH gehalten habe. Es ist immerhin ein Projekt mit aktiver Entwicklung und spannenden Herausforderungen. Wäre schade, wenn es wegbrechen sollte…

  2. Also 200 GB oder 3 TB ist nun erschwinglich heutzutage … der Speicherwächst allgemein die I-net Bandbreite auch … Skalierung könnte durch besserer Transaktionenausnützung optimiert werden, aber das müsste beim User geschehen … SIehe BTC als 2017 die Blockchain voll war. Der Mensch ist etwas faul/träge wenn er sein gewohnten Weg verlassen sollte …

    • Das Problem bei Ethereum (und übrigens auch bei Bitcoin, Monero und fast jedem anderen Projekt) ist kaum die Bandbreite oder gar Speicherkapazität, es ist der Rechenaufwand für die Verifizierung, im Falle Ethereums sogar Ausführung des Codes. Wenn man sich überlegt, dass ein durchschnittlicher Node für die Verifizierung eines Blocks mehrere Sekunden benötigt, bevor er mit dem Mining eines nächsten anfangen kann, ist das bei einer durchschnittlichen Block Time von 13 Sekunden bereits ein ernster Nachteil.

      Dass Bitcoin aktuell mit der beschränkten Blocksize klarkommt, hat damit zu tun, dass das Transaktionsvolumen im Vergleich zu Dezember 2017 abgenommen hat, aber kaum mit der Optimierung von Transaktionen durch Segwit, bech32 oder gar Batching, denn für die meisten Marktteilnehmer lohnen sich diese Optimierungen kaum, zumal sie Transaktionsgebühren so oder so auf die Nutzer abwälzen. So hat auch eine meiner letzten Transaktionen über xmr.to ein scheinbar durchaus optimierbares Potential: https://blockstream.info/tx/e9ebc16da88b9b2077ba9e263a55ffae9a6efb03c0712e5533c10c5ffdc731a6
      “This transaction saved 26% on fees by upgrading to SegWit and could save 13% more by fully upgrading to native SegWit-Bech32”.

      Das Problem bei Bitcoin ist die Softfork-getriebene Abwärtskompatibilität, die eben alle bisherigen Transaktionsschemata unterstützt und dadurch kaum Anreize bietet, doch auf ein neues Format umzusteigen, denn diese Implementierungen sind ggf. teuer und mit Risiken verbunden. Auch Geldautomaten funktionieren heute noch mit Windows XP, obwohl es selbst im erweiterten Programm durch Microsoft nicht mehr unterstützt wird, ein Großteil der Infrastruktur bei Banken ist immer noch in Cobol (das ist kein Fabelwesen, sondern eine Programmiersprache) implementiert, obwohl es kaum noch Spezialisten dafür gibt. Never change a running System eben…

      Der radikal andere Weg ist wie Monero es macht und im Schnitt alle 6 Monate einen Hardfork durchführt und wer seine Software nicht auf Stand bringt, ist eben weg bzw. auf einer anderen Chain, die meist nach wenigen Blöcken verwaist. Das passiert selbst (kleineren) Börsen und ist nicht wirklich toll, aber aufgrund der Größe kann sich das Monero mittlerweile leisten und alle Netzwerkteilnehmer werden gezwungen, upzugraden. Das ist dauerhaft aber auch keine sinnvolle Lösung, denn jedes Upgrade bringt Potential für Bugs mit und man wird nach der RandomX Implementierung im Oktober wohl auf 9 oder 12-monatige Protokollupgradezyklen wechseln, später vielleicht sogar noch längere, oder man schleppt eben altes Zeug mit, wie man es jetzt schon mit Payment IDs gemacht hat, weil große Börsen wie Binance es immer noch nicht geschafft haben, auf Subadressen umzuschwenken, aber auch damit ist nach knapp zwei Jahren Schluss und Payment IDs werden im nächsten Upgrade wohl komplett verschwinden. Das ist eine Gratwanderung und als kleines Projekt riskiert man damit durchaus ein Delisting, andererseits hält man durch stetige Updates Developer und auch User bei Laune und vermeidet eine Situation wie bei Litecoin… Das ist vor allem wichtig für Open Source Projekte ohne Foundation / Company dahinter, die die Leute mit Kohle bei Laune hält.

      • Der Rechenaufwand sollte kein Problem sein. Siehe 16 Kerne CPU’s die erschwinglich sind … Ich erinnere mich an ein POW/POS Coin Hobonickels der satte 2 GB Ram verschlang und ein DualCore CPU von Vorteil war … Heute längst Standart QuadCore und 4 – 8 GB RAM … Ich sehe keinen Nachteil von Rechenaufwand / Speicherplatz … eher den Anreiz überhaupt ein Node zubetreiben und zu unterhalten … der ist bei BTC und co nicht gegeben … leider.
        POS und Masternodes eher … Kombination von POW / POS und Masternodes ? Gibt ja noch weitere möglichkeiten … aber das entlohnen der Nodes sollte mann nicht vergessen (dezentralisation)

      • @SpecT
        Mit jeder Erhöhung der Kapazität steigen die Anforderungen an Nodes, insbesondere bei Ethereum mit den Blöcken alle paar Sekunden und wenn man sich alleine die Ping Zeiten zwischen Australien und dem Rest der Welt ansieht, vergehen mehrere Sekunden alleine für die Übertragung eines Blocks ( https://wondernetwork.com/pings/Sydney ) und auch ein Rechner mit 16 Kernen ist nicht unbedingt eine Lösung, da man viele Aufgaben nicht parallelsieren kann oder noch nicht hat. Auch das ist Optimierungsarbeit, die noch priorisiert werden muss, wenn Kryptowährungen skalieren sollen. Und selbst dann erledigt ein 16-Core Prozessor die Arbeit nicht 16 Mal effizienter als einer mit einem Kern, sondern meist eher um den Faktor 2-4 und das ist fast irrelevant, denn wenn es um Skalierbarkeit geht, sprechen wir von deutlich größeren Faktoren, x1000 oder mehr.

  3. Zilliqa meinen sie hätten die erste funktionierende Sharded Architecture Plattform
    https://preview.zilliqa.com/zilliqa-blockchain

    • Das stimmt wohl, obwohl ich die Details lediglich überflogen habe, aber sie haben sich für eine Art “Sharding Light” für “Sharded Processing” ohne “Sharded State” entschieden. Immerhin PoW und in der Theorie ist eine gute Dezentralisierung machbar.

      Wie ich das verstehe (kein Anspruch auf Richtigkeit):
      – Transaktionen, die innerhalb eines Shards durchgeführt werden, können “beliebig” parallel verarbeitet werden, der Shard ähnelt also stark einer eigenen Blockchain. “Beliebig” deshalb, weil die gleichen Limitierungen wie bei einer Blockchain aufkommen und eine sehr populäre dApp, die z.B. Ethereum alleine platt machen könnte (Cryptokitties und Co.), dürfte auch damit “exklusiv” an ihre Grenzen kommen.
      – Transaktionen, die mehrere Shards betreffen dürfen mit keinen anderen Transaktionen verarbeitet werden.

      Hier ausführlicher: https://medium.com/nearprotocol/limitations-of-zilliqas-sharding-approach-8f9efae0ce3b (natürlich mit etwas Abstand zu lesen, da NEAR in Konkurrenz zu praktisch allen “dApp” / “Smart Contract” Blockchain Lösungen steht, aber bisher afaik über ein Testnet nicht herausgekommen ist).

      Wahrscheinlich die vollständigste Anlaufstelle für alle, die sich für Sharding interessieren ist das Ethereum Wiki: https://github.com/ethereum/wiki/wiki/Sharding-FAQ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s