Electrum 2.0 hat mir einige Frustration bereitet, da es eine nicht standardmäßige Implementierung von BIP32/BIP39 zu sein scheint (HD-Wallets bzw. mnemonischer Seed). Das betreffende Wallet ist ein 2of2-Multisig-Wallet (alles P2SH), wobei der zweite erweiterte öffentliche Schlüssel in pybitcointools erstellt wird
bip32_privtopub( bip32_master_key( sha256("a password") ) )
,
dann in Electrum importiert.
Angesichts des 13-Wörter-Seeds, der selbst kein Standard ist, da das letzte Wort eine Prüfsumme ist, hat es sich als unmöglich erwiesen, den xpriv
Schlüssel aus Electrum zu exportieren.
Wie wird ein mnemonischer Seed in einen erweiterten privaten Schlüssel des BIP32-Standards konvertiert (vorausgesetzt, der Client selbst lässt dies nicht zu)? : EDIT1 : mit großer Mühe, siehe meine Antwort unten
(NEU AUSGERICHTETE) FRAGE : *warum macht Electrum:
Es gibt eine alternative Möglichkeit, den Master Extended Private Key (xprv) zu extrahieren: Geben Sie in der Electrum-Konsole einfach Folgendes ein:
wallet.get_master_private_key('x/', gui.password_dialog())
Oder für den privaten Hauptschlüssel einer Brieftasche, die mit Electrum 1.x erstellt wurde, ist es:
wallet.get_seed(gui.password_dialog())
Geben Sie niemals Ihr Passwort oder einen privaten Schlüssel in die Konsole ein. Mit anderen Worten, tun Sie Folgendes nicht:
wallet.get_seed('my-password')
Alles, was Sie in die Konsole eingeben, wird vorübergehend unverschlüsselt in Ihrer Brieftaschendatei gespeichert , damit die Befehlsverlaufsfunktion (auf die über den Aufwärtspfeil zugegriffen wird) funktioniert.
Thomas Voegtlin, der Entwickler von Electrum, erläutert die Begründung in den ersten 10 Minuten dieses Interviews. Ich glaube, er hat vor einiger Zeit dasselbe auf der Bitcoin-Entwickler-Mailingliste gepostet.
Sein Hauptargument gegen BIP39 ist, dass es keine Versionsnummer und die Anforderung des Wortlistenwörterbuchs enthält, um es zu implementieren.
Hinweis: Juli 2017, Electrum v2.8.3 ... der Befehl lautet jetzt:
getmasterprivate()
Das Passwort-Dialogfeld erscheint automatisch ;)
Ich habe das gerade bei /r/Bitcoin: gefunden , also gibt es anscheinend eine Exe, um dies zu tun, aber ich bin nicht gerade ein Spiel, da das Herunterladen des Links von Chrome markiert wurde.
Es scheint, dass Electrum verwendet: m/0/0
für Brieftaschenadressen und m/1/0
für Änderungsadressen.
BEARBEITEN: Es wurde eine Pull-Anfrage für Code eingereicht , der den Root-Seed aus der Electrum 2.0-Seed-Phrase extrahiert:
def electrumv2_extract_seed(words, password=''):
"""Takes Electrum v2.0 13 word mnemonic string and returns seed. Only works on English for now"""
# clean-up unicode characters
mnemonic = words[:]
try:
mnemonic = unicodedata.normalize('NFC', unicode(' '.join(words.lower().strip().split()))).encode('utf-8') # a string of 13 words
except Exception as e:
raise Exception(str(e))
rootseed = pbkdf2.PBKDF2(str(mnemonic), str('electrum' + password), 2048, macmodule=hmac, digestmodule=hashlib.sha512).read(64)
return rootseed
def electrumv2_mnemonic_to_mprivkey(words, password=''):
return bip32_master_key(electrumv2_extract_seed(words, password=''))
Dies ist für die Verwendung mit pybitcointools wie from bitcoin import *
in Python 2.7 vorgesehen
Zauberer von Ozzie
Christopher Gurnee
Zauberer von Ozzie
wallet.get_master_private_key('x/', None)
ohne Passwort FWIW, nicht""