Wenn man sich für Kryptowährungen interessiert kommt man nicht drumrum, man hört es immer wieder in Zusammenhang mit Bitcoin. Es geht um dessen Konsensmechanismus Proof of Work.
Geschichte und Grundprinzip
Das Proof of Work (PoW) Konzept, zu deutsch Arbeitsnachweis, wurde 1997 vom Kryptologen Adam Back entwickelt. Der Brite suchte nach einer Lösung um Spam E-Mails einen Riegel vor zuschieben. Um das zu erreichen nutzte Back die wichtigste Eigenschaft von kryptographischen Hashfunktionen, das Einwegprinzip. Das Einwegprinzip besagt nichts anderes, als dass das Ergebnis der Funktion nicht wieder in die Eingabe zurückgerechnet werden kann. Zur Veranschaulichung basteln wir eine Hashfunktion die die Quersumme der Quersumme multipliziert mit dem Querprodukt der Eingabe im zweistelligen berechnet.
Beispiel: Eingabe = 78145 -> Ausgabe = (7+8+1+4+5)*7*8*1*4*5 = 28000 und davon die Quersumme = 10
Wir sehen wir können die Ausgabe 40 nicht mehr in die Eingabe zurückrechnen. Wenn wir die Eingabe herausfinden wollen, müssen wir raten und alle Möglichkeiten durchprobieren bis die Hashfunktion die 10 ausspuckt. Es kann natürlich sein, besonders wenn der Informationsgehalt der Eingabe größer ist als der der Ausgabe, dass man durch eine andere Eingabe zur 10 kommt. In unserem Fall z.B. alle Zahlen die aus Permutationen der Zifferngruppe (7,8,1,4,5) bestehen wie z.B. die Zahl 54187. Diese falschen Treffer nennt man Kollisionen und es ist Aufgabe der Architekten einer Hashfunktion die Wahrscheinlichkeit dafür auf ein Minimum zu senken. Um das Einwegprinzip zu erhalten muss die Hashfunktion eine völlig andere Ausgabe auch nur bei minimaler Änderung der Eingabe generieren. Damit soll unterbunden werden, dass man die Eingabe algorithmisch annähern kann. Unsere Hashfunktion dient nur zur Demonstration. Richtige, effiziente Hashfunktionen sind wesentlich komplexer aufgebaut
Zurück zu Hashcash. Adam Backs Idee war es, dass die E-Mail mitsamt Header gehasht und die Ausgabe drangehängt wird. Der Hash hat gewissen Regeln zu folgen. So darf er nur in einem gewissen Bereich liegen also in unserem Beispiel sagen wir mal zwischen 5 und 15. Dies hat zur Folge, dass der Sender Eingaben raten muss bis die Bedingung erfüllt ist. Dazu benutzt er ein Feld im Header das er nach belieben variieren kann. Der Empfänger hasht die E-Mail ebenfalls und sieht ob die Ausgabe mit dem angehängten Hash übereinstimmt. Ist dem nicht so, wird die E-Mail als Spam identifiziert, ansonsten ist sie verifiziert.
Normalerweise kostet eine E-Mail nichts, was uns die allbekannte Spammerei beschert hat. Durch diese Technik wird das Absenden von Massenmails deutlich erschwert. Bei jeder E-Mail ist mindestens der Empfänger anders und dies führt zu einem völlig anderen Hash. Der Spammer muss also für jede E-Mail den Hash neu raten was Aufwand und Geld kostet. So wird das Ganze schnell unrentabel und der Inhalt der E-Mails muss wohl überlegt sein.
Wir haben gelernt, dass proof of work eine Technik ist um einen digitalen Arbeitsnachweis zu erbringen. Jeder der einen bestimmten Hash generieren will, muss ihn mehr oder weniger aufwändig durch durchprobieren berechnen. Die Schwierigkeit kann durch eingrenzen der möglichen Ausgaben erhöht werden. Also in unserem Fall grenzen wir als Beispiel alle gültigen Ausgaben auf zwischen 9 und 10 ein. Damit habe ich 8 Möglichkeiten weniger als wenn ich eine gültige Ausgabe als zwischen 5 und 15 definiere. Das heißt, dass es auch weniger mögliche Eingaben gibt die zur gewünschten Ausgabe führen und es muss nach diesen zufällig verteilten Werten folglich länger gesucht werden. Auf ein beliebtes deutsches Sprichwort bezogen, je mehr Nadeln im Heuhaufen sind desto einfacher findet man eine.
Bitcoin, das erste verteilte Kassenbuch der Welt hat die Proof of Work-Technologie später aufgegriffen um den Konsens im verteilten Netzwerk zu bilden.
PoW als Konsensmechanismus
Was ist ein Konsensmechanismus?
Im traditionellen Buchgeldtransfer gibt es eine zentrale Institution, die Bank, die Transaktionsvorgänge erfasst, verrechnet und beglaubigt. Die Handelsparteien vertrauen dieser Instanz und können sie ggf. zur Verantwortung ziehen.
Bei einem dezentralen Ansatz muss sich das ganze Netzwerk darauf einigen welche Transktionshistorie die Gültige ist. Zwar kann die Transaktion, also die Information, dass ich x Einheiten an Adresse y versende, an sich nicht gefälscht werden wenn man nicht im Besitz des entsprechenden privaten Schlüssels ist doch wie wird sichergestellt, dass eine Transaktion vom Netzwerk auch anerkannt ist?
Alle Konsensmechanismen gehen grundsätzlich davon aus, dass die Mehrheit im Netz ehrlich ist, sonst macht das ganze System keinen Sinn. Um diese Mehrheit nachzuweisen gibt es zwei Grundlegende Herangehensweisen. Einmal gibt es die vertrauenslose und einmal die nicht vertrauenlose Lösung. Bei der nicht Vertrauenslosen ist jeder Netzwerkknoten im Netz bekannt. Die Informationen werden durch eine Signatur der vertrauten Netzwerkknoten bestätigt. Bei der Vertrauenslosen ist jeder Knoten anonym und kann dem Netzwerk jederzeit beitreten oder es verlassen. Bei den meisten Kryptowährungen handelt es sich um Vertrauenslose oder Hybride Ansätze.
Proof of Work
Beim Poof of Work Konsensus wird das Hashcash Verfahren genommen um die nötige Mehrheit nachzuweisen. Die Sicherheit baut also auf der Annahme auf, dass die meiste Hashleistung im Netzwerk von ehrlichen Netzwerkknoten stammt. Die Hashleistung gibt an wie viele Hashes pro Sekunde durchprobiert werden können. Da die Netzwerknoten die die Hashleistung bereitstellen für gefundene gültige Hashes belohnt werden nennt man sie auch Miner (analog zum Goldsucher). Das ganze läuft wie folgt ab. Die Transaktionen, also signierte Infomationspakete in denen steht wer wem wie viel sendet zuzüglich frei wählbarer Transaktionsspesen für den Miner, werden von den Sendern dem Netz mitgeteilt. Die Miner greifen die Transaktionen auf und prüfen die Konsistenz der Daten (ist die Signatur gültig?, verfügt der Sender über das Guthaben…) und nehmen sie in einen Block auf. Dieser Block hat ein Größenlimit darf bei Bitcoin z.b. nicht größer als 1 Megabyte sein. Wichtig ist, dass in diesem Block der Hash des Vorherigen enthalten ist. So dass sich eine logische Kette bildet. Nun fängt der Miner an den gesamten Block so lange zu hashen bis ein vom Netzwerk vorgegebener Hash gefunden wird. Er hat dazu ein Zahlenfeld (Nonce genannt), das er ständig verändern kann. Hat er alle Zahlen ausprobiert und noch keinen gültigen Hash gefunden, ordnet er die Transaktionen neu an oder mischt sie mit anderen die noch in keinem Block enthalten sind.
Hat er einen Gültigen Hash gefunden, sendet er den Block an alle Netzwerknoten weiter. Diese prüfen jeweils den Hash und alle Daten auf Konsistenz. Stimmt alles wird der Block akzeptiert und in die Datenbank eingefügt. Wenn 2 gültige Blöcke mit unterschiedlichem Blockhash fast gleichzeitig bei einem Knoten ankommen, speichert er vorerst beide ab. Bei den nächsten die kommen prüft er auf welche der Blöcke diese passen bis sich eine klar längerer Zweig gebildet hat. Der kürzere Zweig stirbt ab.
Das Protokoll
Das Protokoll beinhaltet die Regeln oder auch Akzeptanzkriterien für jeden Block durch die Knoten. Bei Bitcoin sind die wichtigsten Akzeptanzkriterien:
51% Angriff
Wie wir bereits wissen kann man keine Transaktion fälschen aber man kann theoretisch verhindern, dass eine Transaktion auf die Blockchain geschrieben wird oder eine frühere Transaktion rückgängig machen. Alle Blöcke sind ja ineinander verzahnt indem jeder Block den Blockhash des vorherigen Blockes enthält. Wenn ein Angreifer einen Block manipulieren will, muss er den ganzen Zweig verändern der auf den Block gewachsen ist und somit die gesamte Rechenleistung aufbringen, die bereits in diesen Zweig gesteckt wurde. Dies gelingt ihm, wenn er genügend lange im Besitz von mindestens 51% der gesamten Hashleistung des Netzes ist. Er strickt dann an seiner Version der Kette mit gefälschten Zeitstempeln bis in dieser akkumuliert mehr Rechenleistung steckt als in der ehrlichen Version und gibt sie dann dem Netzwerk bekannt. Durch den Konsens, dass man sich auf die Kette mit der meisten Rechenleistung dahinter einigt, werden alle Knoten diese dann akzeptieren. Daraus ergibt sich, dass eine Transaktion umso sicherer ist je mehr Blöcke auf den Transaktionsbeinhaltenden folgen.
51% Angriffe sind extrem kostenaufwändig und machen nur in dem Fall Sinn, wenn man das Netzwerk zerstören will. Möchte man sich einen finanziellen Vorteil verschaffen, indem man seine eigenen Transaktionen Rückgängig macht und doppelte Ausgaben erzeugt hat man mit einem massiven Preissturz zu rechnen und man verliert am Ende. Solche Aktionen würde man auf der Blockchain bemerken und die resultierende Panik die Märkte ins Chaos stürzen.
Vorteile
Nachteile
FAQ
Warum braucht es die Transaktionsgebühren?
Einmal um den Miner zu entlohnen. Bei einem hohen Transaktionsandrang entscheidet sich der Miner natürlich die Transaktionen in den Block zu geben die am meisten dafür Zahlen. Es entwickelt sich ein Markt.
Und ein anderes mal um Spamangriffe zu verhindern. Wenn die Transaktionen nichts kosten würden könnten Angreifer günstig das Netzwerk überlasten indem sie sich einfach selbst ständig Coins überweisen.
Was passiert wenn ein Miner eine Transaktion absichtlich nicht in einen Block verpackt?
Solange die Transaktion mit genügend Transaktionsgebühren versehen ist ist dies kein Problem. Ein anderer Miner wird sie dann in einen Block geben und validieren
Kryptowährungen kannst du auf Binance*, Coinbase* oder eToro* kaufen. Hier geht es zu unserem ->Starterkit.
Folge uns auf Twitter, Instagram, Facebook, Steemit und tritt unserem Telegram News Kanal oder Newsletter bei.
Du würdest diesen Artikel gerne kommentieren? Dann tritt einfach unserer Telegram Diskussions-Gruppe bei.
*Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links. Wenn du über diesen Link etwas kaufst, bekommen wir eine Provision vom Händler. Der Preis verändert sich dabei für dich nicht.