Proof of Work – Gescholten aber effektiv

Wer sich ausgiebig mit der Blockchain-Technologie beschäftigt, der kommt um ihn nicht herum: den sogenannten Consent-Mechanismus. Bei Bitcoin und anderen Blockchains wird der sogenannte “Proof of Work” als ein solcher Mechanismus verwendet. Es gibt noch weitere Mechanismen wie “Proof of Stake”, aber in diesem Artikel möchte ich beschreiben, was sich hinter diesem “Proof of Work” tatsächlich verbirgt, wie dieser Mechanismus zur Übereinkunft in anarchischen Netzwerken wie Bitcoin verwendet wird und warum dieser Ansatz auch in anderen Anwendungen interessant sein könnte.

Bevor wir uns den Details zuwenden, muss ich noch ein paar Worte zu der allgemeinen Problemstellung verlieren, warum es in einer Blockchain so einen Consent-Mechanismus überhaupt geben muss. Eine Blockchain ist eine Datenbank, die über viele unabhängige Knoten im Internet repliziert wird und Aufzeichnungen enthält, die gegen Manipulation und nachträgliche Änderung geschützt sind. Dabei müssen sich alle gleichberechtigten Knoten des jeweiligen Blockchain-Netzwerks immer wieder darauf verständigen, was die aktuelle akzeptierte Datenbankversion ist und welche neuen Informationen in die Datenbank aufgenommen werden. Genau an dieser Stelle kommt der Consent-Mechanismus zum tragen. Er soll sicherstellen, dass sich alle Knoten in einem Netzwerk gleichberechtigter Knoten auf eine Version der Blockchain-Datenbank verständigen.

Mehrere Versionen einer BlockChain – welche nehmen wir denn?

Was vielleicht am Anfang überrascht, ist die Tatsache, dass es zeitweise mehrere verschiedene Versionen einer Blockchain-Datenbank gegen kann, sogenannte Forks. Ich will das hier nicht weiter erläutern, aber man kann das gerne in der einschlägigen Dokumentation z.B. zum Bitcoin-Netzwerk nachschlagen. Für uns ist hier nur wichtig, dass es solche Zustände im Bitcoin-Netzwerk geben kann. In einer solchen Situation müssen alle Knoten ein Entscheidungskriterium haben, um zu entscheiden, mit welcher Version der Blockchain sie weiterarbeiten und damit welche anderen Versionen sie verwerfen sollen.

Hier kommt der “Proof of Work” zum Einsatz. Das Entscheidungskriterium ist nämlich schlicht die Frage, in welche Version der Blockchain welche Arbeit eingeflossen ist, sie aufzubauen. Dabei wird immer die Version als gültig angesehen, in die die meiste Arbeit eingeflossen ist, die also die meisten Knoten und Teilnehmer als valide angesehen haben. Wenn ich hier von Knoten spreche, meine ich eigentlich Miner, also Teilnehmer, deren Infrastruktur nach neuen Bitcoins schürft und dabei neue Blöcke der Blockchain erzeugt.

Dabei ist der Begriff Arbeit wirklich wörtlich zu nehmen, weil es dabei um die Rechenzeit geht, die benötigt wurde, die jeweilige Version der Blockchain aufzubauen. Die reine Länge der Blockchain in Anzahl von Blöcken spielt dabei keine Rolle. Wo kommt jetzt die Rechenzeit her? Im Bitcoin-Netzwerk darf ein Knoten nur dann einen neuen Block an die Blockchain anhängen, wenn er eine mathematische Aufgabe gelöst hat. Dabei sind die Aufgaben so gestaltet, dass sie zwar schwer zu lösen sind, aber die Lösung leicht überprüft werden kann. Insofern lässt sich auch die Berechtigung, einen neuen Block an die Blockchain anzuhängen, leicht von allen anderen Knoten überprüfen.

Wenn die Arbeit variiert.

Bitcoin ist so konzipiert, dass der Schweregrad der zu lösenden Aufgaben variiert. Ziel ist es, dass alle Knoten im Netzwerk mit ihrer gesamten Rechenpower zusammen etwa alle 10 Minuten eine Lösung finden und damit einen Block an die Blockchain anhängen können. Dabei ist dies ein statistischer Mittelwert und sagt nichts darüber aus, wie lange ein einzelner Knoten tatsächlich rechnen muss, um eine Lösung zu finden. Im Gegenteil, je mehr Knoten im Netzwerk unterwegs sind, umso unwahrscheinlicher ist es, dass ein bestimmter Knoten eine solche Aufgabe löst und damit die Berechtigung erhält, einen neuen Block anzufügen.

Auf diese Weise wird es einem einzelnen Teilnehmer im Bitcoin-Netzwerk erschwert, selbst bei großer Rechenleistung, die Blockchain durch das Beisteuern zu vieler eigener Blöcke zu manipulieren. Je mehr Rechenpower im Netzwerk vorhanden ist, umso schwerer werden die zu lösenden Aufgaben. Kritiker sehen darin eine kolossale Energieverschwendung, da tausende von Knoten ständig vergeblich aufwendige Rechenoperationen durchführen, damit unter ihnen ein Knoten das Rätsel löst. Im Grunde ist es wie ein gigantisches Lottospiel. Die Rechenleistung ist der Einsatz und der errechnete Block mit der Vergütung in BitCoins ist der Gewinn.

Die “Proof of Work”-Methode besteht also erstmal darin, einen Rechenaufwand nachzuweisen, um anschließend eine bestimmte Operation durchführen zu können. Dabei ist immer die BlockChain als gültig anzusehen, in die die meiste Arbeit, der meiste Rechenaufwand hineingeflossen ist. Diese Methode ließe sich aber auch auf andere Anwendungen übertragen. Ein großes Problem heute ist es z.B., der Flut an Spam-E-Mails wirksam zu begegnen.

Proof of Work als Anti-SPAM-Methode?

Viele Methoden wurden mit der Zeit etabliert, um die Flut von SPAM einzudämmen. Bei fast allen Methoden geht es darum, die Berechtigung des Versenders zum Versenden der E-Mails zu prüfen bzw. auf diese Weise SPAM-Versender auszuschließen. Aber das Kernproblem von SPAM ist doch, dass das Versenden von E-Mails beim Versender kaum Aufwand bedeutet. Das ist der Kern des Geschäfts: ohne große Kosten eine Unmenge von Postfächern mit E-Mails zu füttern. Normale Werbepost wäre auf diesem Level unbezahlbar.

Aber genau hier könnte man mit der Proof of Work-Methode nachsteuern. Würde man nämlich zuerst ein auf der E-Mail-Empfängeradresse aufbauendes mathematisches Rätsel lösen müssen, um das Rätsel als auch die Antwort der E-Mail beizufügen, so könnte der Empfänger mit diesem Proof of Work einen SPAM-Versender von einem legitimen Versender unterscheiden. Selbst wenn der PoW nur 1 Sekunde pro E-Mail dauerte, wäre dies für SPAM-Schleudern ein gigantischer Aufwand, der das Geschäftsmodell zumindest unattraktiv macht.

Während dem Proof of Work im Kontext einer BlockChain der Ruf der Energieverschwendung anhaftet, könnte das Verfahren in anderen Bereichen sehr hilfreich sein.