Warum werden Block-Hashes nicht direkt als Punkte für Schwierigkeitszwecke verwendet?

Warum wendet Bitcoin eine Schwierigkeitsfunktion an, um Hashes zu blockieren, und verwendet dann die Ausgabe dieser Funktion, um die „längste“ Kette zu addieren und zu bestimmen?

Warum nicht zB einfach alle Block-Hashes (als Bigints) zusammenzählen und die längste Kette als diejenige mit der größten oder kleinsten Summe betrachten?

Gibt es dafür einen mathematischen Grund oder ist es nur eine Leistungsoptimierung oder eine Möglichkeit, eine übermäßige Abhängigkeit von der Arithmetik großer Ganzzahlen zu vermeiden?

Antworten (2)

Hintergrundinformation:

Der Block-Hash muss kleiner als ein bestimmter Wert sein (wie durch die Schwierigkeitsfunktion definiert), damit der Block gültig ist.

Im Allgemeinen haben sich die Netzwerkschwierigkeiten im Laufe der Zeit erhöht. Mit zunehmender Blockhöhe hat sich der Cutoff-Wert für einen gültigen Blockhash verringert.

—————

Warum nicht zB einfach alle Block-Hashes (als Bigints) zusammenzählen und die längste Kette als diejenige mit der größten oder kleinsten Summe betrachten?

Ich denke, es ist am einfachsten zu erklären, warum diese Art der Implementierung nicht funktioniert, indem ich ein Beispiel gebe. Betrachten wir ein System, das der Regel „kleinste Summe für eine bestimmte Blockhöhe“ folgt:

—————

Stellen wir uns der Einfachheit halber eine pow-Funktion vor, die einen Ausgabewertebereich von 1-100 hat. Angenommen, die Netzwerkschwierigkeit ist derzeit so eingestellt, dass jede Ausgabe von 10 oder weniger gültig ist.

Nun findet Miner A einen Block auf Höhe X mit Blockhash 10. Dies ist gültig und wird daher der Kette hinzugefügt.

Miner B sieht dies, schürft aber weiterhin Blockhöhe X, denn wenn er einen Block mit Hash 9 oder weniger findet, dann wird seine neue Kette die zuvor akzeptierte ersetzen. Indem sie auf diese Weise eine Reorganisation erzwingen, können sie möglicherweise erfolgreich einen Doppelausgabenangriff durchführen usw.

—————

Dieses Beispiel zeigt, wie ein Miner den Algorithmus spielen könnte, um die Blockchain neu zu schreiben. Dasselbe gilt für eine „größte Summe für eine bestimmte Blockhöhe“-Regel: Wenn ein Miner einen kleinen Blockhash findet (z. B. Blockhash = 5 im obigen Beispiel), könnte ein anderer Miner davon profitieren, indem er weiter auf dem älteren Block schürft und a erzwingt Reorganisation, wenn sie einen Block mit einem größeren, aber immer noch gültigen Blockhash finden.

Damit das Bitcoin-Netzwerk richtig funktioniert, muss die Spieltheorie Miner dazu anregen, immer an der Kettenspitze zu minen. Die Verwendung einer Schwierigkeitsfunktion anstelle des expliziten Blockhash-Werts hilft sozusagen, das Spielfeld zu ebnen. Dies liegt daran , dass jeder gültige Blockhash nicht besser oder schlechter ist als jeder andere gültige Blockhash.

Das macht Sinn, aber mir ist noch etwas unklar. Nehmen wir an, das Netzwerk teilt sich kurz auf und beide Seiten schürfen zwei neue Blöcke mit Hashes, die dem Schwierigkeitsziel entsprechen. Wenn das Netzwerk wieder zusammengeführt wird, wer gewinnt?
Sie werden nicht „wiederverschmelzen“, bis eine Kette weiter verlängert wird als die andere. Gewinner ist die Kette, die weiter verlängert wird. Die „verlierende“ Seite des Netzwerks organisiert diese beiden Blöcke neu, um sich der längsten Kette anzuschließen. Schlagen Sie nach „verwaiste Blöcke“, um mehr zu erfahren. In der Praxis ist es ziemlich selten, dass eine verwaiste Blockchain tiefer als ein Block ist.

Die „scheinbare“ Arbeit ist aufgrund von Glück 2x höher als die tatsächliche Arbeit, aber der Grund, warum Bitcoin die scheinbare Arbeit nicht nutzt, ist, dass es aufgrund von Varianz und schlechten Spieltheorie-Interaktionen schlechte Stabilitätseigenschaften hat.

Stellen Sie sich vor, Bitcoin würde so gearbeitet, wie Sie es vorgeschlagen haben – sagen Sie zum Beispiel, Sie bauen einen Block ab und er hat zufällig das 10-fache der erwarteten „Arbeit“. Am besten geben Sie diese Sperre nicht bekannt, sondern versuchen weiterhin, sie privat zu verlängern. Wenn sich die öffentlich zugänglich gemachte Arbeit Ihrem Glücksblock nähert, dann kündigen Sie sie an. Das ist ein ziemlich schlechter Anreiz.

Das Extrem davon ist, dass Sie anfangen, bei Block 1 zu minen, und hoffen, dass Sie am Ende genug "offensichtliche Arbeit" haben, um die gesamte Kette auszulöschen.

Bei diesem Modell sinkt also die Wahrscheinlichkeit, einen statischen Brocken durch reines Glück erfolgreich zu reorganisieren, nicht mit mehr Blöcken.