Es wär noch ein interessantes Detail zu wissen, nach welcher Länge genau ein Zweig der Blockchain abstirbt. Wie wird das vom System geregelt?
Ein Zweig stirbt ab, sobald kein Miner mehr an ihm arbeitet. Normalerweise wechseln Miner automatisch zur längsten Chain (Sobald sie die Information über die längere Chain enthalten). Dies funktionniert bisher ganz gut:
https://blockchain.info/de/orphaned-blocks -> Hier siehst du, dass in fast allen Fällen, die Miner bereits nach einem Block zur Mainchain wechselten.
Allerdings kann es im Falle eines Angriffes/Bug (siehe 11 March 2013 Chain Fork -> 31 Blocks lang) sein, dass Miner die Mainchain ignorieren und an ihrer Chain weiterarbeiten. Wie lange solch ein Fork (Spaltung der Chain) gehen kann ist von der Dauer der Lösung des Problems abhängig.
Ja, das ist schon richtig. Aber die Transaktion, die in einem der Orphaned Blocks sind, gehen ja nicht verloren. Sie gelangen zurück in den Transaktionspool und können wieder aufgenommen werden.
Richtig, die Transaktionen wandern zurück in den Transaktionspool. Dies garantiert aber nicht, dass sie aufgenommen werden. Im Falle eine Angriffes kann der Angreifer die Transaktionen ignorieren. Selbe gilt für Double Spend Transakionen, da diese als invalid betrachtet werden (bleiben aber im Pool).
Habe selbst auch eine Frage zu dem Thema:
The attacker can't: Reverse other people's transactions
Die Transaktion nicht, aber die Confirmations sehr wohl.
Wir befinden uns bei Block
X, der Angreifer startet sein Fork bei
X-n und blockiert bestimmte/alle Transaktionen in allen folgenden Blöcken. Dadurch sind die Confirmations aus den Blöcken
n verloren. Das Folgende würde vermutlich nicht klappen, aber theoretisch möglich?: Nutzer könnten die unbestätigten Transaktionen erneut senden und einen Double Spend probieren (hoffen, dass die neue Transaktion anstellen der alten Tx durchgeht).