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

Proof of Work und Mining erklärt

Nach dieser Lektion: Ich kann erklären, warum Mining viele Versuche braucht und die Prüfung nur einen.

Lektion, 60 Min.2 BefehleBlockchain-Lab: eine Spielzeugkette in Python zum Lesen, Brechen, Minen und Signieren

Warum ist Mining teuer und Prüfen billig?

Proof of Work (Arbeitsnachweis) heißt: Wer einen Block anhängen will, muss zuerst viel rechnen. Wer das Ergebnis prüft, braucht dafür nur eine einzige Rechnung.

Dadurch ist das Anhängen von Blöcken teuer und das Nachprüfen billig. Das schützt alte Blöcke davor, heimlich ersetzt zu werden.

Am Ende dieser Lektion

Notiz

Ich kann erklären, warum Mining viele Versuche braucht und die Prüfung nur einen.

Schlüsselwörter

BegriffWas er bedeutet
Nonceeine Zahl, die man so lange ändert, bis der Hashwert passt
Schwierigkeitwie viele Nullen am Anfang des Hashwerts stehen müssen
MiningNonces ausprobieren, bis ein Block die Regel erfüllt
Proof of Workder Nachweis, dass für einen Block gerechnet wurde
Versucheine Berechnung eines Hashwerts mit einer Nonce

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

Die Nonce ist die Zahl, die man durchprobiert

Die Regel lautet: Der Hashwert eines Blocks muss mit einer bestimmten Zahl von Nullen beginnen. Diese Zahl heißt Schwierigkeit. Den Hashwert kann niemand lenken.

Darum ändert man eine Zahl im Block, die Nonce, und berechnet den Hashwert neu. Man beginnt bei 0, dann 1, dann 2, bis die Regel erfüllt ist.

Eine Nonce selbst suchen

Code: python
import hashlib

daten = "Fahrt nach Passau"
schwierigkeit = 2  # Ändern Sie die Zahl auf 3 und starten Sie neu.
nonce = 0
while True:
    text = daten + ":" + str(nonce)
    hashwert = hashlib.sha256(text.encode()).hexdigest()
    if hashwert.startswith("0" * schwierigkeit):
        break
    nonce = nonce + 1
print("Nonce:", nonce)
print("Hashwert beginnt mit:", hashwert[:12])

Was das Beispiel ausgibt

Bei Schwierigkeit 2 gibt das Beispiel Nonce: 724 aus. Der Hashwert beginnt dann mit 00. Bei Schwierigkeit 3 braucht es 4175 Versuche.

Es gibt keine Abkürzung. Ein Hashwert lässt sich nicht rückwärts rechnen. Man kann nur probieren.

Die Ausgabe des Labors ist englisch

Notiz

Das Skript mine.py gibt englische Wörter aus, nämlich difficulty, nonce, tries und hash. Achten Sie auf die Zahl hinter tries. Sie sagt, wie viele Hashwerte berechnet wurden.

Denselben Block bei vier Schwierigkeiten schürfen

Befehl
docker exec jupyter python3 steps/mine.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.

Versuche im Labor und im Durchschnitt

SchwierigkeitVersuche im LaborDurchschnitt (16 hoch Schwierigkeit)
11516
2835256
379924096
410902865536

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

Jede Null mehr kostet etwa das 16-Fache

Eine Hex-Ziffer hat 16 mögliche Werte. Dass eine bestimmte Stelle eine 0 ist, trifft im Schnitt jeden 16. Versuch. Zwei Nullen treffen im Schnitt jeden 256. Versuch.

Die Zahlen im Labor liegen über dem Schnitt, denn der Zufall streut. Das Skript gibt bei jedem Start dieselben Werte aus, weil Block und Start fest sind.

Den Durchschnitt bei Schwierigkeit 4 rechnen

Befehl
docker exec jupyter python3 -c "print(16 ** 4)"

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

Das Prüfen kostet nur eine Rechnung

Wer eine Nonce gefunden hat, schreibt sie in den Block. Alle anderen berechnen den Hashwert einmal. Beginnt er mit genug Nullen, ist der Nachweis erbracht.

Suchen kostet viele Versuche, prüfen kostet einen. Diese Ungleichheit ist der Kern von Proof of Work.

So schützt die Arbeit alte Blöcke

Wer einen alten Block ändert, muss ihn neu schürfen. Weil jeder spätere Block den Hashwert des geänderten enthält, muss auch jeder spätere Block neu geschürft werden.

Je älter der Block, desto mehr Arbeit kostet die Fälschung. Das haben Sie in der ersten Lektion gesehen: Nach dem Neuschürfen von Block 1 fiel Block 2 durch.

Ein häufiger Fehler

Warnung

Viele glauben, die Arbeit beweise, dass die Einträge wahr sind. Sie beweist nur, dass jemand gerechnet hat. Proof of Work macht das Ändern teuer, mehr nicht.

Ü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.