Ein Blockchain-Beispiel Teil 1
Ein Problem
Das Rollenspiel der vorherigen Seiten ist so natürlich nicht auf Dauer umsetzbar. Und es gibt ein wesentliches Problem mit dem Transaktionsbuch: Einzelne Veränderungen auf wenigen Seiten fallen kaum auf. Für dieses Problem gibt es eine Lösung - sie heißt...
Blockchain
Blockchain heißt übersetzt nichts anderes als eine Kette aus Blöcken. Sie entspricht in dem Rollenspiel dem Transaktionsbuch und unter einem Block können wir uns eine Seite des Transaktionsbuchs vorstellen.
Die entscheidende Idee ist nun, dass wir die einzelnen Seiten des Transaktionsbuchs so miteinander verknüpfen (bzw. verketten), dass eine Manipulation auf irgendeiner Seite des Transaktionsbuchs sofort auf der obersten Seite als Fehler angezeigt wird.
Hierzu benötigen wir (mal wieder) eine kryptografische Hashfunktionen
Wenn auf jeder Seite des Transaktionsbuchs also noch der Hashwert der vorangegangenen Seite dazu geschrieben wird, dann haben wir schon die Verkettung der Seiten.
Umsetzung der Zusatzaufgabe "Schloss knacken"
Im Rollenspiel hatten die aktiven Teilnehmer die Zusatzaufgabe ein Zahlenschloss zu knacken, bevor sie eine Seite des Transaktionsbuchs abschließen konnten. Für unsere Blockchain führen wir so etwas ähnliches ein. Es wird eine Zahl gesucht, die nur einmalig verwendet wird. Diese Zahl heißt deswegen Nonce (Number used once). Sie ist der Arbeitsnachweis ("Proof of Work") für erfolgreiches "Schloss knacken".
Überlege erst einmal selbst: Hast du eine Idee, welche Eigenschaft die Nonce haben muss? (Tipp: Der Hashwert kommt hier erneut ins Spiel...)
Aufgabe
Welche Zahl musst du an die Zeichenkette 'A' hängen, damit der md5-Wert der Zeichenkette, die aus A und der Zahl besteht, mit '0000' beginnt?
Der md5-Wert von 'A80' ist z.B. '000766e7976637b592cbce71fd228e16' - er beginnt also nur mit drei Nullen.