Newsticker

Vitalik Buterin über Geschichte und Zukunft von Ethereums Proof-of-Stake

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

Vitalik Buterin tweetet über den geplanten Übergang von Ethereum zu Proof of Stake. In einem Tweetstorm aus sage und schreibe 75 Tweets erklärt er, wie die Forschung an Proof of Stake begannen und verliefen, worin die Probleme und Lösungen liegen und wo die Entwickler heute stehen. Das ist nicht nur informativ, sondern zeigt auch, wie sich konkurrierende Ansätze befruchten können.

„Heute werde ich einen Tweetstorm machen,“ twittert der Leitentwickler von Ethereum, Vitalik Buterin, „der die Geschichte und den Status der Forschung zu Caspar für Ethereum erklärt.“ Es folgen 75 Tweets mit äußerst interessantem, aber teils hochtechnischem Inhalt. Vitalik gibt hier Antworten auf eine der vielleicht wichtigsten technischen Fragen zu Kryptowährungen: Ist Proof of Stake möglich? Was muss noch gemacht werden, um es zu Ethereum zu bringen?

Ich versuche, den Tweetstorm zu verständlich wie möglich zusammenzufassen. Vieles von dem, was Vitalik schreibt, geht über mein Verständnis hinaus. Daher kürze ich an der einen oder anderen Stelle ab. Wer die komplette, technische Version haben will, sollte die Tweets selbst lesen.

Proof of Stake

Proof of Stake bedeutet, dass man nicht wie bei Bitcoin die Miner durch den Einsatz von Rechenleistung darüber entscheiden lässt, wer einen Block an die Blockchain hängt, sondern Investoren, die ihre Coins präsentieren.

Das Mining bei Bitcoin wird Proof of Work genannt. Die Miner beweisen, dass sie Arbeit investieren, indem sie Hashes des nächsten Blocks sowie einer Zufallsvariable berechnen. Jedes Hash ist eine Art Los für eine Lotterie um den nächsten Block, und je mehr Hashes die Miner berechnen, desto größer wird ihre Chance auf die Belohnung. Mining ist ein Wettrennen darum, wer mehr Strom in Lose verwandelt. Man kann darüber diskutieren, wie umweltschädlich es ist, doch der Stromverbrauch ist ohne jeden Zweifel gigantisch.

Proof-of-Stake rühmt sich, eine umweltfreundlichere Alternative zu sein. Die Lose sind nicht Hashes, sondern Signaturen mit privaten Schlüsseln, die Adressen zugeordnet sind, auf denen bestimmte Mengen an Coins liegen. Grob vereinfacht, man hat drei Adressen mit je einer bestimmten Menge Ether, und somit kann man drei Signaturen einreichen. Wenn eine davon bestimmte Voraussetzungen erfüllt, findet man einen Block. Mit Proof-of-Stake konkurrieren also nicht die Besitzer von Mining-Maschinen darum, einen Block zu bilden, sondern die Besitzer von Coins, die damit effektiv verzinst werden. Der Energiebedarf geht gegen Null.

Für die Ethereum-Entwickler stand Proof-of-Stake schon von Anfang an auf der Roadmap. Einerseits, weil es umweltfreundlicher ist, andererseits, weil es wohl erlaubt, die Intervalle zwischen den Blöcken weiter zu reduzieren und etwa Sharding zu implementieren. In seinem Mauve-Paper hat Vitalik genauer beschrieben, weshalb Proof-of-Stake zu einem essentiellen Faktor des Skalierungs-Planes von Ethereum wird.

Die Forschung zu Proof-of-Stake begann bereits im Januar 2014 unter dem Arbeitstitel „Slasher“. Der dabei entworfene Algorithmus war, meint Vitalik, „hochgradig suboptimal.“ Aber er hat „einige wichtige Ideen eingeführt, vor allem den Einsatz von Strafen, um das Nothing-at-Stake-Problem zu lösen.“

Nothing at Stake

