Was ist Proof of Work (PoW)?
Was ist Proof of Work (PoW)?
HomeArtikel

Was ist Proof of Work (PoW)?

Mittel
Published Dec 6, 2018Updated May 11, 2021
8m


Inhalt


Einführung

Proof of Work (allgemein mit PoW abgekürzt) ist ein Mechanismus zur Vermeidung von Doppelausgaben. Die meisten großen Kryptowährungen verwenden dies als ihren Konsens-Algorithmus. Das ist genau das, was wir eine Methode zur Sicherung des Ledgers der Krypto-Währung nennen.
Proof of Work war der erste Konsens-Algorithmus, der an die Öffentlichkeit gelangte, und ist bis heute der vorherrschende. Er wurde von Satoshi Nakamoto im Bitcoin White Paper von 2008 eingeführt, aber die Technologie selbst wurde lange vorher konzipiert. 

HashCash von Adam Back ist ein frühes Beispiel für einen Proof-of-Work-Algorithmus bevor Kryptowährungen entwickelt wurden. Durch die Anforderung an die Absender, vor dem Versand einer E-Mail einen kleinen Rechenaufwand zu betreiben, konnten die Empfänger Spam eindämmen. Für einen legitimen Absender würde diese Berechnung praktisch nichts kosten, aber für jemanden, der E-Mails massenhaft versendet, würde sich das schnell summieren.


Was ist eine Doppelausgabe?

Eine Doppelausgabe liegt vor, wenn die gleichen Mittel mehr als einmal ausgegeben werden. Der Begriff wird fast ausschließlich im Zusammenhang mit digitalem Geld verwendet – schließlich würde es Ihnen schwer fallen, dasselbe physische Geld zweimal auszugeben. Wenn Sie heute einen Kaffee bezahlen, übergeben Sie Bargeld an einen Kassierer, der es wahrscheinlich in einer Kasse einschließt. Sie können nicht in das Café auf der anderen Straßenseite gehen und einen weiteren Kaffee mit der gleichen Rechnung bezahlen.

Bei digitalen Geldsystemen gibt es die Möglichkeit, dass Sie das tun könnten. Sie haben sicherlich schon einmal eine Computerdatei dupliziert – Sie kopieren sie einfach und fügen sie ein. Sie können die gleiche Datei per E-Mail an zehn, zwanzig, oder fünfzig Personen senden.

Da digitales Geld nur Daten sind, müssen Sie verhindern, dass jemand dieselben Einheiten kopieren und an verschiedenen Orten ausgeben kann. Andernfalls bricht Ihre Währung im Handumdrehen zusammen.

Wenn Sie sich eingehender mit Doppelausgaben befassen möchten, sehen Sie sich Doppelausgaben erklärt an.


Warum ist Proof of Work notwendig?

Wenn Sie unseren Leitfaden zur Blockchain-Technologie gelesen haben, werden Sie wissen, dass die Benutzer Transaktionen an das Netzwerk senden. Diese Transaktionen werden jedoch nicht sofort als gültig angesehen. Das passiert nur, wenn sie in die Blockchain aufgenommen werden. 
Die Blockchain ist eine große Datenbank, die jeder Benutzer einsehen kann, so dass er überprüfen kann, ob Gelder bereits ausgegeben wurden. Stellen Sie es sich so vor: Sie und drei Freunde haben einen Notizblock. Jedes Mal, wenn einer von Ihnen eine Überweisung der von Ihnen verwendeten Einheiten vornehmen möchte, schreiben Sie es auf – Alice bezahlt Bob fünf Einheiten, Bob bezahlt Carol zwei Einheiten, usw.
Es gibt hier noch eine weitere Schwierigkeit – jedes Mal, wenn Sie eine Transaktion durchführen, beziehen Sie sich auf die Transaktion, woher die Gelder kamen. Wenn also Bob Carol mit zwei Einheiten bezahlen würde, würde der Eintrag tatsächlich wie folgt aussehen: Bob bezahlt Carol mit zwei Einheiten aus dieser früheren Transaktion mit Alice.

Jetzt haben wir eine Möglichkeit, die Einheiten zu verfolgen. Wenn Bob versucht, mit denselben Einheiten, die er gerade an Carol geschickt hat, eine weitere Transaktion durchzuführen, werden alle sofort Bescheid wissen. Die Gruppe wird nicht zulassen, dass die Transaktion dem Notizblock hinzugefügt wird.

Nun, das könnte in einer kleinen Gruppe gut funktionieren. Da sich alle kennen, werden sie sich wahrscheinlich darauf einigen, wer von den Freunden Transaktionen auf dem Notizblock hinzufügen soll. Was ist, wenn wir eine Gruppe von 10.000 Teilnehmern wollen? Die Idee mit dem Notizblock lässt sich nicht gut skalieren, weil niemand einem Fremden trauen will, dass er diesen verwaltet.

