Kann die Blockchain durch eine Kette von Blöcken mit geringem Schwierigkeitsgrad übertroffen werden?

Nehmen wir an, jemand erstellt einen Blockchain-Fork, beginnend mit dem Genesis-Block, als die Schwierigkeit im Vergleich zu heute absurd niedrig war; dann beginnt er von dort aus neue Blöcke bis zum aktuellen Blockindex abzubauen.

Normalerweise würde dies so viel Zeit in Anspruch nehmen, dass es völlig unmöglich wäre, die echte Blockchain einzuholen; Selbst wenn er die heutige leistungsstarke Mining-Hardware verwenden würde, würde die Schwierigkeitssteigerung dies schnell kompensieren. Aber hier ist der Haken: Er passt seine Mining-Software so an, dass sich der Schwierigkeitsgrad niemals erhöht, selbst wenn Hunderte von Blöcken pro Sekunde geschürft werden; Blockzeitstempel werden einfach gefälscht, um den Anschein zu erwecken, dass sie in Abständen von ~ 10 Minuten generiert wurden.

Wenn die gefälschte Blockchain länger ist als die echte (derzeit ~300000 Blöcke), beginnt er mit der Übertragung; Es scheint allen Regeln zu entsprechen, und es ist länger als das aktuelle, daher behandeln alle Kunden und Bergleute dies als eine Gewinngabel und wechseln dazu, daran zu arbeiten. Natürlich nimmt die Schwierigkeit abrupt zu, sobald die volle Netzwerk-Hashing-Leistung darauf geworfen wird, und nach einiger Zeit nimmt die Blockgenerierung wieder normale Niveaus an.

Aber jetzt besitzt der Schöpfer der gefälschten Blockchain alle Bitcoins, die vom Genesis-Block bis zu seiner Veröffentlichung generiert wurden.

Ist dieses Szenario tatsächlich möglich? Wenn nicht, warum? Wie würden Bitcoin-Knoten auf einen 300.000 Blöcke langen Fork reagieren? Gibt es eine Begrenzung, wie lang ein Fork sein kann?

"Er passt seine Mining-Software so an, dass die Schwierigkeit nie zunimmt." Dies würde die Blöcke mit Standard-Bitcoin-Clients inkompatibel machen.
Nicht, wenn die Blöcke gefälschte Zeitstempel haben, die den Anschein erwecken, als würden sie etwa alle 10 Minuten generiert; Diese Generationsrate würde keine Schwierigkeitserhöhung auslösen. Wenn die vollständige gefälschte Blockchain veröffentlicht wird, scheint es, als wäre sie durch eine konstante Menge an Hashing-Leistung erzeugt worden, die nie eine Erhöhung der Schwierigkeit erforderte.
Hm, ich nehme an, Sie haben Recht, mit einem großen Haken: Um 300.000 Blöcke alle 10 Minuten mit konstantem (niedrigem) Schwierigkeitsgrad und gefälschten Zeitstempeln zu generieren, müsste die Gesamtzeit länger sein als die Zeit der echten Blockchain Zeitraum. Dies verursacht Probleme, aber wie Nate betont, ist die Schwierigkeit das eigentliche Kriterium, nicht die Länge, also ist es irrelevant.

Antworten (2)

Dabei gibt es zwei Probleme:

  • Die „längste“ Blockkette wird nicht nach der Gesamtzahl der Blöcke, sondern nach der Gesamtschwierigkeit ausgewählt . Eine Kette mit einer großen Anzahl von Blöcken mit niedrigem Schwierigkeitsgrad würde nicht gewinnen.

  • (Vor 2014) Der Bitcoin-Referenzclient kodiert die Hashes eines relativ neuen Blocks als „Checkpoint“ fest und weist jede Kette zurück, die diesen Block nicht in der richtigen Höhe enthält. Daher wird jede Kette, die vor dem Kontrollpunkt abweicht, ignoriert.

Super, genau die Antwort die ich gesucht habe :)
„Der Bitcoin-Referenzclient codiert die Hashes eines relativ neuen Blocks als „Checkpoint“ fest und weist jede Kette zurück, die diesen Block nicht in der richtigen Höhe enthält“, dies ist seit Block 295000 im Jahr 2014 nicht mehr der Fall.
Ja, und vielleicht möchten Sie sich das Datum meiner Antwort ansehen ... :-)

Nate gab eine gute Antwort auf die moderne Bedeutung von „längste Kette“ – als historische Kuriosität verhielt sich die ursprünglich veröffentlichte Bitcoin-Software so, wie Sie es erwartet hatten, und dieser Angriff würde tatsächlich funktionieren! Es wurde später geändert, um "am längsten" in Bezug auf die Arbeit zu bestimmen. Das scheint ein ziemlich großer Fehler zu sein, aber im ersten Jahr von Bitcoin war die Schwierigkeit konstant auf dem Minimum. Longest Bycount und Bywork ergeben das gleiche Ergebnis, wenn die Blöcke alle die gleiche Schwierigkeit haben.

Selbst wenn Sie schließlich die Gesamtarbeit der "echten" Kette erfüllen würden, würde Ihr Fork irgendwie von aktuellen Implementierungen ignoriert werden, da sie die Identitäten einiger der frühen Blöcke fest codieren (bis 2014, aber nicht später). Es gab mehrere historische Schwächen, die dies motivierten, aber fast alle sind längst behoben. Der Grund für das verbleibende Pinning liegt darin, dass es mit dem Aufkommen moderner Mining-ASICs so billig geworden ist, diff = 1-Blöcke zu erstellen, dass es plausibel wäre, einen Knoten mit niedrigen Diff-Blöcken aus dem Speicher laufen zu lassen, während er damit beschäftigt war, es herauszufinden wenn sie sich am Ende zu genug Arbeit summieren würden. Es gibt mehrere bekannte Möglichkeiten, diesen verbleibenden Angriff abzuschwächen, aber sie sind alle viel komplizierter zu implementieren als das einfache Mittel, die alte Kette zu reparieren.

Es gibt einen interessanten theoretischen Angriff zu diesem Thema – wenn wir davon ausgehen, dass die Hashrate aufgrund von Fortschritten in der Rechenleistung für immer exponentiell ansteigt, und wir davon ausgehen, dass ein Angreifer einen konstanten, willkürlich kleinen Bruchteil der Mining-Leistung hat (weil er auch von technischen Verbesserungen profitiert) und Er versucht, einen Fork abzubauen, der willkürlich weit hinten beginnt, und passt seine Zeitstempel an, um den höchsten Wert zu erhaltenSchwierigkeit, die er bekommen kann, dann wird er schließlich mit mehr scheinbarer Arbeit als der eigentlichen Kette mit Wahrscheinlichkeit 1 enden! Dies liegt daran, dass seine hohe Schwierigkeit zu einer hohen Varianz führt und er schließlich willkürlich Glück hat und vorspringt. Das angenommene exponentielle Wachstum bedeutet, dass sein Pech in der Vergangenheit nur eine konstante relative Menge an Glück in der Gegenwart braucht, um es zu überwinden, egal wie weit er in der Vergangenheit zurückgefallen ist. Der Angriff ist nur theoretisch, denn wenn man realistische Zahlen hinzufügt, werden die Erfolgsraten für diese Art von Angriff erst nach einer Anzahl von Jahren, für die wir keine Worte haben, nicht zu vernachlässigen. :)