Blockchain

Was ist Proof of Stake?

Was ist Proof of Stake?

Proof of Stake gewinnt immer mehr an Popularität und gehört zum Grundvokabular jedes Blockchain Interessierten. Aber was ist Proof of Stake (kurz: PoS) eigentlich und warum bekommt es immer mehr Aufmerksamkeit

Nicht alle (sogar eher weniger als mehr) Blockchains verwenden Proof of Stake. Die Bitcoin Blockchain verwenden zum Beispiel kein Proof of Stake. Sie und viele Weitere nutzen nämlich Proof of Work (kurz: PoW). Warum wird also Proof of Stake gebraucht, wenn es mit dem bewährten Proof of Work bereits funktioniert?

Eine der größten (und bei genauerem Betrachten sogar ältesten) Kritikpunkte an Bitcoin ist die enorme Menge an Energie, die er verbraucht, wofür zum Großteil das Proof of Work verantwortlich ist. Aber wofür ist Proof of Work eigentlich da?

Eine Blockchain kann man sich auch wie eine dezentrale Datenbank vorstellen. Das heißt, dass zum Beispiel die Transaktionen einer Person nicht auf einem zentralen Server gespeichert werden (wie bei einer Bank), sondern an vielen verschiedenen “Orten”. Diese Orte nennt man auch Nodes (übersetzt: Knoten).

Nun wäre es äußerst unpraktisch, würden die Nodes alle verschiedene Daten speichern, denn so wüsste man nicht, welche Daten nun die richtigen sind. Wenn die Bitcoin-Blockchain zum Beispiel nur aus drei Nodes bestehen würde und die eine Node hat gespeichert, dass Bob 3 BTC ( Bitcoins) hat, während die anderen jeweils 7 BTC und 12 BTC gespeichert haben – wie sollte man sich dann sicher sein, ob Bob sich beispielsweise den Kauf eines Gegenstandes für 10 BTC leisten kann?

Irgendwie muss also ein Konsens zwischen den Nodes einer Blockchain entstehen, sodass sie sich auf einen Datensatz einigen können und man sich auf dessen Richtigkeit verlassen kann. Dafür haben Blockchains einen Konsensmechanismus (engl. consensus mechanism).

Einer dieser Mechanismen ist das bereits erwähnte Proof of Work. Dabei wird der Konsens zwischen den Nodes über das sogenannte Mining erzielt (hier haben wir einen eigenständigen Artikel zu diesem Thema, falls du dich noch tiefer damit beschäftigen möchtest). Um einen neuen Block auf einer Blockchain mit Proof of Work als Konsensmechanismus zu erstellen, muss dieser gemined werden. Dazu müssen die Ersteller der neuen Blöcke – die Miner -, zu jedem Block eine Zahl (die sogenannte Nonce) finden, sodass der Hash des Blocks kleiner ist als eine bestimmte Zahl (Was ein Hash ist kannst du in diesem Artikel nachlesen). Um die Nonce zu finden, gibt es keinen besseren Weg, als zufällige Zahlen auszuprobieren und immer wieder den Hash zu errechnen, um zu schauen, ob man die richtige Zahl gefunden hat. Da der Miner, der als Erstes die passende Nonce findet, die Transaktionsgebühren aus dem Block bekommt, sind die Miner dazu incentiviert immer bessere Computer Hardware zu kaufen, da sie somit mehr Hashs generieren können als die anderen Miner und sie somit ihre Chance auf die Belohnung erhöhen können. Dies zieht jedoch als Konsequenz den großen Hardware- und Energiebedarf mit sich. Zum Beispiel berechnen alle Bitcoin Miner zusammen 100 Billionen Hashes pro Sekunde – was jedoch außerhalb des Bitcoin-Ökosystems kaum einen Nutzen erfüllt.

Proof of Stake

Die Diskussion über die Entwicklung einer Blockchain mit Proof of Stake begann bereits in einigen Bitcoinforen im Jahr 2010 und 2011. Die erste wissenschaftliche Abhandlung erfolgte dann im Jahr 2012 unter dem Namen “PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake” von Sunny King und Scott Nadal. Basierend auf diesem White Paper entwickelten die beiden Autoren dann die erste PoS (Proof of Stake) Blockchain namens Peercoin, deren Kryptowährung (PPC) heute eine Marktkapitalisierung von rund 26 Millionen Euro hat. Peercoin ist jedoch bei Weitem nicht die größte Blockchain, die PoS nutzt; eine der aktuell Größen PoS Blockchains ist wohl Cardano und in Zukunft wird auch Ethereum von Proof of Work zu Proof of Stake wechseln.

