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.
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.
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).
Murch
Neugierig
Murch
Murch
Jannes
Jannes
Murch
Jannes
Neugierig