Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Konsens und Forks in der Blockchain

Nach dieser Lektion: Ich kann unter mehreren Ketten die gültige mit der meisten Arbeit auswählen.

Lektion, 65 Min.1 BefehlBlockchain-Lab: eine Spielzeugkette in Python zum Lesen, Brechen, Minen und Signieren

Was passiert, wenn zwei Ketten sich widersprechen?

Konsens heißt: Alle Beteiligten einigen sich auf dieselbe Kette, obwohl niemand das Sagen hat. Die übliche Regel lautet: Es gilt die gültige Kette mit der meisten Arbeit.

Das ist nötig, weil zwei Personen im selben Moment einen Block an dieselbe Kette hängen können. Dann gibt es kurz zwei Ketten.

Am Ende dieser Lektion

Notiz

Ich kann unter mehreren Ketten die gültige mit der meisten Arbeit auswählen.

Schlüsselwörter

BegriffWas er bedeutet
Konsensalle einigen sich auf dieselbe Kette
Forkeine Gabelung: zwei Ketten mit demselben Anfang und verschiedenem Ende
Arbeit einer Kettedie Summe der Arbeit, die in all ihren Blöcken steckt
Gültige Ketteeine Kette, deren Prüfung keinen schlechten Block findet
Verwaister Blockein Block auf einer Kette, die nicht gewählt wurde

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Fork entsteht, wenn zwei Blöcke gleichzeitig kommen

Zwei Personen schürfen gleichzeitig einen Block, der an denselben Vorgänger passt. Beide Blöcke sind gültig, beide Ketten ebenfalls. Die Ketten haben denselben Anfang und verschiedene Enden.

Jede Person sieht zuerst nur den Block, den sie selbst bekommt. Damit alle wieder dieselbe Kette haben, braucht es eine Regel, die für alle gleich ist.

Die gültige Kette mit der meisten Arbeit gilt

Die Regel hat zwei Schritte. Erst wirft man jede Kette weg, deren Prüfung einen schlechten Block findet. Von den übrigen nimmt man die mit der meisten Arbeit.

Die Arbeit ist die Summe der Arbeit aller Blöcke. Ein Block mit Schwierigkeit 2 kostet im Schnitt 16 hoch 2, also 256 Versuche. Es zählt die Arbeit und nicht die Zahl der Blöcke.

Die Arbeit der beiden Ketten im Labor

KetteBlöckeArbeit je BlockArbeit der Kette
A3256768
B42561024

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Die Ausgabe des Labors ist englisch

Notiz

Das Skript fork.py gibt englische Wörter aus, zum Beispiel chain, blocks und work. Achten Sie auf die Zahlen 3, 4, 768 und 1024 und auf den Buchstaben der Siegerkette.

Zwei Ketten bauen und vergleichen

Befehl
docker exec jupyter python3 steps/fork.py

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Was das Skript ausgibt

Die erste Zeile zeigt, dass beide Ketten gültig sind: True True. Dann stehen Kette A mit 3 Blöcken und Arbeit 768 und Kette B mit 4 Blöcken und Arbeit 1024 da.

Die Siegerkette ist B. Die letzte Zeile fragt, ob die letzten Blöcke gleich sind. Die Antwort ist False, denn die Ketten haben sich getrennt.

Was mit dem unterlegenen Zweig geschieht

Der Block von Kette A fällt weg und wird zum verwaisten Block. Die Zahlungen darin sind nicht verloren. Sie warten wieder darauf, in einen neuen Block zu kommen.

Darum wartet man vor einer wichtigen Zahlung ein paar Blöcke ab. Je mehr Blöcke nach einer Zahlung kommen, desto unwahrscheinlicher kippt sie noch.

Ein häufiger Fehler

Warnung

Viele glauben, immer gewinne die längste Kette. Es gewinnt die gültige Kette mit der meisten Arbeit. Eine längere Kette mit einem gefälschten Block wird verworfen.

Über dieses Lab und seinen Quellcode: Blockchain-Lab: eine Spielzeugkette in Python zum Lesen, Brechen, Minen und Signieren

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.