Besteht tatsächlich Konsens über die Spitze der Blockchain oder nur bis zum nächsten Block?

Verwenden Sie dieses Szenario https://bitcoin.stackexchange.com/a/40435

Nehmen wir an, wir haben zwei konkurrierende Blockchain-Tipps: Sie beginnen beide mit Block A als Elternteil, aber dann werden zwei verschiedene Blöcke gleichzeitig gefunden: Block B1 und Block B2. Beide Blöcke haben den gleichen Schwierigkeitsgrad, und wie wir oben erfahren haben, ist dies unabhängig davon, wann genau sie gefunden wurden. Daher ist die Gesamtschwierigkeit von Block A + Block B1 = Block A + Block B2. Eine der beiden Ketten wird eine größere Gesamtschwierigkeit haben, sobald entweder Block C1 oder Block C2 gefunden wird.

Besteht Einigkeit darüber, dass die Spitze B1 oder B2 ist oder nur bis C1 oder C2 gefunden wird? Wenn 2 Blockchain-Explorer sowohl B1 als auch B2 haben, können sie zufällig eines der beiden als Spitze der Blockchain auswählen und beide würden als richtig angesehen werden?

Antworten (2)

Nein, es gibt keinen Konsens, bis der nächste Block gefunden ist. Das Netzwerk erlebt einen Blockchain-Fork. Es wird nur repariert, wenn eine der Spitzen durch Hinzufügen eines weiteren Blocks nach vorne zieht. Dann werden alle Knoten zur längsten Kette reorganisiert und der Konsens wird wieder hergestellt. Die Verliererkette wird zu einem erloschenen Zweig – gültig, aber nicht Teil der längsten Kette.

Vorher kann es keinen Konsens geben, da es aus Sicht eines Knotens keine Möglichkeit gibt, zuverlässig zu sagen, welcher der beiden Blöcke im Netzwerk beliebter ist. Sie könnten herumfragen, würden aber gemischte Antworten bekommen und könnten trotzdem durch einen Sybil-Angriff getäuscht werden. Daher akzeptieren Nodes den ersten gültigen Block, von dem sie hören, als aktuellen Blockchain-Tipp, bis das Gegenteil bewiesen ist – der einzig gültige Beweis besteht darin, dass eine längere Kette angezeigt wird. Sie würden jedoch den konkurrierenden Block behalten und propagieren, wenn er später für eine Reorganisation benötigt wird.

Tatsächlich können solche Blockchain-Forks sogar mehrere Blöcke lang bestehen bleiben, wenn anschließend konkurrierende Blöcke gefunden werden. 2012 gab es zB einen Blockchain-Fork mit vier Blöcken .

Während einer Blockchain-Fork besteht ein höheres Risiko von Doppelausgaben, da die konkurrierenden Blöcke auf gleicher Höhe unterschiedliche Transaktionen bestätigen können. Wenn sie jedoch aufgrund eines natürlichen Zufalls (anstelle eines Angriffs) auftreten, würden sie mit demselben Satz unbestätigter Transaktionen arbeiten und sollten einen größtenteils übereinstimmenden Satz enthalten. Da jeder Blockchain-Tipp den anderen für nicht relevant hält, werden die zu bestätigenden Transaktionen nicht aufgeteilt, sondern beide versuchen, den gesamten Satz zu bestätigen.

Also ja. Beides sind gültige Blockchain-Tipps, beide mögen sich auf lange Sicht als Teil der längsten Kette herausstellen, aber ein guter Blockchain-Explorer sollte vielleicht beides zeigen, bis klar ist, welches Teil der längsten Kette bleiben wird.

Es gibt keinen wesentlichen Unterschied, ob man oben einen Block hat oder nicht. Bitcoin erreicht niemals einen Konsens. Jeder Knoten macht eine individuelle Vermutung darüber, welche Kette akzeptiert werden soll, und Knoten können beliebig lange anderer Meinung sein. Je mehr Blöcke oben liegen, desto besser ist die Vermutung, aber es bleibt immer eine Vermutung.
" Sie könnten herumfragen, würden aber gemischte Antworten bekommen und könnten sowieso durch einen Sybil-Angriff getäuscht werden. " Und nicht nur das, sondern alles, was wirklich zählt, ist, welcher Block, wer auch immer den nächsten Block abbaut, für den Tipp hält. Der "gewinnende" Block könnte derzeit eine extreme Minderheit sein, vielleicht sogar ein dritter.

Nur wenn C1 oder C2 gefunden wird. Davor haben einige Knoten B1 als Spitze, während andere B2 als Spitze haben. Beachten Sie auch, dass die meisten Knoten nicht unbedingt sowohl B1 als auch B2 kennen würden: Die meisten kennen nur entweder B1 oder B2. Als solche sind sich diese Knoten nicht einmal bewusst, dass es keinen globalen Konsens gibt.

Das ist ein Grund, warum Sie für größere Geldbeträge unbedingt mehrere Bestätigungen abwarten möchten. 6 ist eine allgemein als sicher akzeptierte Zahl.

Werden konkurrierende Blöcke nicht immer noch propagiert, weil sie eventuell für eine Reorganisation benötigt werden? Oder werden sie erst angefordert, wenn klar ist, dass sie gebraucht werden?
Ja, nicht sicher, aber ich denke, sie sind es tatsächlich (war etwas verwirrt durch Transaktionsdoppelausgaben, die es nicht sind). Aber selbst dann gibt es einen (kleinen) Zeitraum, in dem der Knoten nichts weiß. Ich glaube auch nicht, dass SPV-Kunden von dem Nicht-Konsens-Zustand erfahren würden.
Node leitet nur Blöcke weiter, die Teil ihrer besten Kette werden. Sie haben kein rationales Interesse daran, einer konkurrierenden Kette zum Erfolg zu verhelfen. Bei einer Reorganisation werden alle Blöcke auf der neuen Seite des Forks auf einmal weitergeleitet.