Hier kommt Proof of Work ins Spiel. Er stellt sicher, dass die Benutzer kein Geld ausgeben, zu dessen Ausgabe sie nicht berechtigt sind. Durch die Verwendung einer Kombination aus Spieltheorie und Kryptographie ermöglicht es ein PoW-Algorithmus jedem, die Blockchains gemäß den Regeln des Systems zu aktualisieren.


Wie funktioniert PoW?

Unser Notizblock oben ist die Blockchain. Aber wir fügen Transaktionen nicht eine nach der anderen hinzu – stattdessen fügen wir sie in Blöcken zusammen. Wir kündigen die Transaktionen dem Netzwerk an, und Benutzer, die einen Block erstellen, nehmen sie in einen Kandidatenblock auf. Die Transaktionen werden erst dann als gültig betrachtet, wenn ihr Kandidatenblock zu einem bestätigten Block wird, d.h. wenn er der Blockchain hinzugefügt wurde.
Das Anhängen eines Blocks ist jedoch nicht billig. Proof of Work erfordert, dass ein Miner (der Benutzer, der den Block erstellt) einen Teil seiner eigenen Ressourcen für das Privileg verbraucht. Diese Ressource ist die Rechenleistung, mit der die Daten des Blocks gehashed werden, bis eine Lösung für ein Rätsel gefunden ist.
Das Hashing der Daten des Blocks bedeutet, dass Sie diese durch eine Hashing-Funktion leiten, um einen Block-Hash zu erzeugen. Der Block-Hash funktioniert wie ein “Fingerabdruck” – er ist eine Identität für Ihre Eingabedaten und ist für jeden Block eindeutig.

Es ist praktisch unmöglich, einen Block-Hash umzukehren, um die Eingabedaten zu erhalten. Wenn Sie eine Eingabe kennen, ist es jedoch einfach für Sie, zu bestätigen, dass der Hash korrekt ist. Sie müssen nur die Eingabe durch die Funktion senden und prüfen, ob die Ausgabe die gleiche ist.

Im Proof of Work müssen Sie Daten bereitstellen, deren Hash bestimmte Bedingungen erfüllt. Aber Sie wissen nicht, wie Sie dorthin gelangen. Ihre einzige Möglichkeit besteht darin, Ihre Daten durch eine Hash-Funktion zu leiten und zu prüfen, ob sie den Bedingungen entsprechen. Ist dies nicht der Fall, müssen Sie Ihre Daten geringfügig ändern, um einen anderen Hash zu erhalten. Wenn Sie auch nur ein Zeichen in Ihren Daten ändern, führt dies zu einem völlig anderen Ergebnis, so dass es keine Möglichkeit gibt, vorherzusagen, wie eine Ausgabe aussehen könnte.

Wenn Sie also einen Block erstellen wollen, spielen Sie ein Ratespiel. In der Regel nehmen Sie Informationen über alle Transaktionen, die Sie hinzufügen möchten, und einige andere wichtige Daten und hashen dann alles zusammen. Da sich Ihr Datensatz jedoch nicht ändert, müssen Sie eine Information hinzufügen, die variabel ist. Andernfalls würden Sie immer den gleichen Hash als Ausgabe erhalten. Diese variablen Daten sind das, was wir als Nonce bezeichnen. Es handelt sich um eine Zahl, die Sie bei jedem Versuch ändern, so dass Sie jedes Mal einen anderen Hash erhalten. Und das nennen wir Mining.

Zusammenfassend lässt sich sagen, dass Mining der Prozess ist, Blockchain-Daten zu sammeln und sie zusammen mit einem Nonce zu hashen, bis man einen bestimmten Hash findet. Wenn Sie einen Hash finden, der die im Protokoll festgelegten Bedingungen erfüllt, erhalten Sie das Recht, den neuen Block an das Netzwerk zu senden. Zu diesem Zeitpunkt aktualisieren die anderen Teilnehmer des Netzwerks ihre Blockchains, um den neuen Block aufzunehmen.

Für große Kryptowährungen sind die Bedingungen heute unglaublich schwierig zu erfüllen. Je höher die Hash-Rate im Netzwerk ist, desto schwieriger ist es, einen gültigen Hash zu finden. Dies wird getan, um sicherzustellen, dass Blöcke nicht zu schnell gefunden werden.
Wie Sie sich vorstellen können, kann der Versuch, riesige Mengen an Hashes zu erraten, auf Ihrem Computer kostspielig sein. Sie verschwenden Rechenzyklen und Strom. Aber das Protokoll wird Sie mit Krypto-Währung belohnen, wenn Sie einen gültigen Hash finden.

Lassen Sie uns zusammenfassen, was wir bisher wissen:

  • Das Mining ist kostspielig für Sie.
  • Sie werden belohnt, wenn Sie einen gültigen Block erzeugen.
  • Wenn ein Benutzer eine Eingabe kennt, kann er deren Hash leicht überprüfen – Benutzer, die keine Miner sind, können ohne großen Rechenaufwand überprüfen, ob ein Block gültig ist.

