Warum muss ein Gegner 50 % der Rechenleistung kontrollieren, um die Ausgaben zu verdoppeln?

Wenn Transaktionen in einem Block gültig sind, muss ein Proof of Work gefunden werden, um diesen Block in die Blockchain einzufügen. Ich habe das Bitcoin-Papier von Satoshi gelesen.

Wenn die Schwierigkeit des Arbeitsnachweises im Durchschnitt beispielsweise 2^52 Berechnungen (13 Hex-Nullen) erfordert und da jeder Knoten im Netzwerk unabhängig arbeitet, warum kann der mächtige Gegner dann nicht die Länge der aktuellen Blockchain und Gegenwart übertreffen? seine Version der Blockchain ins Netzwerk? Warum muss der Angreifer insbesondere 1 Prozent oder x Prozent der Rechenleistung des Netzwerks kontrollieren, wenn ehrliche Knoten im Netzwerk nicht zusammenarbeiten, um den Arbeitsnachweis zu finden?

Wenn der Gegner einen Proof of Work schneller finden kann als der mächtigste ehrliche Peer, kann er eine längere Blockchain berechnen und an das Netzwerk senden.

Nehmen wir an, dass es 2^20 Knoten im Netzwerk gibt, von denen jeder durchschnittlich 2^40 Hashes pro Sekunde berechnet. Jeder Knoten würde dann 68 Minuten benötigen, um einen Proof of Work zu finden (versucht 2^52 Hashes). Die Gesamtrechenleistung des Netzwerks ist Anzahl der Knoten * Rechenleistung jedes Knotens = 2^20*2^40 = 2^60.

Wenn der Angreifer mit einer Geschwindigkeit von 2^45 Hashes pro Sekunde arbeitet, benötigt er nur 2^7 = 2 Minuten, um einen Arbeitsnachweis zu finden (2^52 Hashes).

Jetzt beträgt die Rechenleistung des Netzwerks 2 ^ 60, aber jeder Knoten versucht unabhängig einen Arbeitsnachweis zu finden. Die Rechenleistung des Gegners im Vergleich zum Netzwerk ist 32.000-mal geringer. Die vom Gegner kontrollierte Menge an Rechenleistung beträgt 1/32000 = 0,00001%, aber er kann immer noch die längere Blockchain berechnen.

Bitte um Hilfe, falls ich hier etwas falsch vermute. Die ehrlichen Knoten im Netzwerk arbeiten nicht zusammen. Der Angreifer muss also nicht 50 % der Rechenleistung im Netzwerk kontrollieren und muss nur mehr Rechenleistung aufwenden als die durchschnittliche Rechenleistung der ehrlichen Knoten.

2^12 ist 4096, also würde jeder Computer mit 2^40 Hashes pro Sekunde 68 Minuten benötigen, nicht 16.
einverstanden, können Sie die Frage beantworten?
Bin zwischendurch etwas ins Abseits gerutscht, aber ich habe es einfach getan. :)
Irrtum: „Wenn der Gegner schneller einen Proof of Work finden kann als der mächtigste ehrliche Peer, kann er eine längere Blockchain berechnen und an das Netzwerk senden.“ sollte sein: "schneller als ALLE ehrlichen Kollegen zusammen."
Wahrscheinlich bereits unten beantwortet, aber "Die ehrlichen Knoten im Netzwerk arbeiten nicht zusammen." ja das tun sie tatsächlich. Das ist das Schöne an PoW. :)
@Jannes: Ja, ich habe beide Punkte in meiner Antwort angesprochen. :)
@Murch Yeah hätte zuerst die Antwort lesen sollen. Super (wieder). Bereits positiv bewertet. Danke.
Jeder Knoten im Netzwerk arbeitet mit unterschiedlichen Eingaben für eine Hash-Funktion, versucht aber, dasselbe Ziel zu erreichen. In gewisser Weise arbeiten also alle Knoten zusammen.

Antworten (2)

Es gibt zwei Annahmen in Ihrer Frage, die nicht ganz richtig sind.

1) Jeder Knoten würde dann 68 Minuten benötigen, um einen Proof of Work zu finden (Versuchen von 2^52 Hashes).

Das Finden eines neuen Blocks ist keine lineare Arbeitsaufgabe, die angesammelt werden muss. Vielmehr handelt es sich um einen Zufallsprozess. Anstelle eines Haufens von Arbeit, den Sie durchmachen und der eine feste Größe hat, können Sie es sich wie eine Lotterie vorstellen: Jeder Versuch kann gewinnen , aber im Durchschnitt braucht es 2^52 Versuche, um zu gewinnen. Diese Unterscheidung ist sehr wichtig, weil …

2) Die ehrlichen Knoten im Netzwerk arbeiten nicht zusammen.