Wie funktioniert Proof of Stake?

Die Aufgabe eines Konsensmechanismus ist es eine Person bzw. eine Node zu “bestimmen”, die einen neuen Block erstellen darf und dafür entlohnt wird. Im Beispiel von Proof of Work geschieht dies aus einem Grad an Zufälligkeit, dessen Maß sich nach der Rechenleistung des Miners richtet. Vereinfacht gesagt, ist die Idee von Proof of Stake nicht die Rechenleistung als Kriterium für die Erlaubnis zur Erstellung eines Blocks zu wählen, sondern die Menge an Coins, die jemand besitzt. Auch beim Proof of Stake gibt es einen Faktor an Zufälligkeit, der darüber entscheidet, wer den neuen Block erstellen darf und die damit einhergehende Belohnung bekommt. Während sich beim Proof of Work dieser Grad an Zufälligkeit proportional zur Rechenleistung des Miners bewegt, ist die Zufälligkeit beim Proof of Stake proportional zum Anteil der Coins, die ein Miner besitzt. Daher auch der Begriff “Proof of Stake” (stake heißt übersetzt Anteil). Heute gibt es viele verschiedene Wege zur Umsetzung des Proof of Stake Mechanismus. Deswegen beginnen wir zunächst einmal mit dem PoS Konzept von Peercoin bzw. S. King und S. Nadal, die wie zuvor erwähnt, die erste PoS Blockchain entwickelt haben.

Peercoin

Ein zentraler Begriff in dem von S. King und S. Nadal entwickelten PoS System ist das Coin Age. Coin Age ist jedoch nicht an Proof of Stake gebunden; auch auf der Bitcoin-Blockchain gab es das Coin Age zur Priorisierung von Transaktionen.

Das Coin Age einer Person berechnet sich wie folgt:

Anzahl an Coins * Haltedauer

Wenn Bob also 10 PPC Coins hat und diese bereits seit 90 Tagen hält, würde er über ein Coin Age von 900 Tagen (10 * 90) verfügen. Wenn Bob diese 10 PPC Coins nun an jemand anderes sendet, wären seine 900 Tage Coin Age verbraucht. Die Person, an die Bob seine 10 PPC Coins gesendet hat, verfügt nun über ein Coin Age von 10 Tagen (10 *1). Um die Aufzeichnung der Haltedauer einer Person zu gewährleisten, hat jede Transaktion auf der Peercoin-Blockchain einen sogenannten Timestamp, also den Zeitpunkt, an dem die Transaktion durchgeführt wurde.

Bei der Erstellung eines neuen Blocks wird nun nicht einfach derjenige gewählt, der über das meiste Coin Age verfügt, sondern es gibt auch hier einen Zufallsfaktor. Denn auch auf der Peercoin-Blockchain muss der Miner (im PoS Kontext wird meist nicht der Begriff Miner genutzt, sondern oft Validator oder seltener Staker) einen passenden Hash des Blocks generieren. Jedoch anders als beim Proof of Work, wo die Nonce sich in einem unendlichen Zahlenraum befindet, ist der Zahlenraum auf der Peercoin-Blockchain deutlich begrenzt, sodass die Miner bzw. die Validatoren nicht dazu incentiviert sind, immer mehr und bessere Hardware zu kaufen, da eine bessere Rechenleistung die Wahrscheinlichkeit auf das “Lösen” des Blocks kaum erhöht. Das Hash Target (wenn du noch nicht mit dem Konzept von Target und Difficulty vertraut bist, kannst du in diesem Artikel mehr darüber erfahren) ist dabei proportional zum Coin Age des Validators. Das heißt für die Wahrscheinlichkeit, dass ein Validator einen neuen Block als erster “löst” ist nicht nur die Menge an Coins, die er hat relevant, sondern auch, wie lange er diese bereits hält. Dieses Prinzip können wir nun verdeutlichen, indem wir uns die Erstellung eines Blocks aus Sicht des Validators anschauen:

Hier sehen wir eine vereinfachte Version eines Blocks auf der Peercoin Blockchain.