So weit, so gut. Aber was, wenn Sie versuchen zu betrügen? Was soll Sie davon abhalten, einen Haufen betrügerischer Transaktionen in den Block einzufügen und einen gültigen Hash zu produzieren?

An dieser Stelle kommt die Public-Key-Kryptographie ins Spiel. Wir werden in diesem Artikel nicht in die Tiefe gehen, aber schauen Sie sich Was ist Public-Key-Kryptographie? für einen umfassenden Blick darauf an. Kurz gesagt, wir verwenden einige nette kryptographische Tricks, mit denen jeder Benutzer überprüfen kann, ob jemand das Recht hat, die Gelder, die er auszugeben versucht, zu bewegen.
Wenn Sie eine Transaktion anlegen, unterzeichnen sie diese. Jeder im Netz kann Ihre Signatur mit Ihrem öffentlichen Schlüssel (Public Key) vergleichen und prüfen, ob sie übereinstimmen. Sie werden auch prüfen, ob Sie Ihre Gelder tatsächlich ausgeben können und ob die Summe Ihrer Eingaben höher ist als die Summe Ihrer Ausgaben (d.h., dass Sie nicht mehr ausgeben, als Sie haben).

Jeder Block, der eine ungültige Transaktion enthält, wird vom Netzwerk automatisch abgelehnt. Es ist für Sie teuer, auch nur zu versuchen, zu betrügen. Sie verschwenden Ihre eigenen Ressourcen ohne eine Belohnung zu erhalten.

Darin liegt die Attraktivität von Proof of Work: es macht es teuer, zu betrügen, aber profitabel, ehrlich zu handeln. Jeder vernünftige Miner wird einen ROI erstreben, so dass von ihm erwartet werden kann, sich so zu verhalten, dass er Einnahmen garantiert.



Wollen Sie Krypto-Währungen ausprobieren? Kaufen Sie Bitcoin auf Binance!



Proof of Work vs. Proof of Stake

Es gibt viele Konsens-Algorithmen, aber einer der am meisten geschätzten ist Proof of Stake (PoS). Das Konzept stammt aus dem Jahr 2011 und wurde in einigen kleineren Protokollen umgesetzt. Es wurde jedoch noch in keinem der großen Blockchains übernommen.
In Proof of Stake-Systemen werden die Miner durch Validatoren ersetzt. Es gibt kein Mining und kein Wettrennen beim Raten von Hashes. Stattdessen werden die Benutzer nach dem Zufallsprinzip ausgewählt – wenn sie ausgewählt werden, müssen sie einen Block vorschlagen (oder “formen”). Wenn der Block gültig ist, erhalten sie eine Belohnung, die sich aus den Gebühren für die Transaktionen des Blocks zusammensetzt.
Es kann jedoch nicht irgendein Benutzer ausgewählt werden – das Protokoll wählt sie auf der Grundlage einer Reihe von Faktoren aus. Um teilnahmeberechtigt zu sein, müssen die Teilnehmer einen Stake, d.h. einen vorher festgelegten Betrag in der nativen Währung der Blockchain, einzahlen und einschließen. Der Stake-Einsatz funktioniert wie eine Kaution: So wie die Angeklagten einen hohen Geldbetrag aufbringen, um sie davon abzuhalten, den Gerichtsprozess zu versäumen, schließen die Validatoren einen Stake-Einsatz ein, um Betrüger abzuschrecken. Wenn sie unehrlich handeln, wird ihnen der Stake-Einsatz (oder ein Teil davon) abgenommen.
Proof of Stake hat einige Vorteile gegenüber Proof of Work. Der bemerkenswerteste davon ist der geringere Kohlenstoffausstoß – da es keinen Bedarf an leistungsstarken Mining-Farmen in PoS gibt, beträgt der Stromverbrauch nur einen Bruchteil des Verbrauchs in PoW. 

Dennoch hat es bei weitem nicht die Erfolgsgeschichte des PoW erreicht. Obwohl es als verschwenderisch empfunden werden könnte, ist der Mining-Prozess der einzige Konsensalgorithmus, der sich in der Größenordnung bewährt hat. In etwas mehr als einem Jahrzehnt hat er Transaktionen im Wert von Billionen von Dollar gesichert. Um mit Gewissheit sagen zu können, ob PoS in Punkto Sicherheit mit dem PoS konkurrieren kann, muss das Staking ordnungsgemäß in der "freien Wildbahn" getestet werden.


Fazit

Proof of Work war die ursprüngliche Lösung für das Problem der Doppelausgaben und hat sich als zuverlässig und sicher erwiesen. Bitcoin bewies, dass wir keine zentralisierten Instanzen brauchen, um zu verhindern, dass die gleichen Gelder zweimal ausgegeben werden. Durch geschickten Einsatz von Kryptographie, Hash-Funktionen und Spieltheorie können sich die Teilnehmer in einer dezentralisierten Umgebung auf den Zustand einer Finanzdatenbank einigen.