Nothing-at-Stake ist einer der Gründe, weshalb viele Experten sagen, dass Proof-of-Stake nicht funktionieren kann. Um es zu verstehen, müssen wir nochmal die Unterschiede zwischen Proof-of-Work und Proof-of-Stake anschauen.

Bei Proof-of-Work muss ein Miner seinen Computer oder Asic benutzen, um einen Block zu finden. Proof-of-Work reproduziert so die Knappheit des physischen Raums für eine digitale Operation: Der Miner hat eine physikalisch einmalige Hardware und muss diese auf etwas richten. Daher kann er zur selben Zeit nur auf einer Chain minen, sagen wir, Bitcoin oder Bitcoin Cash, oder auch auf einer spontan entstehende Fork von Bitcoin, die sich daher schnell wieder schließt.

Bei Proof-of-Stake ist nichts physisches im Spiel. Das ist gut, hat aber den Nachteil, dass der Staker auch nichts „binden“ muss. Er kann ohne Probleme mit beiden Seiten der Fork arbeiten. Er setzt ja nichts direkt ein, sondern signiert lediglich Nachrichten mit seinen Schlüsseln. Dabei hindert ihn nichts, im Falle einer spontanen Fork sowohl eine Nachricht für die eine als auch die andere Chain zu signieren. Bei Chains, die darum konkurrieren, wahr zu sein, ist es für den einzelnen Staker sogar sinnvoll, auf beide zu setzen.

Für das Netzwerk ist dies aber aus mehreren Gründen problematisch. Erstens, weil es Double-Spend-Angriffe ermöglicht. Zweitens, weil es die Konsensfindung in einer Blockchain generell schwächt, wenn ein Staker mit jeder spontan auftretenden Fork arbeiten kann, ohne etwas zu verlieren. Proof-of-Stake schwächt ein entscheidendes Merkmal von Kryptowährungen – den Zwang zum Konsens.

Die Lösung der Ethereum-Entwickler dafür war schon früh, Pfands und Strafen einzuführen. Die Staker müssen eine bestimmte Menge an Coins als Pfand hinterlegen, die unter bestimmten Umständen eingezogen werden können. Etwa wenn der Staker gleichzeitig zwei Chains bearbeitet.

Vitalik Buterin hat zunächst ein relativ kleines Pfand bestimmt, während Vlad Zamfir, der der Diskussion Mitte 2014 beitrat, ein Pfand verlangte, das sehr viel größer ist als die Belohnung für das Finden eines Blocks. Aber an sich waren sich die Entwickler einig, dass ein Pfand ein gutes Mittel ist, um das Nothing-at-Stake-Problem zu lösen.

Long Range Attacks

Doch Nothing-at-Stake ist nicht das einzige Problem. „Wir haben den Großteil des späten Jahres 2014 damit verbracht, Wege zu finden, um mit den ‚Long-Range-Angriffen‘ umzugehen,“ so Vitalik Buterin.

Long-Range-Angriffe bedeuten, dass die Angreifer „ihre Stakes als Guthaben auf der Mainchain auszahlen und dafür benutzen, um eine alternative ‚Angriffschain‘ mit mehr Signaturen zu bilden, so dass sie Clients überzeugen können, auf diese zu wechseln.“ Wenn das in einem kurzen Zeitraum passiert, ist es beherrschbar. Denn dann kann man erkennen, ob ein Staker – Vitalik nennt ihn „Validator“ – zwei widersprüchliche Nachrichten signiert, und ihn dementsprechend bestrafen. „Wenn die Abweichung aber vor langer Zeit geschah (daher heißt es long range attack), kann der Angreifer sein Pfand auszahlen und die Bestrafung auf beiden Chains verhindern.“

Vitalik und seine Mitentwickler entschieden, dass man solche Angriffe nicht vollständig eliminieren kann, aber es möglich ist, mit ihnen umzugehen. Sie führten eine neue Voraussetzung ein: dass die Clients sich mindestens alle vier Monate irgendwie anmelden müssen und dass die Auszahlung des Pfands vier Monate dauert. Dies schien zu reichen, um die Long-Range-Attack weitgehend unschädlich zu machen.

Ökonomische Finalität

