I01 Die einfachste Blockchain

Die Blockchain in 9 Schritten – Teil 1:

Die Blockchain-Idee basiert auf verketteten Listen und ist unter Java programmiertechnisch sehr einfach umzusetzen. Da der Programmcode in den nächsten Schritten deutlich umfangreicher wird, teile ich einzelne Programmteile in Klassen auf. Fangen wir mit der einfachsten Klasse namens „Block“ an. Sie enthält die Basis für alle weiteren Schritte:

Der Daten-„Block“ enthält nur drei Elemente: die (aktuelle) Nummer, die vorige Nummer und die gespeicherten Daten. Nun benötigen wir noch das Hauptprogramm, welches diese Klasse benutzt: BlockChain. Damit die Daten für uns besser (strukturiert) angezeigt werden benötigen wir noch eine Hilfsbibliothek, nämlich einen JSON-Viewer. Ich benutze hier das Modul von Google mit dem Namen GSON-Viewer, den Ihr unter dem folgenden Link herunterladen könnt: https://mvnrepository.com/artifact/com.google.code.gson/gson

Nun kann es losgehen mit unserer einfachen Blockchain:

Was macht dieses Programm mit unserer Klasse „Block“: im unteren Bereich ist die Methode addBlock zu sehen, welche dafür sorgt, dass der bestehenden Kette ein weiteres Glied hinzugefügt wird. Die zweite Methode dient der einfachen Anzeige der Blockchain.

Das Programm selber baut die einzelnen Einträge der Reihe nach auf – zuerst wird der Startblock (genesis block) erzeugt: Er trägt die Blocknummer 1, der vorige Datenblock ist demnach mit der Zahl „0“ belegt und das Datenfeld enthält nur den Text „Data 1“.

Nun wird der zweite Eintrag erzeugt: die Blocknummer ist „2“ und der vorige Datenblock enthält „1“ – das Datenfeld enthält nun „Data 2“.

Das war es schon für die Erzeugung unserer ersten Blockchain – seht Euch das Ergebnis in der Konsole an:

Ich hoffe das Ihr nun nicht enttäuscht seid – das ist wirklich das ganze Basiswissen zum Thema Blockchain. Leider hat diese „Standard-Verkettete Liste“ einen großen Nachteil: wir könnten einzelne Datenblöcke nach Belieben verändern ohne das es bemerkt werden kann.

Daher werden wir nun diese Basis-Blockchain nach und nach in Richtung eines eigenen Krypto-Geldes weiterentwickeln – schaut Euch den zweiten Teil an: I02 Blockchain mit Hashwerten.

Alle Quellcodes zur Blockchain findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/I-Blockchain. Alle Programme sind sowohl unter Java 8 als auch unter Java 11 lauffähig.

Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.

Letzte Aktualisierung: 28.05.2019