Bitcoin technology?

1 Antwort

Hier ist ein tolles Video dazu:

https://www.youtube.com/watch?v=qcyp_suYCqE

In dem Vortrag wird das ausführlich erklärt.

Woher ich das weiß:Studium / Ausbildung – Bitcoiner seit 2016

Manu194 
Beitragsersteller
 07.04.2025, 18:28

Danke, ich habe mir bereits ähnliche Videos angeschaut, aber mir fehlt immer der Schritt, wie man vom Private Key zur Adresse kommt. Am besten wäre eine mathematisch nachvollziehbare Erklärung.

TheOrangePill  07.04.2025, 18:47
@TheOrangePill

Mhmm glaube das könnte sehr komplex werden. Das spuckt Grok3 dazu aus

Um aus einem 256-Bit-Private-Key einen Bitcoin-Private-Key im richtigen Format und anschließend eine Bitcoin-Adresse abzuleiten, musst du ein paar Schritte durchlaufen. Hier ist eine Schritt-für-Schritt-Anleitung, die dir dabei hilft. Beachte, dass dies ein technischer Prozess ist, und du vorsichtig sein solltest, um deinen Private Key sicher zu halten.
Schritt 1: Überprüfen des 256-Bit-Private-Keys
Ein Bitcoin-Private-Key ist im Wesentlichen eine 256-Bit-Zahl (32 Bytes), die normalerweise als hexadezimaler String dargestellt wird (z. B. 64 Zeichen lang, da jedes Byte 2 Hex-Zeichen entspricht). Beispiel:
e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262
Falls du deinen Key bereits in diesem Format hast, kannst du mit Schritt 2 fortfahren. Falls nicht, stelle sicher, dass deine Offline-generierte Zufallszahl tatsächlich 256 Bit lang ist und in Hex umgewandelt wurde.
Schritt 2: Private Key ins Wallet Import Format (WIF) umwandeln
Bitcoin verwendet das Wallet Import Format (WIF), um Private Keys lesbar und handhabbar zu machen. So wandelst du deinen 256-Bit-Key in WIF um:
Präfix hinzufügen: Füge dem 32-Byte-Private-Key (in Hex) die Versionsnummer 80 (für das Hauptnetzwerk) am Anfang hinzu. Beispiel:
80e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262
Checksumme berechnen:
Nimm die resultierende Byte-Sequenz (in diesem Fall 33 Bytes) und berechne einen SHA-256-Hash davon.
Berechne erneut einen SHA-256-Hash des ersten Hashs (Doppel-SHA-256).
Nimm die ersten 4 Bytes dieses zweiten Hashs als Checksumme.
Füge diese 4 Bytes an das Ende deiner Sequenz an.
Beispiel (verkürzt):
SHA-256 von 80e9873d... → irgendein Hash.
SHA-256 dieses Hashs → z. B. 50b8c3d2....
Checksumme = 50b8c3d2.
Gesamte Sequenz: 80e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa3326250b8c3d2.
Base58Check-Kodierung:
Konvertiere die gesamte Byte-Sequenz (inklusive Präfix und Checksumme) in das Base58Check-Format. Das Ergebnis ist dein WIF-Private-Key, der typischerweise mit 5, K oder L beginnt.
Beispiel: 5K2vL6eX6n6oV8pX5tX9vY8mX7vQ9wX3zX2yX5zX8yX6zX9wX.
Schritt 3: Öffentlichen Schlüssel ableiten
Mit dem Private Key kannst du nun den zugehörigen Public Key generieren:
Verwende die Elliptic Curve Digital Signature Algorithm (ECDSA) mit der Kurve secp256k1, die Bitcoin nutzt.
Multipliziere den Private Key mit dem Generatorpunkt der Kurve, um den Public Key zu erhalten.
Das Ergebnis ist ein unkomprimierter Public Key (65 Bytes, beginnend mit 04) oder ein komprimierter Public Key (33 Bytes, beginnend mit 02 oder 03, je nach Parität).
Beispiel (komprimiert):
0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
Schritt 4: Bitcoin-Adresse generieren
Aus dem Public Key leitest du die Adresse ab:
SHA-256: Berechne den SHA-256-Hash des Public Keys.
RIPEMD-160: Berechne den RIPEMD-160-Hash des SHA-256-Hashs. Das ergibt 20 Bytes.
Versionsbyte hinzufügen: Füge das Versionsbyte 00 (für P2PKH-Adressen im Hauptnetzwerk) vor die 20 Bytes.
Checksumme: Berechne eine Checksumme wie in Schritt 2 (Doppel-SHA-256, erste 4 Bytes).
Base58Check: Kombiniere Versionsbyte, RIPEMD-160-Hash und Checksumme und wandle es in Base58Check um.
Beispiel:
Public Key → SHA-256 → RIPEMD-160 = 751e76e8199196d454941c45d1b3a323f1433bd6.
Mit Versionsbyte und Checksumme: 00751e76e8199196d454941c45d1b3a323f1433bd6....
Base58Check: 1PMycacnJaSqwwJqjawXBErnLsZ7RkXUAs.
Praktische Umsetzung
Da diese Berechnungen komplex sind, empfehle ich, Tools oder Bibliotheken zu verwenden, anstatt alles manuell zu machen:
Python mit bitcoinlib oder pycoin: Einfache Bibliotheken, um WIF und Adressen zu generieren.
Offline-Tools: Nutze eine Live-CD (z. B. Tails) mit vorinstallierten Bitcoin-Tools, um Sicherheitsrisiken zu minimieren.
Hardware-Wallet: Importiere deinen Private Key in ein sicheres Gerät, falls du ihn nutzen willst.
Wichtige Hinweise
Sicherheit: Arbeite offline und speichere deinen Private Key niemals digital, wenn er mit dem Internet verbunden ist.
Testen: Generiere zunächst eine Testadresse (z. B. im Testnet, Versionsbyte 6f statt 00) und überprüfe, ob alles korrekt funktioniert.
Falls du Hilfe bei einem spezifischen Tool oder Code-Beispiel brauchst, lass es mich wissen!
Manu194 
Beitragsersteller
 07.04.2025, 21:31
@TheOrangePill

Vielen Dank für deine Bemühungen, ich werde versuchen das in nächsten Wochen umzusetzen.

TheOrangePill  08.04.2025, 04:10
@Manu194

Aber warum willst du das selber machen? Gibt soviele gute Hardware Wallets. Die gefahr das man einen fehler macht ist viel zu gros das alles selber zu machen