Nachdem sich die Entwickler darauf geeinigt hatten, Pfands und Strafen zu verwenden, mussten sie sich über die Details einig werden. Das Ziel war, das zu erzeugen, was Vitalik „ökonomische Finalität“ nennt: dass die Validatoren (die Staker) „Blöcke in einer Weise signieren, dass zu dem Zeitpunkt, wenn ein Block ‚finalisiert‘ ist, es nicht möglich ist, einen widersprüchlichen Block zu finalisieren, ohne dass eine große Menge der Validatoren Nachrichten signeren müssen, die mit ihren früheren Nachrichten in Konflikt stehen, und zwar in einer Weise, dass die Blockchain es erkennen und bestrafen kann.“

Anders ausgedrückt: Wenn ein Block finalisiert ist, soll es keine Möglichkeit geben, dass die Staker einen Block bilden, der die bisherige Historie ändert, ohne dass dies erkannt und bestraft wird.

Vitalik begann „eine große und lange, aber am Ende unproduktive Erforschung von etwas, das ich ‚Konsens durch Wetten‘ genannt habe.“ Die Validatoren sollten Wetten darauf abschließen, welche Blöcke finalisiert werden, und die Wetten selbst sollten bestimmen, welche Chain einen Konsens hat. Die Idee war interessant, aber am Ende nicht sicher genug.

Vlad Zamfir hat währenddessen versucht, ein Design zu entwickeln, das Proof-of-Stake robust gegen Oligopole macht. Er entwickelte einen Ansatz der „Correct By Construction“ genannt wird (CBC). Wenn ein Validator eine Nachricht signiert, die einer vorher signierten Nachricht widerspricht, muss er eine „Rechtfertigung“ einreichen, die beweist, dass die neue Nachricht mehr Support hat und er daher aus legitimen Gründen gewechselt hat. Ein Beispiel wäre, dass es eine geplante Hardfork gibt, und alle Validatoren darum widersprüchliche Nachrichten signieren.

Vitalik Buterin hat sich derweil mit der Forschung zur „praktischen byzantinischen Fehlertoleranz“ beschäftigt (PBFT) und versucht, dies in den Kontekt von Blockchains zu übersetzen. Dafür hat er Regeln definiert, die bestimmen, welche Kombinationen von Nachrichten widersprüchlich und damit verboten sind. Dies führte ihn zu „Casper the Friendly Finality Gadget“ (FFG).

Sowohl Vlad Zamfirs CBC als auch Vitalik Buterins FFG erreichten Finalität in einer Weise, dass es Milliarden von Dollar kostet, um sie zu brechen. Allerdings entschieden sich die beiden Varianten in der technischen Umsetzung erheblich.

Fortschritte auf beiden Seiten

An dieser Stelle wird es ein wenig komplex und verwirrend. Vlad und Vitalik haben ihre beiden Varianten weiterentwickelt und gegenseitig geprüft. Sie haben verschiedene Konzepte der Strafen durchdacht und getestet und auch Maßnahmen gegen 51-Prozent-Angriffe entwickelt. Anders als Proof-of-Work könnte Proof-of-Stake auch dann sicher sein, wenn mehr als die Hälfte der Miner versucht, das System zu brechen.

Beide Versionen machten in den folgenden Jahren große Fortschritte. Vitalik schaffte es sogar, eine Testnet-Version von FFG zu veröffentlichen. Danach verlangsamte sich aber die Entwicklung von FFG. Der Grund war, dass Vitalik FFG als Smart Contract konzipiert hatte. „Das machte einige Dinge einfacher, aber andere schwieriger.“ Im Juni 2018 beschlossen die Entwickler schließlich, diese hybride Form von Proof of Stake fallen zu lassen und stattdessen weiter an vollem Proof of Stake zu arbeiten.

Erneut wurden die beiden Varianten, FFG und CBC, weiter entwickelt. Der Stand ist mittlerweile sowohl bei dem einen als dem anderen recht weit fortgeschritten. Beide müssen jedoch noch, meint Vitalik, „formale Beweise und genauere Spezifizierungen“ erarbeiten und „die Implementierung mit Blick für eine sichere und schnelle Anwendung vorantreiben.“

