Wenn zwei Miner zwei gültige Nonces finden, wie findet dann ein Konsens statt?

Ich versuche zu verstehen, wie der Konsensmechanismus funktioniert. Mein Verständnis ist, dass mehrere Nonces die Ziel-Hash-Anforderung erfüllen können. Was ich jetzt zu verstehen versuche, ist: Wenn zwei Bergleute zwei verschiedene Nonces entwickeln, wie kommt es dann zu einem Konsens?

Wird dieses "Unentschieden" mit der Regel der längsten Kette gebrochen oder gibt es einen anderen Mechanismus zum Unterbrechen von Unentschieden?

Antworten (1)

Das Unentschieden wird durch den ersten der beiden gebrochen, der mit einem untergeordneten Block erweitert wird.

Falls in der Praxis zwei widersprüchliche Blöcke auf derselben Höhe im Netzwerk erscheinen, wählt jeder Knoten denjenigen als Gewinner aus, den er zuerst gesehen hat. Da die Kommunikation über die Erde mit einer endlichen Geschwindigkeit erfolgt, sehen einige Bergleute möglicherweise zuerst eine Seite der Gabelung und andere Bergleute zuerst eine andere, selbst wenn zwischen ihnen etwas Zeit liegt (bis zu ~ Sekunden). Derjenige, der tatsächlich zuerst war, wird jedoch höchstwahrscheinlich zuerst mehr andere Miner erreichen als der andere, und dieser hat daher die größte Chance, zuerst darauf aufgebaut zu werden.

Beachten Sie, dass es theoretisch möglich ist, dass diese Diskrepanz bestehen bleibt: Es ist möglich, dass ein Block auf beiden Seiten der Teilung wieder gleichzeitig gefunden wird. In diesem Fall bestimmt der Block danach den Gewinner und so weiter. Die Wahrscheinlichkeit, dass dies lange anhält, ist jedoch unter vernünftigen Annahmen äußerst gering, was auch in der Praxis zu beobachten ist. Reorganisationen mit einer Tiefe von mehr als 2 Blöcken sind äußerst selten.

Gibt es historische Aufzeichnungen mit genauen Zahlen dazu? Zum Beispiel „ereigneten sich in der Geschichte von Bitcoin nur 32 Reorganisationen der Tiefe 3 und 0 der Tiefe 4“. Kein Experte, nur neugierig.
Ich habe keine tatsächliche Quelle (da das Beobachten von Reorganisationen nicht deterministisch ist - es hängt davon ab, welche Blöcke Sie zuerst sehen), aber es würde mich nicht überraschen, wenn die einzige Reorganisation mit einer Tiefe von mehr als 2 nach 2010 die BIP66-Aktivierung im Juli 2015 wäre Fork, wo einige neue Bergleute auf einem ungültigen Block, der von einem alten Knoten durch Spionage-Mining erzeugt wurde, weiterschürften. IIRC, das ungefähr 30 Blöcke tief war, bevor es aufgelöst wurde.
Was passiert, wenn beide Miner durch einen Zufall die Nonce auf die Nanosekunde genau zur gleichen Zeit finden?
Es spielt keine Rolle, wie nahe die beiden Blöcke gefunden werden, das Verfahren ist das gleiche: Jeder Knoten akzeptiert den ersten, den er sieht, schaltet aber um, wenn der andere zuerst erweitert wird.
@PieterWuille Ich folge deiner Erklärung: Lassen Sie uns blockA und blockB "gleichzeitig" gültige unterschiedliche Lösungen sein. 99 % der Knoten haben BlockA zuerst gehört, 1 % haben BlockB als Zweites erhalten. Dann wird blockZ mit dem Hash von blockA als gültig befunden: Was passiert dann "im Code" des 1%-Knotens: Für sie ist blockZ nicht gültig, weil es den Hash von blockB nicht verwendet: Werden diese 1%-Knoten zu einer Hardfork?
Alle drei Blöcke sind gültig. Die Gültigkeit ist nur eine Funktion des Inhalts des Blocks und seiner Vorfahren und absolut nichts anderes (insbesondere hängt es nicht davon ab, wann der Knoten von diesen Blöcken erfahren hat). Es gibt jedoch einen Unterschied zwischen Gültigkeit und welcher Block als aktiv gilt: Die 1% sehen BlockB und lernen dann BlockA+BlockZ, die mehr Arbeit haben, also wechseln sie.