… es ermöglicht dem Netzwerk zusammenzuarbeiten, ohne sich zu koordinieren!
Jede Mining-Entität versucht, einen anderen Block zu bestätigen . Dies liegt daran, dass jeder versucht, die Blockbelohnung für sich selbst zu beanspruchen, daher muss sich mindestens eine Transaktion, die Coinbase-Transaktion , unterscheiden.¹
Da wir also festgestellt haben, dass wir einen zufälligen Prozess betrachten, an dem alle arbeiten unterschiedlichen Daten erkennen wir, dass die ehrlichen Knoten die Arbeit des anderen nicht duplizieren. Daher durchlaufen alle ehrlichen Knoten gemeinsam viel mehr Eingaben als der Gegner und arbeiten tatsächlich zusammen , um einen neuen Block zu finden.
Wie cpast in den Kommentaren darauf hingewiesen hat, ist es auch sehr wichtig zu wissen, dass niemand durch das Wechseln Fortschritte verliert. Daher geht nur die Zeit verloren, die der Block benötigt, um sich durch das Netzwerk zu verbreiten, und jeder wechselt zu dem neuen Block mit dem gerade gefundenen als übergeordnetem Element, sobald er ihn erhält. Schließlich bedeutet dies, dass wir die Mining-Macht des ehrlichen Netzwerks mit der Mining-Macht des Gegners vergleichen müssen, um zu sehen, wer die größere Kette schaffen kann. Und wie Sie selbst gesagt haben, ist das Netzwerk mit Ihren vorbildlichen Zahlen 2^15-mal so mächtig wie der Gegner.

¹ Außerdem können sie mit verschiedenen Sätzen von Transaktionen arbeiten, die Transaktionen werden für verschiedene Bergleute in einer anderen Reihenfolge sein, der Zeitstempel ändert sich jede Sekunde und sie fügen mehr zufällige Daten hinzu, um verschiedene Eingaben auszuprobieren.

Entspricht die Wahrscheinlichkeit, einen Arbeitsnachweis für einen beliebigen Block zu finden, bei dem jeder Knoten an einem anderen Block arbeitet, der Wahrscheinlichkeit, einen Arbeitsnachweis für einen bestimmten Block zu finden, wobei jeder Knoten an demselben Block, aber mit unterschiedlichen Nonce arbeitet?
SHA-256 ist ein kryptografischer Hash-Algorithmus. Das bedeutet, dass niemand vorhersagen kann, welche Eingaben zu einem erfolgreichen Hash führen. Insbesondere ist es unerheblich, wie groß die Änderung zwischen zwei Eingängen ist, da ihre Ausgänge nicht in einem erkennbaren Zusammenhang zueinander stehen. Daher spielt es keine Rolle, was an der Eingabe geändert wird, solange es eine Änderung gibt. Solange also niemand dieselben Eingaben dupliziert, ist die Arbeit an verschiedenen Blöcken oder verschiedenen Nonces gleichwertig.
Endlich habe ich es.
Ich habe gerade Princetons Online-Kurs „ Intro to Crypto and Cryptocurrencies “ entdeckt, der in den ersten Minuten kryptografische Hashfunktionen und Kollisionen behandelt, es scheint sich zum Arbeitsnachweis aufzubauen, aber ich muss jetzt zur Arbeit gehen. ;)

Denn es ist unerheblich, wie lange ein einzelner ehrlicher Node braucht, um einen Block abzubauen. Die ehrlichen Knoten arbeiten unabhängig voneinander, aber wenn einer von ihnen einen Block abbaut, gehen sie alle zum nächsten Block über. Knoten versuchen nicht alle dasselbe; Jeder der 2^20 ehrlichen Nodes betrachtet unterschiedliche Hash-Werte. Während ein einzelner Node also im Durchschnitt nur alle 16 Minuten erfolgreich ist, hat jemand Glück und ist nach einem winzigen Bruchteil einer Sekunde erfolgreich (z. B. gibt es einen 1/16 Chance, dass ein ehrlicher Miner in der ersten Minute erfolgreich ist, also würde man bei 16 ehrlichen Minern erwarten , dass jemand dann erfolgreich ist).

