Was bedeutet der Begriff „Längste Kette“, da es nur eine „richtige“ Blockchain gibt? Wie würde eine andere längere Kette die "richtige" Kette ungültig machen?
Das Blockchain-System von Bitcoin besteht eigentlich aus zwei ziemlich getrennten Systemen, die leicht verwechselt werden können. Der erste ist der Blockbaum und der zweite die aktive Kette .
Der Blockbaum besteht aus allen gültigen Blöcken, deren gesamte Herkunft bekannt ist, bis hin zum Genesis-Block. Die Regeln für die Gültigkeit beinhalten keine doppelten Ausgaben, gültige Signaturen, keine Einführung von mehr Währung als erlaubt, ... Dies sind die Netzwerkregeln, und jeder vollständige Bitcoin-Knoten verifiziert sie.
Die aktive Kette ist ein Pfad vom Genesis-Block oben zu einem Blattknoten unten im Blockbaum. Jeder dieser Pfade ist eine gültige Wahl, aber von den Knoten wird erwartet, dass sie denjenigen auswählen, der die meiste "Arbeit" enthält, von der sie wissen (wobei Arbeit lose als die Summe der Schwierigkeiten definiert wird). Relativität und technologische Beschränkungen hindern uns daran, weltweit sofort zu kommunizieren, sodass nicht erwartet werden kann, dass zwei Knoten dieselbe Kette wie der aktive auswählen. Das ist kein Problem: Der Mining-Mechanismus sorgt dafür, dass die Wahrscheinlichkeit, dass sich zwei Nodes über Blöcke in der Vergangenheit nicht einig sind, exponentiell abnimmt, wenn sie älter sind.
Also nein, es gibt nicht die eine „richtige Kette“, es gibt viele. Knoten wählen für sich selbst, aber das System ist darauf ausgelegt, sicherzustellen, dass schnell ein Konsens entsteht.
Die Regeln in der Praxis sind folgende: Wenn ein neuer Block ankommt und die vorherige aktive Kette erweitert, hängen wir ihn einfach an die aktive Kette an. Wenn nicht, hängt es davon ab, ob der Zweig, den es erweitert, jetzt mehr Arbeit hat als der derzeit aktive Zweig. Wenn nicht, speichern wir den Block und stoppen. Wenn es mehr Arbeit bedeutet, führen wir eine sogenannte "Reorganisation" durch: Deaktivieren von Blöcken aus dem alten Zweig und Aktivieren von Blöcken aus dem neuen Zweig.
Stellen Sie sich vor, dass die Blockchain 210000 Blöcke lang ist und ZWEI Miner beide innerhalb weniger Sekunden gültige Blöcke finden und sie an das Netzwerk senden.
Dies ist völlig normal, da das Bitcoin-Netzwerk Peer-to-Peer und global ist.
Sie haben jetzt zwei Ketten mit der Länge 210001. Keine davon ist länger als die andere. Einige Bitcoin-Knoten sehen den Block des ersten Miners und einige Bitcoin-Knoten sehen den zweiten.
Vorübergehend haben Sie zwei Forks der Blockchain, die jeweils 210001 Blöcke lang sind. Sie sind für 210000-Blöcke identisch, aber der 210001. ist bei den beiden Gabeln unterschiedlich.
Einige Zeit später findet ein anderer Miner einen weiteren gültigen Block, den 210002. Block, und dieser wird an genau einen der Forks angehängt.
Diese Kette ist jetzt mit 210002 Blöcken die längste und wird zur längsten Kette. Sie wird zur „endgültigen“ Blockchain.
(Die Transaktionen im alternativen Fork verschwinden nicht – sie werden einfach wieder in den Pool der unbestätigten Transaktionen eingefügt und die Bergleute werden sie in einen nachfolgenden Block einfügen).
Nur
Pieter Wuille
Daira Hopwood
Chan-Ho Suh