Einführung
Proof of Work (PoW) ist ein Mechanismus zur Vermeidung doppelter Ausgaben. Die meisten Kryptowährungen verwenden es als Konsensalgorithmus, der zur Sicherung des Ledgers dient.
Proof of Work ist der erste und beliebteste Konsensalgorithmus. Sie wurde von Satoshi Nakamoto in einem 2008 veröffentlichten Bitcoin-Whitepaper vorgestellt, die Technologie selbst wurde jedoch schon lange vorher vorgeschlagen.
HashCash von Adam Back ist ein frühes Beispiel für die Verwendung des Proof-of-Work-Algorithmus vor dem Aufkommen von Kryptowährungen. Wenn vor dem E-Mail-Versand ein paar Berechnungen durchgeführt werden müssten, würde dies die Spam-Menge erheblich reduzieren. Solche Berechnungen kosten für den durchschnittlichen Versender praktisch nichts, erschweren jedoch den Massenversandprozess erheblich.
Was sind Doppelausgaben?
Doppelte Ausgaben liegen vor, wenn dieselben Mittel mehr als einmal ausgegeben werden. Dieser Begriff wird fast immer im Zusammenhang mit digitaler Währung verwendet, da man sich im wirklichen Leben kaum eine Situation vorstellen kann, in der man dasselbe Geld zweimal ausgeben kann. Wenn Sie beispielsweise Kaffee kaufen, übergeben Sie dem Kassierer Geld, der es in die Kasse einzahlt. Sie können nicht in ein Café auf der anderen Straßenseite gehen und mit derselben Rechnung einen zweiten Kaffee bezahlen.
Im Bereich des digitalen Geldes ist dies möglich. Dies kann mit dem Duplizieren einer Datei auf einem Computer verglichen werden. Wir müssen es nur kopieren und einfügen. Sie können dieselbe Datei auch an zehn, zwanzig oder mehr Personen senden.
Da es sich bei digitalem Geld lediglich um Daten handelt, muss verhindert werden, dass Personen dieselben Einheiten kopieren und an verschiedene Orte senden/ausgeben. Andernfalls wird eine solche Währung in kürzester Zeit zusammenbrechen.
Um mehr über doppelte Ausgaben zu erfahren, lesen Sie den Artikel Was sind doppelte Ausgaben?
Warum ist ein Arbeitsnachweis erforderlich?
Wenn Sie unseren Leitfaden zur Blockchain-Technologie bereits kennen, wissen Sie, dass Benutzer Transaktionen an das Netzwerk übertragen. Transaktionen werden jedoch nicht sofort gültig, sondern erst nach Überprüfung und Aufnahme in die Blockchain.
Blockchain ist eine große offene Datenbank, in der jeder Benutzer überprüfen kann, ob bereits Gelder ausgegeben wurden. Stellen wir uns das folgende Szenario vor: Sie und drei Ihrer Freunde haben einen Notizblock. Jedes Mal, wenn jemand eine Überweisung vornehmen möchte, machen Sie sich eine Notiz: Alice hat Bob fünf Einheiten geschickt, Bob hat zwei Einheiten an Carol überwiesen und so weiter.
Es gibt jedoch eine Besonderheit: Bei jeder Überweisung beziehen Sie sich auf die vorherige Transaktion, von der Sie das Geld erhalten haben. Wenn Bob also zwei Einheiten an Carol sendet, sieht der Eintrag wie folgt aus: Bob überträgt die beiden Einheiten, die er zuvor von Alice erhalten hat, an Carol.
Jetzt haben wir die Möglichkeit, alle Überweisungen zu verfolgen. Wenn Bob versucht, eine weitere Transaktion mit denselben Einheiten durchzuführen, die er gerade an Carol gesendet hat, wird jeder sofort davon erfahren und das Team erlaubt ihm nicht, diese Transaktion im Notizbuch aufzuzeichnen.
Ein solches System kann in einer kleinen Gruppe von Personen gut funktionieren, in der sich alle Teilnehmer gut kennen, da es für sie einfacher ist, sich darauf zu einigen, wer für das Hinzufügen von Transaktionen zur gemeinsamen Liste verantwortlich ist. Was aber, wenn wir eine Gruppe von 10.000 Mitgliedern versammeln wollen? Die Idee, einen Notizblock zu verwenden, lässt sich nicht gut skalieren, da niemand einem Fremden die Verwaltung eines solchen Finanzbuchs anvertrauen würde.
Genau so funktioniert Proof of Work. Es stellt sicher, dass Benutzer kein Geld ausgeben, das sie nicht ausgeben können. Mithilfe einer Kombination aus Spieltheorie und Kryptographie ermöglicht der Algorithmus jedem Benutzer, die Blockchain gemäß den Regeln des Systems zu aktualisieren.
Wie es funktioniert?
Ein Notizblock ist eine Art Blockchain. Allerdings werden Transaktionen nicht einzeln zum System hinzugefügt, sondern zu Blöcken zusammengefasst, die anschließend von Benutzern, die den Block erstellen, in einen Kandidatenblock aufgenommen werden. Transaktionen gelten erst dann als gültig, wenn der Kandidatenblock bestätigt und zur Blockchain hinzugefügt wurde.
Das Hinzufügen eines Blocks zur Blockchain ist ein kostspieliger Prozess. Proof of Work erfordert, dass der Miner (der Benutzer, der den Block erstellt) seine eigenen Ressourcen nutzt und ihn dafür mit bestimmten Privilegien belohnt. Bei dieser Ressource handelt es sich um Rechenleistung, die zum Hashen der Blockdaten verwendet wird, bis eine Lösung für das Problem gefunden ist.
Beim Hashing eines Blocks wird dieser durch Hash-Funktionen geleitet, um einen Hash zu generieren. Der Block-Hash fungiert als „Fingerabdruck“ und dient als Kennung für die Eingabedaten, die für jeden Block eindeutig sind.
Führen Sie den Vorgang in umgekehrter Richtung durch, d.h. Es ist nahezu unmöglich, Eingabedaten basierend auf Hash zu erhalten. Sobald Sie jedoch die Eingabedaten kennen, können Sie leicht bestätigen, dass der Hash korrekt ist, indem Sie die Daten durch eine Hash-Funktion laufen lassen und prüfen, ob die Ausgabe übereinstimmt.
Beim Proof of Work müssen Sie Daten bereitstellen, deren Hash bestimmten im Protokoll festgelegten Regeln folgt, sofern Sie nicht wissen, wie Sie diese direkt abrufen können. Die einzige Möglichkeit besteht darin, die Daten durch eine Hash-Funktion laufen zu lassen und zu prüfen, ob sie den Bedingungen entsprechen. Wenn es keine Übereinstimmung gibt, müssen Sie die Daten ä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. Aus diesem Grund ist es unmöglich, einfach vorherzusagen, wie das Ergebnis aussehen wird.
Um einen Block zu erstellen, müssen Sie also den Hash erraten. Dazu verwendet der Benutzer Informationen über alle Transaktionen, die den Blöcken hinzugefügt werden müssen, sowie einige andere Daten, die dann alle zusammen gehasht werden. Da sich der Datensatz jedoch nicht ändert, müssen wir eine Information hinzufügen, die zu einer Variablen wird. Andernfalls ist die Ausgabe immer derselbe Hash. Diese variablen Daten, die eingegeben werden, um einen neuen Hash zu erhalten, werden Nonce genannt, und der Prozess selbst wird Mining genannt.
Beim Mining werden also Blockchain-Daten gesammelt und zusammen mit einem Einmalcode gehasht, bis ein geeigneter Hash gefunden wird. Wenn Sie einen Hash finden, der die vom Protokoll festgelegten Bedingungen erfüllt, erhalten Sie das Recht, einen neuen Block an das Netzwerk zu senden. Zu diesem Zeitpunkt müssen andere Teilnehmer des Netzwerks ihre Blockchains aktualisieren, um den neuen Block aufzunehmen.
Die von den großen Kryptowährungen vorgegebenen Bedingungen sind unglaublich schwer zu erfüllen. Je höher die Netzwerk-Hashrate, desto schwieriger ist es, einen gültigen Hash zu finden. Dies geschieht, um zu verhindern, dass Blöcke zu schnell generiert werden.
Regelmäßige Versuche, eine große Anzahl von Hashes zu erraten, sind teuer, da dadurch eine große Menge an Rechenressourcen und elektrischer Energie verschwendet wird. Wenn es den Minern jedoch gelingt, einen gültigen Hash zu finden, werden sie vom Protokoll für ihre Arbeit belohnt.
Sehen wir uns noch einmal an, was wir behandelt haben:
Der Mining-Prozess ist aufgrund der großen Menge an benötigten Ressourcen sehr teuer.
Nach Abschluss der Arbeiten und Erstellung eines gültigen/bestätigten Blocks erhalten Sie eine Belohnung.
Wenn der Benutzer die Eingabedaten kennt, kann er die Richtigkeit des erzeugten Hashs leicht überprüfen – alle Teilnehmer können überprüfen, ob der Block gültig ist, ohne große Mengen an Rechenressourcen zu verbrauchen.
Was aber, wenn Sie versuchen, das System zu betrügen? Was hindert Sie daran, eine Reihe betrügerischer Transaktionen in einen Block zu packen und einen gültigen Hash zu erstellen?
Zu diesem Zweck wurde die Public-Key-Kryptographie entwickelt. Um mehr über dieses Thema zu erfahren, lesen Sie unseren Artikel Was ist Public-Key-Kryptographie? Kurz gesagt verwendet der Algorithmus bestimmte kryptografische Techniken, die es jedem Benutzer ermöglichen, das Recht eines einzelnen Netzwerkteilnehmers zu überprüfen, Gelder an eine andere Adresse zu überweisen.
Wenn Sie eine Transaktion erstellen, signieren Sie sie. Jeder Netzwerkteilnehmer kann dann die Signatur mit Ihrem öffentlichen Schlüssel vergleichen, um festzustellen, ob sie übereinstimmt. Dadurch wissen Sie, ob Sie Ihr Geld ausgeben können und ob Ihre Ausgaben den zulässigen Betrag nicht überschreiten.
Jeder Block, der eine ungültige Transaktion enthält, wird automatisch abgelehnt. Der Versuch, das Netzwerk auszutricksen, wird Sie viel kosten, da Sie am Ende Ihre Computerressourcen verschwenden, ohne dafür eine Belohnung zu erhalten.
Das ist die Idee von Proof of Work: Es ist für Benutzer profitabler, ehrlich zu handeln, als zu versuchen, das System zu täuschen. Das Protokoll bietet Bergleuten einen Anreiz, zu versuchen, ihre Investition wieder hereinzuholen, sodass die meisten sich an die Regeln halten, um ein garantiertes Einkommen zu erhalten.
Sie fragen sich, wie Sie mit Kryptowährungen beginnen können? Kaufen Sie Bitcoin auf Binance!
Arbeitsnachweis und Nachweis des Einsatzes
Es gibt viele andere Konsensalgorithmen, aber einer der am meisten erwarteten ist Proof of Stake (PoS). Das Konzept stammt aus dem Jahr 2011 und wurde bisher nur in einigen kleinen Protokollen umgesetzt. Es muss noch in größeren Blockchains implementiert werden.
In Netzwerken mit Proof-of-Stake-Konsens übernehmen Validatoren die Rolle der Miner, da das Protokoll nicht mit dem Mining-Prozess und dem Erraten von Hashes verbunden ist. Stattdessen werden Benutzer nach dem Zufallsprinzip ausgewählt und der ausgewählte Teilnehmer muss einen neuen Block vorschlagen. Wenn festgestellt wird, dass ein Block gültig ist, erhält der Validator eine Belohnung in Form von Transaktionsgebühren für diesen Block.
Das Protokoll wählt einen neuen Validator basierend auf mehreren Faktoren aus. Um eine Chance zu haben, ausgewählt zu werden, müssen Sie einige der Token sperren, indem Sie sie dem Einsatz hinzufügen. Dieser Betrag fungiert als eine Art Sicherheit: Prüfer blockieren eine bestimmte Anzahl an Münzen im System, die verloren gehen, wenn der Prüfer versucht, das System zu täuschen. Stake-Coins verfallen, wenn ein Validator versucht, einen ungültigen Block zu validieren.
Proof of Stake hat einige Vorteile gegenüber Proof of Work. Einer davon ist ein kleinerer CO2-Fußabdruck. Dies liegt daran, dass Proof of Stake keine Wartung leistungsstarker Mining-Farmen erfordert und daher viel weniger Strom verbraucht als Proof of Work.
Dies hat jedoch nichts mit der Erfolgsbilanz von PoW zu tun. Obwohl dieser Ansatz als verschwenderisch empfunden werden kann, ist der Bergbau derzeit die einzige Möglichkeit, einen Konsens zu erzielen, der sich auf globaler Ebene bewährt hat. In nur einem Jahrzehnt hat dieser Mechanismus Transaktionen im Wert von mehr als Billionen Dollar verarbeitet. Um zuversichtlich zu sein, dass PoS dieser Konkurrenz mit ausreichender Sicherheit für die Benutzer standhalten kann, müssen wir es noch in einer wilderen Umgebung testen.
Zusammenfassung
Proof of Work ist eine zuverlässige und sichere Lösung für das Problem der doppelten Ausgaben. Bitcoin hat bewiesen, dass es keine zentralisierten Organisationen erfordert. Durch den richtigen Einsatz von Kryptographie, Hash-Funktionen und Spieltheorie können Teilnehmer in einer dezentralen Umgebung selbst den korrekten Betrieb der gesamten Finanzdatenbank überwachen.
