Ich suche eine einfache, einfach zu verwendende Bitcoin-Bibliothek für Python.
Was ich tun möchte, ist zu überprüfen, ob ich einen gewünschten privaten Hex-Schlüssel eingeben und den erwarteten Pubkey im komprimierten Format und die 1Btc ... -Adresse erhalten kann.
Ich habe mir Cryptotools auf Github angesehen, die vielversprechend und einfach zu bedienen aussahen, aber keinen Hex-Wert akzeptierten, der kein Vielfaches von 2 war. Ich weiß, das klingt seltsam, aber ich möchte in der Lage sein, ein Hex einzugeben Wert wie c12 und es funktioniert wie erwartet (es sei denn, ich muss 0c12 eingeben und das funktioniert, wobei die führende Null verworfen wird). Ich erwarte dann, wenn ich 0cfa721d eingebe, dass dies als Big Endian interpretiert wird.
bitcoinlib sieht vielversprechend aus, aber ich finde es verwirrend und ich habe es ein paar Stunden versucht, bin mir aber nicht sicher, wie ich das bekomme, was ich will.
Ich frage mich, ob dies eine streng mathematische Beziehung ist. Könnte es beispielsweise eine beliebige oder unendliche Anzahl von öffentlichen Schlüsseln aus dem privaten Schlüssel geben? Gibt es eine Möglichkeit sicherzustellen, dass ich den gewünschten Pubkey aus dem privaten Schlüssel erhalte? Ich möchte bekannte private Schlüssel mit den generierten Pubkey- und BTC-Adressen testen, die bekannten privaten Schlüsseln und Adressen entsprechen, damit ich versuchen kann herauszufinden, wie derjenige, der diese Adressen aus einer Auswahl privater Schlüssel generiert hat, versuchen kann, sie zu replizieren und dasselbe zu tun ich selbst.
Vielen Dank für Hilfe oder Anregungen.
Für diesen sehr reduzierten Fall können Sie einen Blick auf https://github.com/circulosmeos/bitcoin-in-tiny-pieces werfen
Jede Operation ist zum leichteren Verständnis codiert und in einer anderen Datei isoliert, aber sie lassen sich einfach verbinden oder direkt von der Befehlszeile aus verwenden: zum Beispiel:
$ echo 0x01 | ./bitcoin-public-from-private.py | ./bitcoin-address-from-public-key.py
Und zur Frage:
Könnte es beispielsweise eine beliebige oder unendliche Anzahl von öffentlichen Schlüsseln aus dem privaten Schlüssel geben?
Aus einem privaten Schlüssel wird im Prinzip nur ein öffentlicher Schlüssel abgeleitet: Dieser kann aber in drei verschiedenen Bitcoin-Adressen verschlüsselt sein . Normalerweise werden nur ein oder zwei dieser Formate verwendet.
Dies ist im einfachsten Fall, ohne Berücksichtigung komplexerer Fälle, die später in Bitcoin eingeführt werden (wie HD-Schlüssel usw.) ...
Mike D
myprivatekey.to_public().to_address('P2PKH', compressed=True)