Verwendung von Arbeitsnachweisen in Bitcoin

Ich versuche zu verstehen, welches Problem in Bitcoin Proof of Work gelöst wird, und bin zu diesem etwas hilfreichen Zitat gekommen:

Wenn also beispielsweise ein Miner ein Prozent der Rechenleistung kontrolliert, die zur Validierung von Bitcoin-Transaktionen verwendet wird, dann hat er eine Chance von etwa einem Prozent, den Wettbewerb zu gewinnen. Vorausgesetzt, dass viel Rechenleistung gegen die Konkurrenz eingesetzt wird, hat ein unehrlicher Miner wahrscheinlich nur eine relativ geringe Chance, den Validierungsprozess zu korrumpieren, es sei denn, er verbraucht eine riesige Menge an Rechenressourcen.

Bedeutet dies, dass der Arbeitsnachweis aus folgenden Gründen beispielsweise doppelte Ausgaben verhindert? Stellen Sie sich vor, ein Angreifer führt 100.000 Rogue-Knoten in das Netzwerk ein und ihr Ziel ist es, falsche Informationen über die Transaktionsgültigkeit zu senden – aber da diese Knoten insgesamt einen Arbeitsnachweis erbringen müssen , ist dies für den Angreifer zu kostspielig , wenn alle 100.000 Knoten einen Arbeitsnachweis erbringen . Ist das richtig? Aufgrund dieses Arbeitsnachweises bleiben Angreifer also auf Distanz.

Antworten (4)

Stellen Sie sich vor, ein Angreifer führt 100000 Rogue Nodes in das Netzwerk ein und ihr Ziel ist es, falsche Informationen über die Transaktionsgültigkeit zu senden ...

Das ist nicht möglich. Jeder Node validiert Blöcke und Transaktionen für sich. Es spielt keine Rolle, was ein anderer Knoten darzustellen versucht – wenn der Block ungültig ist, wird er vom empfangenden Knoten ignoriert.

Proof-of-Work ist für die Bestimmung der Blockvalidität nicht erforderlich.

Proof-of-Work macht die Blockgenerierung teuer. Ohne sie könnten Knoten billig Blöcke generieren und den Transaktionsverlauf zurücksetzen, indem sie wohl oder übel Ersatz für vorherige Blöcke veröffentlichen.

Um einen vorherigen Block neu zu schreiben, muss ein Knoten nicht nur den Block selbst neu schreiben, sondern alle seine Nachkommen. Es muss alle Arbeiten wiederholen, die zuvor erledigt wurden.

Um es noch einmal zu wiederholen: Knoten validieren Transaktionen und Blöcke für sich selbst. Proof-of-Work überzeugt Nodes nicht von der Blockvalidität. Es überzeugt sie davon, dass für die Herstellung des Blocks ein gewisser Arbeitsaufwand erforderlich war.

Ein Knoten verwendet den kumulativen Proof-of-Work, wenn er mit einer Auswahl von zwei oder mehr gültigen Blockchains konfrontiert wird. Derjenige mit den meisten Proof-of-Work wird verwendet, um das globale Transaktionsprotokoll zu erstellen.

Die Produktion eines neuen Blocks mag teuer sein, aber die Entscheidung, mit welcher Abzweigung (Block) der Kette fortgefahren werden soll, ist billig, es ist eine Konvention. Die Leute entscheiden sich möglicherweise plötzlich für eine andere Wahl, während Sie schlafen, was die Ausgaben verdoppeln würde. Wie können Sie dann einen vertrauenslosen Konsens erzielen?

Entweder kontrolliert der Angreifer rund 50 % der Rechenleistung oder nicht. Wenn er es nicht tut, ist es egal. Der Rest des Netzwerks wird ihn immer überflügeln können. Wenn er das tut, dann hat er Millionen von Dollar in Mining-Hardware investiert, die allesamt deutlich an Wert verlieren würden, wenn er das Netzwerk angreift. Warum sollte er das Netzwerk angreifen, anstatt nur ehrlich zu minen und riesige Geldsummen an Gebühren zu verdienen und Belohnungen zu blockieren?

Ja, du hast recht . Das Auffinden der Nonce ist eine kostspielige Angelegenheit und verbraucht viel Strom.
Eine Möglichkeit, wie ein Angreifer die Kette ändern kann, besteht darin, eine längere Kette als die vorhandene bereitzustellen. Wenn jemand die länger gültige Kette bereitstellen kann, wechselt das gesamte Netzwerk zur neuen bereitgestellten Kette. Aber dazu muss der Angreifer mehr Hashing-Power haben als das gesamte Netzwerk, um diese Kette zu berechnen.

Aus meiner Sicht ist dieser Arbeitsnachweis dasselbe wie Captcha, das verhindert, dass Miner zu schnell Blöcke generieren. Das Netzwerk (zumindest das offizielle mit dem Namen Bitcoin) reguliert sich selbst. Wenn also Blöcke zu schnell generiert werden, erhöht jeder Knoten unabhängig die Schwierigkeit für Blöcke, die er als gültig betrachtet (dieses Verhalten ist fest codiert). Die doppelte Ausgabe kann auch ohne Angreifer passieren (Sie und ein Junge aus Afrika haben gleichzeitig einen Block generiert und die Mehrheit des Netzwerks hat den afrikanischen Block "benutzt"). Aus diesem Grund wird empfohlen, einige Tage zu warten, auch wenn die offizielle Blockchain anzeigt, dass Ihre Transaktion abgeschlossen ist.