More
    StartBlockchain & KryptoWas ist Proof of Work (PoW)?

    Was ist Proof of Work (PoW)?

    Einführung

    Proof of Work (üblicherweise mit PoW abgekürzt) ist ein Mechanismus zur Verhinderung von Doppelspenden. Die meisten großen Kryptowährungen verwenden dies als ihren Konsensalgorithmus. Das ist genau das, was wir eine Methode zur Sicherung des Hauptbuchs der Kryptowährung nennen.

    Proof of Work war der erste Konsensalgorithmus, der auftauchte, und ist bis heute der vorherrschende Algorithmus. Er wurde von Satoshi Nakamoto im Bitcoin-Whitepaper von 2008 vorgestellt, aber die Technologie selbst wurde schon lange vorher entwickelt.

    HashCash von Adam Back ist ein frühes Beispiel für einen Proof-of-Work-Algorithmus aus der Zeit vor der Einführung von Kryptowährungen. Indem Absender vor dem Versenden einer E-Mail eine kleine Rechenleistung erbringen mussten, konnten die Empfänger Spam eindämmen. Diese Berechnungen würden einen legitimen Absender praktisch nichts kosten, sich aber für jemanden, der massenhaft E-Mails versendet, schnell summieren.

    Was ist eine Doppelausgabe?

    Eine doppelte Ausgabe liegt vor, wenn dasselbe Geld mehr als einmal ausgegeben wird. Der Begriff wird fast ausschließlich im Zusammenhang mit digitalem Geld verwendet – schließlich ist es schwierig, dasselbe Bargeld zweimal auszugeben. Wenn Sie heute einen Kaffee bezahlen, übergeben Sie das Bargeld an einen Kassierer, der es wahrscheinlich in einer Kasse einschließt. Sie können nicht in den Coffeeshop gegenüber gehen und einen weiteren Kaffee mit demselben Schein bezahlen.

    Bei digitalen Bargeldprogrammen besteht die Möglichkeit, dass Sie das können. Sie haben sicher schon einmal eine Computerdatei vervielfältigt – Sie kopieren sie einfach und fügen sie ein. Sie können dieselbe Datei per E-Mail an zehn, zwanzig, fünfzig Leute schicken.

    Da es sich bei digitalem Geld nur um Daten handelt, müssen Sie verhindern, dass Menschen die gleichen Einheiten kopieren und an verschiedenen Orten ausgeben. Andernfalls wird Ihre Währung im Handumdrehen zusammenbrechen.

    Einen tieferen Einblick in das Thema Doppelausgaben finden Sie in Double Spending Explained.

    Warum ist ein Proof of Work erforderlich?

    Wenn Sie unseren Leitfaden zur Blockchain-Technologie gelesen haben, wissen Sie, dass Nutzer Transaktionen an das Netzwerk senden. Diese Transaktionen werden jedoch nicht sofort als gültig betrachtet. Das geschieht erst, wenn sie zur Blockchain hinzugefügt werden.

    Die Blockchain ist eine große Datenbank, die jeder Nutzer einsehen kann, so dass er überprüfen kann, ob Gelder bereits ausgegeben wurden. Stellen Sie sich Folgendes vor: Sie und drei Freunde haben einen Notizblock. Jedes Mal, wenn einer von Ihnen eine Überweisung von Einheiten vornehmen möchte, schreiben Sie es auf – Alice zahlt Bob fünf Einheiten, Bob zahlt Carol zwei Einheiten usw.

    Hier gibt es noch eine weitere Komplikation: Jedes Mal, wenn Sie eine Transaktion durchführen, beziehen Sie sich auf die Transaktion, aus der die Mittel stammen. Wenn Bob also Carol mit zwei Einheiten bezahlt, würde der Eintrag folgendermaßen aussehen: Bob zahlt Carol zwei Einheiten aus dieser früheren Transaktion mit Alice.

    Jetzt haben wir eine Möglichkeit, die Einheiten zu verfolgen. Wenn Bob versucht, eine weitere Transaktion mit denselben Einheiten durchzuführen, die er gerade an Carol geschickt hat, weiß das jeder sofort. Die Gruppe wird nicht zulassen, dass die Transaktion zum Notizblock hinzugefügt wird.

    Das könnte in einer kleinen Gruppe gut funktionieren. Da sich alle kennen, werden sie sich wahrscheinlich darauf einigen, wer von den Freunden Transaktionen in den Notizblock eintragen soll. Was aber, wenn wir eine Gruppe von 10.000 Teilnehmern haben wollen? Die Idee mit dem Notizblock lässt sich nicht gut skalieren, denn niemand möchte ihn einem Fremden anvertrauen.

    Hier kommt der Proof of Work ins Spiel. Er stellt sicher, dass die Nutzer kein Geld ausgeben, zu dem sie nicht berechtigt sind. Durch eine Kombination aus Spieltheorie und Kryptografie ermöglicht ein PoW-Algorithmus jedem, die Blockchain gemäß den Regeln des Systems zu aktualisieren.

    Wie funktioniert PoW?

    Unser obiger Notizblock ist die Blockchain. Aber wir fügen die Transaktionen nicht einzeln hinzu, sondern fassen sie zu Blöcken zusammen. Wir geben die Transaktionen im Netzwerk bekannt, und die Benutzer, die einen Block erstellen, fügen sie in einen Kandidatenblock ein. Die Transaktionen werden erst dann als gültig betrachtet, wenn der Blockkandidat zu einem bestätigten Block wird, was bedeutet, dass er der Blockchain hinzugefügt wurde.

    Das Anhängen eines Blocks ist jedoch nicht billig. Ein Proof of Work erfordert, dass ein Miner (der Benutzer, der den Block erstellt) für dieses Privileg einen Teil seiner eigenen Ressourcen verbraucht. Diese Ressource ist die Rechenleistung, die zum Hashing der Blockdaten verwendet wird, bis eine Lösung für ein Rätsel gefunden wird.

    Das Hashing der Blockdaten bedeutet, dass Sie die Daten 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 einzigartig.

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

    Beim Proof of Work müssen Sie Daten bereitstellen, deren Hash bestimmten Bedingungen entspricht. Aber Sie wissen nicht, wie Sie dorthin kommen. Ihre einzige Möglichkeit ist, 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 leicht verändern, um einen anderen Hash zu erhalten. Wenn Sie auch nur ein einziges Zeichen in Ihren Daten ändern, führt dies zu einem völlig anderen Ergebnis, so dass es keine Möglichkeit gibt, die Ausgabe vorherzusagen.

    Wenn Sie also einen Block erstellen wollen, ist das ein Ratespiel. Normalerweise nimmt man Informationen über alle Transaktionen, die man hinzufügen möchte, und einige andere wichtige Daten und fügt sie dann zu einem Hash zusammen. Da sich Ihr Datensatz jedoch nicht ändern wird, müssen Sie eine variable Information hinzufügen. Andernfalls würden Sie immer denselben Hash als Ausgabe erhalten. Diese variablen Daten nennen wir Nonce. Es handelt sich um eine Zahl, die bei jedem Versuch geändert wird, so dass man jedes Mal einen anderen Hash erhält. Und das ist es, was wir Mining nennen.

    Zusammenfassend lässt sich sagen, dass Mining der Prozess ist, bei dem Blockchain-Daten gesammelt und zusammen mit einer Nonce gehasht werden, bis man einen bestimmten Hash findet. Wenn Sie einen Hash finden, der die vom 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 die wichtigsten Kryptowährungen ist es heute unglaublich schwierig, diese Bedingungen zu erfüllen. Je höher die Hash-Rate im Netzwerk ist, desto schwieriger ist es, einen gültigen Hash zu finden. Damit soll sichergestellt werden, dass Blöcke nicht zu schnell gefunden werden.

    Wie Sie sich vorstellen können, kann der Versuch, große Mengen von Hashes zu erraten, für Ihren Computer kostspielig sein. Sie verschwenden Rechenzyklen und Strom. Aber das Protokoll belohnt Sie mit Kryptowährung, wenn Sie einen gültigen Hash finden.

    Lassen Sie uns zusammenfassen, was wir bisher wissen:

    • Es ist teuer für Sie, es abzubauen.
    • Sie werden belohnt, wenn Sie einen gültigen Block erstellen.
    • Wenn ein Benutzer einen Input kennt, kann er dessen Hash leicht überprüfen – Nicht-Mining-Benutzer können die Gültigkeit eines Blocks überprüfen, ohne viel Rechenleistung aufwenden zu müssen.

    So weit, so gut. Aber was ist, wenn man versucht zu betrügen? Was hält Sie davon ab, einen Haufen betrügerischer Transaktionen in den Block einzufügen und einen gültigen Hash zu erzeugen?

    Hier kommt die Public-Key-Kryptografie ins Spiel. Wir werden in diesem Artikel nicht in die Tiefe gehen, aber unter Was ist Public-Key-Kryptografie? finden Sie einen umfassenden Überblick darüber. Kurz gesagt, wir verwenden einige raffinierte kryptografische Tricks, mit denen jeder Benutzer überprüfen kann, ob jemand das Recht hat, das Geld, das er auszugeben versucht, zu bewegen.

    Wenn Sie eine Transaktion erstellen, signieren Sie sie. Jeder im Netz kann Ihre Unterschrift mit Ihrem öffentlichen Schlüssel vergleichen und prüfen, ob sie übereinstimmen. Außerdem wird geprüft, ob Sie Ihr Geld tatsächlich ausgeben können und ob die Summe Ihrer Eingaben höher ist als die Summe Ihrer Ausgaben (d. h., ob Sie nicht mehr ausgeben, als Sie haben).

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

    Darin liegt die Schönheit von Proof of Work: Es macht es teuer, zu betrügen, aber profitabel, ehrlich zu handeln. Jeder vernünftige Miner strebt nach ROI, also kann man von ihm erwarten, dass er sich so verhält, dass er Einnahmen garantiert.

    Proof of Work vs. Proof of Stake

    Es gibt viele Konsensalgorithmen, aber einer der am meisten erwarteten ist Proof of Stake (PoS). Das Konzept stammt aus dem Jahr 2011 und wurde bereits in einigen kleineren Protokollen umgesetzt. Es hat sich jedoch noch nicht in einer der großen Blockchains durchgesetzt.

    Bei Proof-of-Stake-Systemen werden die Miner durch Validierer ersetzt. Es gibt kein Mining und keinen Wettlauf im Erraten von Hashes. Stattdessen werden die Nutzer nach dem Zufallsprinzip ausgewählt – wenn sie ausgewählt werden, müssen sie einen Block vorschlagen (oder „fälschen“). 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 jeder beliebige Nutzer 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 Einsatz hinterlegen, bei dem es sich um einen vorher festgelegten Betrag in der Blockchain-Währung handelt. Der Einsatz funktioniert wie eine Kaution: So wie Angeklagte eine große Geldsumme hinterlegen, um sie davon abzuhalten, den Prozess zu schwänzen, sperren die Validierer einen Einsatz, um von Betrug abzuschrecken. Wenn sie unehrlich handeln, wird ihr Einsatz (oder ein Teil davon) eingezogen.

    Proof of Stake hat einige Vorteile gegenüber Proof of Work. Der bemerkenswerteste ist der geringere CO2-Fußabdruck – da bei PoS keine leistungsstarken Mining-Farmen benötigt werden, beträgt der Stromverbrauch nur einen Bruchteil des Verbrauchs bei PoW.

    Das heißt, es hat nicht annähernd die Erfolgsbilanz von PoW. Obwohl es als verschwenderisch empfunden werden könnte, ist Mining der einzige Konsensalgorithmus, der sich in großem Maßstab bewährt hat. In etwas mehr als einem Jahrzehnt hat er Transaktionen im Wert von Billionen von Dollar gesichert. Um mit Sicherheit sagen zu können, ob PoS mit seiner Sicherheit mithalten kann, muss Staking in freier Wildbahn getestet werden.

    Abschließende Gedanken

    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 hat bewiesen, dass wir keine zentralisierten Instanzen brauchen, um zu verhindern, dass dasselbe Geld zweimal ausgegeben wird. Durch den geschickten Einsatz von Kryptographie, Hash-Funktionen und Spieltheorie können sich die Teilnehmer in einer dezentralen Umgebung auf den Stand einer Finanzdatenbank einigen.

    Lesen Sie den Originalartikel hier.