aber wenn ein neuer Block von einem ehrlichen Knoten erfolgreich abgebaut wird, wird er der Blockkette hinzugefügt, und daher müssen alle ehrlichen Knoten dies berücksichtigen, indem sie seinen Hash berechnen und in den einfügen. Daher beginnt für ehrliche Knoten der Arbeitsnachweis aufgrund der Reihenfolge der Blöcke in der Blockkette wieder von vorne. Der Angreifer hingegen kann beispielsweise 5-6 Blöcke in 10 Minuten abbauen und an das Netzwerk senden und so die längere Kette bilden.
Aber die ehrliche Kette bekommt in einem weiteren Bruchteil einer Sekunde einen weiteren Block abgebaut. Jeder Hash hat die gleiche Wahrscheinlichkeit, gültig zu sein, aber die ehrlichen Jungs bekommen 32.000 Hashes zu dem des Bösewichts. „Proof of Work“ ist nicht etwas, auf das Sie hinarbeiten und dann von vorne beginnen müssen, es ist etwas, bei dem Sie in Minute 1 genauso wahrscheinlich einen gültigen Hash erhalten wie in Minute 60.
Außerdem muss der Angreifer seine Blockchain erhöhen, wenn er einen Block schürft; Selbst wenn „von vorne anfangen“ eine Sache wäre, müsste der Angreifer dies auch tun.
Ich verstehe, dass nicht jeder Knoten im Netzwerk dasselbe versucht. aber sagen wir, ein ehrlicher Knoten A findet einen Arbeitsnachweis für einen Block und sendet ihn an das Netzwerk. Wenn ein gültiger Arbeitsnachweis gefunden wird, bestätigen alle Peers im Netzwerk dies, indem sie diesen Block zur Blockchain hinzufügen. Da Blöcke in der Blockchain geordnet sind, müssen die Peers den Hash des neu eingebundenen Blocks in ihren Proof of Work aufnehmen und die Berechnung beginnt wieder von vorne. Liege ich falsch? Weiterhin gehe ich davon aus, dass der Angreifer selbstständig arbeitet und 6 neue Blöcke schürft und diese gemeinsam im Netzwerk aussendet.
Außerdem muss jeder Block im Durchschnitt einmal in 10 Minuten hinzugefügt werden. Andernfalls wird die Schwierigkeit des Arbeitsnachweises erhöht. Wie kommt es, dass ein Bruchteil einer Sekunde ausreicht, um einen Block abzubauen?
@Curious Eine Folge von 2 ^ 20 Personen, die alle 16 Minuten einen Block abbauen können, bedeutet, dass alle 2 ^ -16 Minuten ein Block oder über 64.000 pro Minute abgebaut wird. Ihre Zahlen haben dazu geführt.
Die Stärke liegt also darin, dass jeder ehrliche Knoten im Netzwerk unabhängig an verschiedenen Blöcken (verschiedenen Transaktionen) arbeitet, um einen Arbeitsnachweis zu finden. Wenn jeder ehrliche Knoten auf demselben Block (gleichen Transaktionen) arbeitet, kann der Angreifer in diesem Fall seine schnelle Rechenleistung ausnutzen?
Ich glaube, ich habe Ihren Punkt verstanden. Aber das Bitcoin-Netzwerk schürft jeden Block im Durchschnitt in 10 Minuten. Wie schwierig muss also der Arbeitsnachweis sein, um dies zu erreichen. Hängt es auch von der Anzahl der Knoten im Netzwerk ab?
Und Sie scheinen Bergbau falsch zu verstehen. "Neu anfangen" hat keine Bedeutung, weil Sie keine sinnvolle Arbeit in Ihren gescheiterten Bemühungen gebunden haben. Bergbau ist wie die Lotterie; Jeder Hash ist ein Ticket. Die Tatsache, dass Sie ein paar verlorene Tickets gekauft haben, bedeutet nicht, dass Sie gleich ein gewinnendes bekommen werden; Wenn sie zur nächsten Ticketserie übergehen, haben Sie keinen Wert verloren, den Sie in alten Verlusttickets gespeichert hatten, weil sie sowieso keinen Wert hatten.
Ja, der Schwierigkeitsgrad ist so skaliert, dass Sie erwarten würden, dass ein Hash-in (Zahl, die in zehn Minuten vom gesamten Netzwerk berechnet wird) gültig ist. Und der Angreifer kann nicht denselben Block abarbeiten (wenn er ihn schürft, muss er auch einen Block hinzufügen, sechs Hashes eines Blocks sind nicht gleich sechs Blöcke), aber er hat auch viel weniger Blöcke abgebaut als das ehrliche Netzwerk (who hat Zehntausende abgebaut, bevor er einen bekam).
Hängt die Schwierigkeit auch von der Anzahl der Knoten im Netzwerk ab? Im Grunde genommen ist die Wahrscheinlichkeit, in einer bestimmten Zeit einen gültigen Arbeitsnachweis zu finden, die Summe der Wahrscheinlichkeiten aller Knoten im Netzwerk.
Entspricht die Wahrscheinlichkeit, einen Arbeitsnachweis für einen beliebigen Block zu finden, bei dem jeder Knoten an einem anderen Block arbeitet, der Wahrscheinlichkeit, einen Arbeitsnachweis für einen bestimmten Block zu finden, wobei jeder Knoten an demselben Block, aber mit unterschiedlichen Nonce arbeitet?