I05 Erstellung eines Wallets

Die Blockchain in 9 Schritten – Teil 5: Erstellung eines Wallets

Mit diesem Teil verlassen wir die Blockchain und wenden uns langsam dem Krypto-Geld zu. Damit wir unser elektronisches Geld auch aufbewahren können benötigen wir eine passende Geldbörse oder auf Englisch ein Wallet. Selbstverständlich handelt es sich nicht um ein reales Portemonnaie aus Leder, sondern um eine Datei, welche erstaunliche Eigenschaften besitzt.

Das Besondere an diesem Wallet ist nämlich die Eigenschaft, dass die Geldbörse durch eine elektronische Signatur erzeugt und gleichzeitig damit geschützt wird. Der öffentliche Schlüssel („public key“) ist gleichzeitig die weltweit gültig „Kontonummer“ und der dazu gehörige private Schlüssel („private key“) dient der Zugriffsmöglichkeit. Um es in aller Deutlichkeit zu schreiben: ohne den privaten Schlüssel gibt es keinerlei Zugriffsmöglichkeit auf die Geldbörse oder kurz und knapp „weg ist weg“.

Damit wir die einzelnen Programmteile sauber strukturieren können landet der Quellcode für unsere Geldbörse wieder in einer eigenen Klasse „wallet“:

Die Bedienung geschieht über unsere ausgebaute Hauptklasse:

In diesem Teil nutzen wir gar nicht den vorhandenen Code für die Blockchain, sondern konzentrieren uns ganz auf die Erstellung des Wallets. Da die beiden anderen Klassen unverändert sind, zeige ich Euch hier zuerst die kurze Ausgabe auf der Konsole und dahinter den Quellcode der beiden Klassen:

Wir erzeugen ein elliptisches Kurvenpaar mit 192 Bit Schlüssellänge und nutzen dafür die Kurve SECP192R1 (was willkürlich durch uns geschieht, aber wir erstellen ja unser eigenes Krypto Geld).

Weiter geht es mit Teil 6: I06 Nutzung von Transaktionen.

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: 29.05.2019