Der Kernal Input beinhaltet alle “normalen” Daten des Blocks, wie die Transaktionen der Blockchain Nutzer. Wie auch auf einer Proof of Work Blockchain haben diese Daten ein Hash Target (je höher das Target, desto leichter ist es, den passenden Hash zu finden – hier kannst du mehr dazu erfahren). Im Gegensatz zum Proof of Work ist das Target jedoch nicht für alle Miner bzw. Validatoren festgeschrieben, sondern richtet sich nach dem Coin Age der Coinstake Transaktion, die sich von Validator zu Validator unterscheidet. Der Begriff der Coinstake Transaktion ist eine Ableitung der Coinbase Transaktion auf einer Proof of Work Blockchain. In der Coinbase Transaktion sendet der Miner sich selbst die Transaktionsgebühren (alle nicht spezifizierten Transaktionsoutputs) der Transaktionen innerhalb des Blocks (hier in dem Kernal Input) und den Block Reward – also neu emittierte Coins. Ähnliches passiert auch auf der Peercoin Blockchain; hier sendet der Validator in der Coinstake Transaktion seine eigenen PPC Coins an sich selbst, dessen Coin Age dann das Hash Target des Kernal Inputs bestimmt (dazwischen liegt ein Faktor, der sich wie das Target auf der Bitcoin-Blockchain dynamisch anpasst). Hier wird deutlich, dass die Validatoren – im Gegensatz zu den Minern auf einer PoW Blockchain – alle unterschiedliche Targets haben und nicht alle dasselbe. Dennoch muss gewährleistet werden, dass der Validator auch wirklich einen Hash unter dem Target gefunden hat – es muss also überprüft werden, auf Basis welches Targets ein Block erzeugt wurde. Auf einer Blockchain mit PoW ist dies denkbar einfach, da jeder Miner dasselbe Target hat und man bei der Überprüfung eines Blocks den Hash einfach mit dem allgemeinen Target verifizieren kann. Nun gibt es dieses “allgemeine Target” auf einer Blockchain mit PoS nicht; deswegen kann über die im Block gespeicherte Coinstake Transaktion das Coin Age und somit auch das Target des Blocks nachvollzogen und der Block verifiziert werden. Hat ein Validator einen Block erstellt, der von den anderen Nodes akzeptiert wird, wird neben den “normalen” Transaktionen aus dem Kernal Input (siehe Grafik), auch die Coinstake Transaktion ausgeführt; also die Transaktion des Validators an sich selbst. Somit setzt sich das Coin Age der Coins, die der Validator an sich selbst gesendet hat, wieder zurück, was die Wahrscheinlichkeit, dass der Validator mit denselben Coins den nächsten Block erneut als erster “löst”, deutlich verringert. Somit wird gewährleistet, dass niemand, der im Besitz vieler PPC Coins ist und diese bereits seit langer Zeit hält, der Einzige ist, der neue Blöcke erstellt und somit enorme Macht über das Netzwerk hätte.

Wir sehen also, dass Peercoin eigentlich eine Kombination aus Proof of Stake und Proof of Work ist. Aber warum ist das so?

Dem zugrunde liegt eine grundsätzliche Herausforderung der Blockchain Technologie: das Erzeugen von echter Zufälligkeit. Zufälligkeit ist besonders wichtig für den Konsensmechanismus; denn gäbe es keinen Faktor an Zufälligkeit, würde unter Umständen immer dieselbe Node für die Erstellung des nächsten Blocks gewählt werden, wodurch sich das eigentlich so dezentrale System in ein zentrales verwandeln würde.

Zur Erzeugung von Zufälligkeit wird auf der Bitcoin-Blockchain bzw. bei Proof of Work im Allgemeinen ein “Umweg” genommen; denn dieser Zufallsfaktor wird nicht direkt auf der Blockchain erzeugt, sondern durch das zufällige Erzeugen von Hashes auf der Hardware der Miner. Gäbe es diesen Zufallsfaktor nicht und es würde einfach der Miner mit der höchsten Rechenkapazität gewählt werden, würde es womöglich einen Miner geben, der über längere Zeit der Einzige ist, der neue Blöcke erstellt, was ein großes Sicherheitsrisiko darstellen würde.

Der Grund, warum Peercoin also aus einer Kombination von PoS und PoW besteht, ist, dass durch den Anteil an PoW ein Zufallsfaktor entsteht.

Andere Blockchains, die auf Proof of Stake basieren, gehen das Problem der Zufälligkeit anders an und versuchen auch diesen Prozess in das Blockchainsystem selbst zu integrieren. Ein Beispiel für diesen Ansatz ist die Cardano-Blockchain, auf der die Nodes zur Erstellung eines neuen Blocks auf Basis ihres Vermögens in ADA (ADA ist die Währung der Cardano Blockchain) proportional zu einem durch VRFs (Verifiable Random Functions, übersetzt: verifizierbare Zufallsfunktionen) erzeugten Grad an Zufälligkeit ausgewählt werden. Wenn du dich genauer mit der der Proof of Stake Software namens “Ouroboros” der Cardano-Blockchain beschäftigen möchtest, kannst du dir die originale Veröffentlichung der Cardano Foundation dazu anschauen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert