4 Minuten Lesezeit
Übersicht
Python ist eine der vielseitigsten Programmiersprachen überhaupt und bietet eine Vielzahl von Anwendungsmöglichkeiten. Mit Python lassen sich zahlreiche Anwendungen entwickeln, von clientseitigen bis hin zu Backend-Anwendungen. In dieser Anleitung behandeln wir die Erstellung einer Ethereum-Adresse in Python mithilfe der Web3Py-Bibliothek.
Voraussetzungen
- Python muss auf Ihrem System installiert sein (Version 3.6+) sowie Pip3.
- Ein Texteditor.
Was ist eine Ethereum-Adresse?
Wenn Sie sich bei einer beliebigen Plattform im Internet anmelden, benötigen Sie eine Kombination aus Benutzername und Passwort. Stellen Sie sich die Ethereum-Adresse als Benutzernamen vor, wobei der zugehörige private Schlüssel das Passwort darstellt. Mit dieser Kombination aus Adresse und privatem Schlüssel können Sie mit der Ethereum-Blockchain interagieren. Eine Ethereum-Adresse ist Ihre Identität in der Blockchain. Sie sieht etwa so aus: „0xd5e099c71b797516c10ed0f0d895f429c2781142“. Die Ethereum-Adresse ist öffentlich und kann weitergegeben werden, der private Schlüssel muss jedoch stets geheim gehalten werden. Ethereum-Adressen werden mithilfe eines privaten Schlüssels generiert. Im Folgenden wird beschrieben, wie eine Ethereum-Adresse generiert wird:
- Erzeuge einen zufälligen privaten Schlüssel mit einer Länge von (64 (hexadezimalen) Zeichen / 256 Bit / 32 Byte)
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
- Ein öffentlicher Schlüssel wird anhand des privaten Schlüssels (128 (hex) Zeichen / 512 Bit / 64 Byte) unter Verwendung des Elliptic Curve Digital Signature Algorithm (ECDSA) abgeleitet.
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe3
- Anschließend wird die Keccak-256-Hashfunktion auf den öffentlichen Schlüssel (128 Zeichen / 64 Byte) angewendet, wodurch eine Hash-Zeichenkette (64 Zeichen / 32 Byte) entsteht; die letzten 40 Zeichen / 20 Byte bilden – mit dem Präfix 0x – die Ethereum-Adresse.
0xd5e099c71b797516c10ed0f0d895f429c2781142
Im Folgenden sind einige Dinge aufgeführt, für die eine Ethereum-Adresse erforderlich ist:
- ETH empfangen/senden.
- Transaktionen unterschreiben/senden.
- Verbindung zu Anwendungen herstellen.
Was ist Python?
Python ist eine universell einsetzbare Programmiersprache mit einem breiten Anwendungsspektrum. Sie verfügt über hochentwickelte Datenstrukturen. Sie ist dynamisch typisiert. Dank dynamischer Bindung und vieler weiterer Funktionen eignet sie sich hervorragend zur Entwicklung komplexer Anwendungen, da sie häufig für Skripte oder als „Glue-Code“ zum Verbinden verschiedener Komponenten verwendet wird. Außerdem kann sie auf fast allen Betriebssystemen Systemaufrufe ausführen. Python ist aufgrund seiner Fähigkeit, auf nahezu jeder Systemarchitektur zu laufen, und seiner Allgegenwärtigkeit eine universelle Sprache. Python ist eine interpretierte, interaktive, objektorientierte Programmiersprache.
Was ist Web3Py?
Web3.py ist eine Python-Bibliothek, die Ihnen die Interaktion mit der Ethereum-Blockchain erleichtert. Mit Web3.py lassen sich Backend-Clients für dezentrale Anwendungen (dApps) erstellen, um die Interaktion mit der Blockchain zu verwalten, Daten daraus auszulesen, Transaktionen zu schreiben oder die Logik von Smart Contracts auszuführen. Die ursprüngliche API basiert auf der JavaScript-API von Web3.js, wurde jedoch im Laufe der Zeit weiterentwickelt, um den Bedürfnissen und Anforderungen von Python-Entwicklern besser gerecht zu werden.
Da wir hier mit Python arbeiten, werden wir Web3.py verwenden.
Schauen wir uns nun an, wie wir in Python eine neue Ethereum-Adresse generieren können.
Eine Ethereum-Adresse in Python generieren
Als Erstes sollten wir überprüfen, ob Python 3.6 oder höher auf Ihrem System installiert ist; Sie können überprüfen, ob Python installiert ist, indem Sie Folgendes in Ihr Terminal/die Eingabeaufforderung eingeben:
$ python --version
Falls es noch nicht installiert ist, können Sie die Anweisungen auf der Download-Seite der offiziellen Python-Website befolgen .
Wir werden Web3Py verwenden, eine Python-Bibliothek für die Interaktion mit Ethereum. Wir installieren Web3Py mit PIP. Geben Sie dazu Folgendes in Ihr Terminal/die Eingabeaufforderung ein:
$ pip install web3
Hinweis: Python- und andere Bibliotheksversionen führen häufig zu Installationsproblemen. Sollten Sie also auf Probleme stoßen, versuchen Sie, eine virtuelle Umgebung einzurichten und die Installation von web3.py zu überprüfen.
Wenn alles gut läuft, wird Web3.py auf Ihrem System installiert.
Erstellen wir nun eine Python-Datei und nennen sie „address.py“. Fügen Sie den folgenden Code per Kopieren und Einfügen in die Datei ein:
von eth_account import Account
import secrets
priv = Geheimnisse.token_hex(32)
private_key = "0x" + priv
print ("SPEICHERN, ABER NICHT WEITERGEBEN:", private_key)
acct = Konto.from_key(private_key)
print("Adresse:", acct.Adresse)
Erläuterung des obigen Codes
Zeile 1: Importieren des „Account“-Objekts aus dem Modul „eth_account“ von Web3.py
Zeile 2: Einbindung des Python-Moduls „secrets“, mit dessen Hilfe wir eine zufällige Hexadezimalzeichenfolge generieren können.
Zeile 3: Erzeugen einer zufälligen hexadezimalen Zeichenkette mit einer Länge von 32 Byte / 64 Zeichen und Speichern dieser in der Variablen „priv“
Zeile 4: Anfügen des Präfixes „0x“ an unsere in „priv“ gespeicherte 64-Zeichen-Hexadezimalzeichenfolge und Speichern der neuen Zeichenfolge in der Variablen „private_key“.
Zeile 5: Ausgabe unseres privaten Schlüssels mit einer Warnung.
Zeile 6: Anlegen eines neuen Kontos unter Verwendung des private_key und Speichern des Kontos in der Variablen acct.
Zeile 7: Ausgabe der Adresse des in der Variablen „acct“ gespeicherten Kontos zusammen mit der Zeichenfolge „Adresse:“
Nun wollen wir unser Python-Programm ausführen.
$ python address.py
Wenn Sie die Anweisungen korrekt befolgt haben, sollte die Ausgabe in etwa so aussehen. Die erste Zeile enthält den privaten Schlüssel, die zweite Zeile die Ethereum-Adresse.
Fazit
Mit Ihrer eigenen Ethereum-Adresse (+ privatem Schlüssel) können Sie nun Transaktionen senden und mit Smart Contracts interagieren. Weitere Informationen finden Sie in der offiziellen Dokumentation zu Web3.py.
Abonniere unseren Newsletter, um weitere Artikel und Anleitungen zu Ethereum zu erhalten. Wenn du Feedback hast, kannst du dich gerne über Twitter an uns wenden. Du kannst dich jederzeit auf unserem Discord-Community-Server mit uns unterhalten – dort findest du einige der coolsten Entwickler, die du je treffen wirst :)