Damit konkurrieren die beiden Versionen von Caspar Proof-of-Stake weiterhin darum, es ins Mainnet von Ethereum zu schaffen. Über den Zeitpunkt, wann es soweit sein kann, spekuliert Vitalik Buterin nicht.

Über Christoph Bergmann (2796 Artikel)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder ---

3 Kommentare zu Vitalik Buterin über Geschichte und Zukunft von Ethereums Proof-of-Stake

  1. Kartoffelkopf // 23. August 2018 um 19:34 // Antworten

    Flickenteppich. Der Einzige, der das Gefrickel versteht, ist wohl V. Buterin (und selbst da bin ich mir nicht sicher). Deshalb auch der „Tweetstorm“. Wer liest und versteht das? Selbst technisch versierte Personen bekommen damit Probleme.

    KISS: Keep It Simple Stupid.

    Gut, die Menschen wissen und verstehen auch nicht, woher ihr Giralgeld kommt und was damit passiert. Dabei ist das Giralsystem um Längen einfacher, als das, was bei Ethereum zusammengeschustert wurde und wird. Es wird also genug Leute geben die rufen: „Shut up and take my money“.

    Man kann darüber nur den Kopf schütteln! Jedes geflickte Loch wird wohl mindestens ein Weiteres erzeugen. Welches dann wiederum geflickt wird. Ich halte jedenfalls Popcorn für die Zukunft bereit.

    P.S.: Der Beitrag war absichtlich etwas aggressiver formuliert.

  2. Das klingt, als ob Ethereum auf absehbare Zeit nicht Proof of Stake einsetzen kann, weil noch kein praktikabler Weg entwickelt wurde. Das war mir neu. Mein Eindruck bisher war, dass POS kurz bevorsteht. Es scheint sehr schwer zu sein, dieses Problem zu lösen.

    • Kartoffelkopf // 24. August 2018 um 22:13 // Antworten

      Genau so ist es. Der wichtige Satz hierbei ist:

      ‚Beide müssen jedoch noch, meint Vitalik, “formale Beweise und genauere Spezifizierungen” erarbeiten und “die Implementierung mit Blick für eine sichere und schnelle Anwendung vorantreiben.”‘

      Ein (strenger) formaler Beweis kann NUR ein mathematischer Beweis sein! Alles andere würde ich nicht akzeptieren. Wenn die zwei Schlaumeier es bis jetzt, also nach vier Jahren, gerade mal geschafft haben, ihre Ideen in Code zu gießen und unter Laborbedingungen zu testen, dann werden sie mindestens am formalen Beweis scheitern.

      Warum?

      Weil ihnen die Zeit dazu fehlen wird! Seine Behauptungen in 75 Tweets, d.h. 75*280 Zeichen, und mehr als Behauptungen sind das nicht, mathematisch sauber herzuleiten und zu beweisen, erfordert zu Beginn eine saubere Definition der Begrifflichkeiten. Schon diese Aufgabe wird kaum schnell machbar sein. Lemmas, d.h. Hilfssätze, und die daraus folgenden Theoreme werden dann wohl schon mindestens ein Buch füllen. Und alle Aussagen werden auf irgendwelchen, möglicherweise an den Haaren herbeigezogenen Grundannahmen, d.h. Axiomen, basieren. Und je komplexer das System, desto mehr Annahmen sind notwendig.

      D.h. also, dass nicht nur die Mathematik fehlerhaft sein könnte, sondern, dass sogar (irgendwann) die Grundannahmen gar nicht (mehr) greifen.

      Es muss eingentlich fast schon im ureigensten Interesse eines Bitcoiners sein, dass V. dieses System einführt.

Schreibe eine Antwort zu tobiAntwort abbrechen

Entdecke mehr von BitcoinBlog.de - das Blog für Bitcoin und andere virtuelle Währungen

Jetzt abonnieren, um weiterzulesen und auf das gesamte Archiv zuzugreifen.

Weiterlesen